- fix nesting rules expansion #45
#v0.7.0
- fix merging rules
- experimental CSS prefix removal
- declaration name
- declaration value
- exclude -webkit-* gradients
- css selector validation
- pseudo element
- partial pseudo class validation. does not validate parameters
- attribute selector
- combinator
- simple selector
- nested selector
- strict vs permissive validation: allow unknown items such as pseudo classes
- allow unknown pseudo classes
- allow unknown attribute selectors
- strip universal selector when possible
- light-dark() color
- system color
- incorrectly expand css nesting rules
- incorrectly expand css nesting rules
- failed to flatten @import when using url() syntax
- render node with parents
- fix relative color from xyz
- fix bug when inlineCss is true bug no css variable exists
- compute more shorthands
- (web) fetch imported css files from external domains using cors
no code change
Parsing
- allow async node visitors
- adding declaration parsing helper async parseDeclarations(source: string): Promise<AstDeclarations[]>
CSS color level 4 & 5
- color space: srgb, srgb-linear, display-p3, prophoto-rgb, a98-rgb, rec2020, xyz, xyz-d50
- color-mix()
- color()
- relative color
- lab()
- lch()
- oklab()
- oklch()
- column-rule
- columns
- container
- flex
- flex-flow
- gap
- renamed RenderOptions.colorConvert to RenderOptions.convertColor
- support none keyword in color
- css relative color syntax for rgb(), hsl() and hwb() colors https://www.w3.org/TR/css-color-5/#relative-colors
- rgb
- hex
- hsl
- hwb
- calc()
- calc() and inline var()
- cancellable parser promise using abortSignal
- node visitor (callback) :
- Declaration visitor
- selector visitor
- at-rule visitor
- support mixing units with calc()
- transition
- list-style
- text-emphasis
- animation
- parsing column combinator
- css selector level 4 attribute modifiers
- selector-4 parsing https://www.w3.org/TR/selectors-4/
- sourcemap generation
- reduce calc():
- inline css variables
- configure duplicate declarations removal
- configure shorthand properties computation
- merge identical rules
- merge adjacent rules
- minify colors
- minify numbers and Dimensions tokens
- compute shorthand: see the list below
- remove redundant declarations
- simple shorthand properties (padding, margin, etc). must have all required properties
- complex shorthand properties (background, font, etc.). may have optional properties
- conditionally unwrap :is()
- automatic css nesting
- automatically wrap selectors using :is()
- multi-level shorthand properties ( border - [border-width, border-color, border-style, etc.]) https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties
- avoid reparsing (declarations, selectors, at-rule)
- node and browser versions
- decode and replace utf-8 escape sequence
- background
- border
- border-bottom
- border-color
- border-left
- border-radius
- border-right
- border-style
- border-top
- border-width
- font
- inset
- margin
- outline
- overflow
- padding
- text-decoration
- flatten @import
- parse bad comments / cdo comments
- parse bad string 1
- parse bad string 2
- parse empty declaration
- parse unclosed rule
- parse unclosed at-rule
- parse bad import
- node tests
- browser tests
- node
- browser