All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add support for CSS Nesting — rules nested inside other rules (#621 by @jogibear9988)
- Add support for
@containercontainer queries with nested rule body - Add support for Page Margin Boxes (
@top-left,@bottom-right,@left-middle, etc.) inside@page - Add generic at-rule fallback — unknown
@foo { ... }and@foo ...;rules are preserved asCssGenericAtRuleASTinstead of being dropped - Add support for
@counter-style,@font-feature-values,@scope,@view-transition,@position-try - Export new TypeScript types:
CssGenericAtRuleAST,CssPageMarginBoxAST,CssPositionTryAST,CssScopeAST,CssViewTransitionAST,CssCounterStyleAST,CssFontFeatureValuesAST
- Fix selector parsing for complex nested selectors including
:is(),:has(),:not() - Fix
@pageto correctly accept margin-box at-rule children - Fix bracket- and quote-aware position tracking for pseudo-functions
- Upgrade to TypeScript 6.0.2
- Upgrade to
@rollup/plugin-terser1.0.0 - Drop Node 18 from CI (EOL April 2025) — minimum supported runtime is now Node 20
- Update lodash to 4.18.1
- Update minimatch to 3.1.5
- Update picomatch to 4.0.4
- Switch from yarn to npm for package management
- Switch from eslint to biome for code formatting and linting
- Reformat codebase to comply with biome recommendations
- Switch from webpack to rollup for bundling
- Fix module exports to ensure proper compatibility with bundlers
- Add validation check to prevent future export issues
- Fix polynomial regular expression vulnerability on uncontrolled data
- Refactor code to enable GitHub security static analysis
- Improve parsing performance with minor optimizations
- Replace regex patterns with string search (indexOf-based) for better performance
- Add new utility functions with comprehensive unit tests
- Add improved formatting for CSS Grid template areas (#283 by @jogibear9988)
- Fix TypeScript error with ConstructorParameters in Parcel bundler (#444)
- Fix regular expression for parsing quoted values in parentheses
- Add support for CSS
@starting-styleat-rule (#319)
- Update package export configuration (#271)
- Fix ReDoS vulnerability with crafted CSS strings - CVE-2023-48631
- Fix parsing issues with
:is()and nested:nth-child()selectors (#211)
- Fix ReDoS vulnerability with crafted CSS strings - CVE-2023-26364
- Update build toolchain and dependencies
- Update package exports configuration and file structure
- Add support for CSS
@containerat-rule - Add support for CSS
@layerat-rule
- Add support for ES Modules (ESM)
- Fix
@importparsing when URL contains semicolons (#71) - Fix regression in selector parsing for attribute selectors (#77)
- Fix
globalThisconfiguration for webpack to enable UMD module usage in Node.js environments
- Fork from original css library to Adobe's
@adobe/css-toolspackage - Convert codebase from JavaScript to TypeScript
- Improve parsing performance by approximately 25%
- Update all dependencies to latest versions
- Remove source map support
- Bump major version due to major dependency updates and Node.js version requirement changes
- Fix parsing of escaped quotes in quoted strings
- Add
parsingErrorsproperty to list errors when parsing withsilent: true - Accept EOL characters and all whitespace characters in at-rules such as
@media
- Add
inputSourcemapsoption to disable input source map processing - Add
sourcemap: 'generator'option to return theSourceMapGeneratorobject - Use
inheritspackage for inheritance (fixes browser compatibility issues)
- Change error message format and add
.reasonproperty to error objects
- Add non-enumerable parent reference to each AST node
- Add support for
@custom-media,@host, and@font-faceat-rules - Allow commas inside selector functions
- Allow empty property values
- Add
node.position.contentproperty - Integrate css-parse and css-stringify libraries
- Apply original source maps from source files
- Change default
options.positionvalue totrue - Remove comments from properties and values
- Drop Component(1) support
- Fix assertion errors when selectors are missing
- Fix component.json configuration
- Update dependencies
- Update dependencies
- Update dependencies
- Fix component.json configuration
- Update css-stringify dependency
- Add Component support
- Initial release