Help language development. Donate to The Perl Foundation
0.9.5 2022-09-30T05:13:03+13:00 - fix parsing of rgb//hsl alpha channel as a percentage 0.9.4 2022-09-07T06:58:00+12:00 Finesse tests & doc for CSS::Module 0.6.6, which supports: -- typeless extensions properties, which can hold any value -- :vivify mode - allow any property 0.9.3 2022-08-30T07:42:02+12:00 - Handle measuring of SVG opacity & stroke related properties 0.9.2 2022-08-28T06:10:12+12:00 - Fixed some SVG tests for CSS::Module 0.6.2+ 0.9.1 2022-08-24T08:45:33+12:00 - Add documentation on lengths and measuring 0.9.0 2022-08-22T06:52:05+12:00 - Fix parsing to call &coerce sub #20 - Initial CSS::Module::SVG integration (experimental) 0.8.5 2022-07-01T09:35:55+12:00 - Add CSS::Box::Rect data structure. Use it to represent content, padding, border and margin boxes 0.8.4 2022-06-21T13:05:44+12:00 - Fix cloning of a property-set that has explicit inherited properties #19 0.8.3 2022-06-16T09:53:11+12:00 - Fix test in t/01-property-basic.t, failing with CSS::Module v0.5.11+ - Fix another thread-safety issue 0.8.2 2022-05-22T20:08:37+12:00 - Rename class CSS::Properties::Property to CSS::Properties::PropertyInfo - Make independent property sets thread-safe. Add tests t/threads.t 0.8.1 2022-04-01T15:22:26+13:00 - Upload to zef ecosystem 0.8.0 2022-02-08T13:51:46+13:00 - Optionally use Raku FontConfig package for font matching - Add new CSS::Font::Pattern class to encapsulate font matching - CSS::Font pattern() now returns pattern objects - Deprecate $.write(:terse) option in favor of :!pretty #17 0.7.8 2021-11-21T05:44:57+13:00 - Tweak measure() method - Extend copy() method to work at the class level 0.7.7 2021-11-09T06:56:03+13:00 - Fix :$declarations handling in TWEAK; Fixes CSS::TagSet::Pango 0.7.6 2021-11-08T08:13:12+13:00 - Add CSS::Font::Descriptor COERCE() method - Modified Bool() method. Returns True if defined and has properties, False otherwise. - Remove stray JSON::Fast usage 0.7.5 2021-09-04T11:09:17+12:00 - Add CSS::Font::Descriptor; A CSS::Font subclass for @font-face rules. - Fix CSS::Font nearest-weight matching in match() method - Fix missing commas in @font-face 'src' serialization - Fix default value handling - Add copy() method 0.7.4 2021-08-19T09:24:58+12:00 - Adjust at-font-face.t tests to CSS::Module 0.5.9+, which groups @font-face src comma separated terms into expression nodes. - Undo deprecation of fontconfig-pattern and find-font in last release. Electing to subclass and leave this in place as light-weight alternative. 0.7.3 2021-08-17T10:54:17+12:00 - match() now returns a list of candidate fonts to allow final filtering by agent. - Filter ',' from @font-face src property. - Factor out CSS::Font::Loader as a separate module. Deprecating CSS::Font fontconfig-pattern() and load-font() methods. 0.7.2 2021-08-09T13:18:13+12:00 - Rename CSS::Font select() to match() to match W3c terminology; more fully implement and test font matching to match on font stretch, style and weight. - convert font stretch to numeric in fontconfg-pattern() and pattern() methods. This makes it easier to implement the select() method. 0.7.1 2021-08-07T09:21:25+12:00 - Deprecate CSS::Properties::Units in favor of CSS::Units - Add CSS::Font select() method. Scans a list of @font-face properties and returns the first match. Purely matches on font names (case insensitive), without considering character sets. - Fixed CSS::Font fontconfig-pattern() to correctly handle commas as separators. 0.7.0 2021-05-13T07:36:27+12:00 - Add POD documentation + generated markdown in docs/ directory. - Remove classes: -- CSS::Properties::Box (deprecated) -- CSS::Properties::PageBox (deprecated) -- CSS::Properties::Edges (internal) - Rename class CSS::Properties::Font -> CSS::Font 0.6.6 2021-04-22T15:56:11+12:00 - Add ast(:keep-defaults) option. These need to be retained in CSS::Rulesets when writing. 0.6.5 2021-04-07T09:10:49+12:00 - Optimize to parent properties, for example 'background-color:blue;' now optimizes to 'background:blue;' 0.6.4 2021-04-06T12:17:57+12:00 - Factored out CSS::Properties::Optimizer from CSS::Properties 0.6.3 2021-04-01T15:21:18+13:00 - Width draw box css-width() and css-height() methods - Not strongly related to the box model. Moved to PDF::Style. - Changed from-ast() and to-ast() from methods to subroutines 0.6.2 2021-03-24T09:19:40+13:00 - Fixed font inheritance and improved other optimisations E.g. background-repeat: no-repeat; background-position: 50% 75%; now combines to: background:no-repeat 50% 75%; - Fixed property assignment sequence #13; border: 2px; border-bottom: 1px; now works as expected. - Fixed dropping of some terms with zero first value #14; background-position: 0 50% now serialises as expected - Fixed box property optimisations #15; border-style: solid; border-bottom-style: none; now serialises to: border-left-style:solid; border-right-style:solid; border-top-style:solid; (todo optimise to: border-style:solid solid none;) 0.6.1 2021-03-16T10:56:25+13:00 - Fix computed() and inherit() regressions #11 0.6.0 2021-03-16T08:49:00+13:00 - Added new CSS::Properties::Calculator class; factored out from CSS::Properties. - Fix handling of percentage values for margin and padding. Ignore (treat as zero) for border-width. Better conformance (hopefully) with https://www.w3.org/TR/CSS2/box.html#border-properties 0.5.2 - refactored .can() .dispatch() and .FALLBACK() methods - rework 'dpi', 'dpcm', and 'dppx' units. Express as reciprocals of 'in', 'cm', and 'px' - further development of CSS::Properties::Font measure() method; add computed() method 0.5.1 - rename sources *.pm6 -> *.rakumod 0.5.0 - renamed classes CSS::Properties::Units -> CSS::Units, CSS::Properties::Box -> CSS::Box, CSS::Properties::PageBox -> CSS::PageBox 0.4.5 - issue #4 !important is not inherited and has no affect on inheritance. - add '.important()' (parameter-less) candidate, which returns a map of all !important properties: my Bool %important{Str} = $css.important(); - issue #5 don't inherit relative quantities, e.g. 'font-size: 1.5em'. generally these shouldn't be propagated and re-applied. - also add .parent() attribute and .inherited method to make it easier for agents to do their own inheritance. - issue #6 - fix optimization of 'inherit' and 'initial' component properties 0.4.4 - Added CSS::Module::Property - A CStruct representation of property definitions to facilitate downstream optimizations (CSS::Properties). - Added .property-exists() method - Add t/extensions.t - just to make sure we handle alias extension properties introduced with CSS::Module 0.5.1 - Skip unknown properties starting with '-' when inheriting. These are custom properties by definition. 0.4.3 - Renamed role CSS::Properties::Units::Type -> CSS::Properties::Units. Added .scale() method. Define Time, Angle and Frequency units 0.4.2 - Add CSS::Properties::Font .Str method 0.4.1 - Add measure() and units() methods. Allow for variable base units, (e.g. 'pt', or 'in'). - Add viewport-width and viewport-height attributes - Renamed method widths to measurements 0.4.0 - Reintroduce '+' and '-' infix overloading for units calculations. '+css' and '-css' are still available as more explicit and strongly typed operators. - Adding CSS::Properties::PageBox (WIP) 0.3.10 - Minor adjustments for Rakudo 2018.11+ Bleed 0.3.9 - Adjust to Rakudo 2018.06+, including unordered hash keys and rw proxy accessors - Added +css and -css as experimental infix operators - Minor refactors to ast and optimize methods 0.3.8 - Rename module CSS::Declarations -> CSS::Properties 0.3.7 - CSS::Declarations::measure replaces CSS::Declarations::Font::pt - Assigning Nil to a property now deletes it. 0.3.6 CSS::Declarations - Support Color object assignments, e.g.: $css.border-color = Color.new(0, 255, 0); 0.3.5 CSS::Declarations - Fix over-zealous optimization: This: border:5pt solid; border-color:red green blue yellow; Was optimized to: border:5pt solid red green blue yellow; Which is a step too far. The optimize() method now leaves the above alone. The general rule is that a property with multiple terms won't be further optimized. 0.3.4 CSS::Declarations::Font - Add fc-pattern method. a computed pattern for fontconfig matching - Fixed bug with processing a list of font families 0.3.3 CSS::Declarations - Adjust for latest Color module; include Color::Conversion 0.3.2 CSS::Declarations::Box - Add bounds checks top >= bottom, right >= left - Add `move` and `translate` methods - Saner `Array` rw accessor 0.3.1 CSS::Declarations::Box - Replace .leading() method with .line-height() 0.3.0 CSS::Declarations::Units - Remove default exports. Everything is now tagged. :pt, :pt, :em, :ex, etc. - Avoid implicit export of '+' and '-' operators. - Add :ops export tag, which exports '➕' and '➖' for addition and subtraction with units conversion. 0.2.1 CSS::Declarations::Box: - Remove rendering-specific 'build-box' method - Add 'font-length' method - Removed $!width & $!height - now handled as TWEAK options CSS::Declarations::Units: - Add 'em', 'ex' and '%' postfix operators 0.2.0 Add CSS::Declarations::Box, CSS::Declarations::Font 0.1.2 - Add :declarations constructor option. to enable construction from CSS declarations AST node. - Allow inheritance from objects or style strings 0.1.1 Added `.optimize` method. For direct optimization of ASTs, without the need to create intermediate objects 0.1.0 Improved write optimizations For example now rewrites style: margin-top: 1pt; margin-right: 2pt; as "margin:1pt 2pt" 0.0.4 CSS::Declarations: - allow list assignment. E.g.: $css.new: :background-position<top left>; shortcut for: $css.new: :background-position("top left"); 0.0.3 CSS::Declarations::Units - Use 'but' for role application, not global 'does'. 0.0.2 - Warn, but otherwise ignore illegal assignments: $css.azimuth = 'over-yonder'; # has no affect - handle default dependencies: -- border-color defaults to color -- text-align is 'left' or 'right' depending on direction (See README.md Properties appendix) 0.0.1 Initial release