CSS Object Model implementation and CSS parser
Last release 7 months ago
12 Jan 2026
Release timing varies
gaps range from 2 weeks to 3 months
Nearly every release is documented
notes for 32 of 32 stable releases
Nothing withdrawn
no release was ever pulled
1 years old
32 releases · first in 2025
Release timeline
32 releases since 2025Releases
- 0.9.3112 Jan 2026
- 0.9.3023 Dec 2025
Release notes2 sources agree
Open source →Patch Changes
-
#85
25f9726Thanks @acemir! - feat: sync styleSheet.title with ownerNode.title- set selectorText, style and media configurable
- improve docs and test utils
-
#81
4e349c3Thanks @acemir! - fix: preserve context for sibling nested selectors -
#84
84ac918Thanks @acemir! - feat: implementCSSPropertyRule -
#83
623e136Thanks @acemir! - feat: improveCSSImportRuleimplementation- set
CSSImportRule.styleSheetto unconstructed - avoid insert
@importrules into a constructed stylesheet
- set
-
- 0.9.2910 Dec 2025
Release notes2 sources agree
Open source → - 0.9.287 Dec 2025
Release notes2 sources agree
Open source → - 0.9.277 Dec 2025
- 0.9.265 Dec 2025
Release notes2 sources agree
Open source →Patch Changes
- #70
e597dfeThanks @acemir! - fix: improve CSSStyleSheet MediaList and parser- CSSStyleSheet replace and replaceSync mutates cssText instead of reasign
- CSSStyleSheet.removeRule index defaults to 0
- set MediaList.mediaText to null empties the the list
- MediaList.toString returns the same as MediaList.mediaText
- CSSOM.parse initializes styleSheet.media.mediaText with the content of ownerNode media attribute when available
- #70
- 0.9.254 Dec 2025
Release notes2 sources agree
Open source →Patch Changes
-
#66
e369d14Thanks @Naycon! - Fix TypeError when parsing @media after nested selectors inside @layerWhen parsing CSS with nested selectors (&) followed by @media rules inside an @layer block, the parser would crash with "Cannot read properties of null (reading 'constructor')" because nestedSelectorRule.parentRule can be null when the parent context is a CSSLayerBlockRule rather than a CSSStyleRule.
-
#69
52b93c7Thanks @acemir! - fix: auto-closing statement rules -
#68
907a0c2Thanks @acemir! - feat: rules interfaces and parse improvements- Expose CSSOM.setup method for globalObject configuration
- Add StyleSheet missing interface properties
- Add CSSStyleSheet constructor options and missing interface properties
- Set cssRules readonly on CSSStylesheet and CSSGroupingRules
- Fix CSSRule.cssText interface implementation
- Improve pseudo-class with selectors list validations
- Imrpove auto-close for all unclosed nested structures
- Handle CSSLayerStatementRule inside CSSLayerBlockRule and other grouping rules
- Handle CSSFontFaceRule, CSSKeyframeRule and CSSPageRule nesting edge cases
- Imrpove code consistency on rules type and prototype assign
-
- 0.9.2422 Nov 2025
Release notes2 sources agree
Open source →Patch Changes
-
#60
dc858f3Thanks @acemir! - fix: ending nested rules processing and unclosed sheet edge cases -
#62
e65434cThanks @acemir! - fix: serialization with empty nested declarations -
#63
f334c70Thanks @acemir! - fix: parser improvements- Fix CSSScopeRule allows CSSNestedDeclarations
- Fix mediaText setter with empty value
- Improve performance and security on selectors validation
- Handle escape sequences before processing special characters
-
#59
fccf639Thanks @Xiphoseer! - feat: implementCSSStyleSheet:replaceSync,replace
-
- 0.9.237 Nov 2025
- 0.9.227 Nov 2025
Release notes2 sources agree
Open source → - 0.9.217 Nov 2025
- 0.9.205 Nov 2025
- 0.9.1920 Oct 2025
Release notes2 sources agree
Open source → - 0.9.1819 Oct 2025
- 0.9.1718 Oct 2025
Release notes2 sources agree
Open source →Patch Changes
-
#41
a48b41fThanks @acemir! - feat: sync common rules interfaces- CSSRule
parentRuleandparentStyleSheet, are now prototype getters to be readonly according to the CSSRule interface. - CSSStyleRule
selectorTextandstyleare now prototype getter and setter according to the CSSStyleRule interface. - Added a try catch to override local CSSStyleDeclaration with the one from cssstyle when needed
- Implemented methods and indexed getters for CSSKeyframesRule
- Implementd errorUtils for a more organized way to handle errors
- CSSRule
-
- 0.9.1616 Oct 2025
Release notes2 sources agree
Open source → - 0.9.1516 Oct 2025
Release notes2 sources agree
Open source → - 0.9.1416 Oct 2025
Release notes2 sources agree
Open source → - 0.9.1316 Oct 2025
Release notes2 sources agree
Open source → - 0.9.1216 Oct 2025
Release notes2 sources agree
Open source → - 0.9.1116 Oct 2025
- 0.9.1025 Jul 2025
Release notes2 sources agree
Open source → - 0.9.925 Jul 2025
Release notes2 sources agree
Open source → - 0.9.825 Jul 2025
Release notes2 sources agree
Open source → - 0.9.725 Jul 2025
Release notes2 sources agree
Open source → - 0.9.624 Jul 2025
Release notes2 sources agree
Open source → - 0.9.524 Jul 2025
Release notes2 sources agree
Open source → - 0.9.424 Jul 2025
Release notes2 sources agree
Open source → - 0.9.324 Jul 2025
Release notes2 sources agree
Open source → - 0.9.224 Jul 2025
- 0.9.115 Jul 2025
Release notes
Open source →Patch Changes
-
#7
6d14f90Thanks @acemir! - feat: add layer() and supports() to CSSImportRule -
#6
a6526adThanks @acemir! - feat: support CSSLayerStatementRule, adjust CSSLayerBlockRule and improves at-rule validation -
#4
46a61eeThanks @anntseng! - fix: check the priority value of the existing property -
#3
243e8cdThanks @DiogoDoreto! -indexparameter ofCSSStyleSheet.insertRuleis now optional
Release notes
Open source →Patch Changes
-
#7
6d14f90Thanks @acemir! - feat: add layer() and supports() to @import rule -
#6
a6526adThanks @acemir! - feat: support CSSLayerStatementRule, adjust CSSLayerBlockRule and improves at-rule validation -
#4
46a61eeThanks @anntseng! - fix: check the priority value of the existing property -
#3
243e8cdThanks @DiogoDoreto! -indexparameter ofCSSStyleSheet.insertRuleis now optional
-
- 0.9.012 Jul 2025