0.9.7 2024-09-04T10:56:52+12:00
- Fix setting of 'em' in cloning and copying #23
- Recursively handle lists in measure() method
0.9.6 2024-08-29T06:32:07+12:00
- Add FontConf 0.1.4+ :best($n) and :all options to
find-font() method
- Fix inheritance of font-size via inherit() method
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;
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