Back to Explore

jsdom/cssstyle

GitHub
1 watchersOpen source

Last release:

This is a Node.js implementation of the CSS Object Model, specifically the CSSStyleDeclaration interface. It is useful for testing browser code in a Node environment, providing an extension with support for modern specifications as used by the jsdom community.

Project status

  • Actively maintained: The repo shows ongoing work in 2026, with the most recent upstream push on 2026-03-21 and the latest published update v6.2.0 on 2026-03-02, indicating current maintenance rather than dormancy.
  • Update cadence: There was a dense burst of updates in early 2026 (v6.0.0 on 2026-02-05, then multiple updates through 2026-02-23), followed by a few more weeks to about 3 months until the latest change in March 2026, suggesting continued evolution with normal spacing after a major refactor.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v6.2.0

    Release v6.2.0 primarily updates dependency versions, most notably @webref/css. Release notes say this affects the propertyDefinitions export by adding information about longhands.

  • v6.1.0

    Release 6.1.0 adds a new public export, parsePropertyValue, to lib/index.js. The diff also updates several dependencies in package.json and package-lock.json, including a major version bump of @asamuzakjp/css-color, which can indirectly change CSS parsing behavior.

    Features
  • v6.0.2

    This patch release (v6.0.2) improves CSS parsing behavior, specifically around how `font-family` lists handle empty entries. It also includes changes to the property descriptor generation and serialization logic related to function types.

  • v6.0.1

    Release 6.0.1 fixes two issues: incorrect results from getPropertyPriority(), and incorrect handling of case-sensitive content inside CSS function arguments (for example path("m 5,5 ...")). The code changes also adjust how function argument casing is computed and improve priority propagation when setting parsed property values.

  • v6.0.0

    Version 6.0.0 is a large refactor and ruleset update aimed at matching current CSS specs more closely, including expanding the supported CSS properties set and improving generic parsing/serialization conformance. It also refactors the CSSOM implementation (CSSStyleDeclaration) and switches the exported property metadata from a plain object to a Map. The release notes document the property list export change and some CSSStyleDeclaration behavioral tweaks, but the code diff shows additional API and behavior changes not mentioned.

    BreakingFeatures
  • v5.3.7

    Release v5.3.7 documents two bug fixes related to CSS value handling: converting non-string values assigned to CSS properties into strings correctly, and fixing a regression where negative `top` values were treated as invalid. The actual diff shows additional internal behavioral changes beyond those notes, mostly around value coercion and state reset during CSSStyleDeclaration updates.

  • v5.3.6

    v5.3.6 focuses on performance and internal correctness improvements. The release notes claim a CSS parsing/validation cache was added and that large refactors were done to use more canonical CSS data sources for shorthand and property parsing grammars.

  • v5.3.5

    Release v5.3.5 updates dependencies and tweaks CI/build automation. The code diff shows a concrete behavioral change in the CSS `clip` property parsing (percent handling), and the test suite no longer covers `clip`, suggesting the library's effective support for legacy `clip` syntaxes may have changed beyond what the release notes describe.

    Breaking
  • v5.3.4

    v5.3.4 primarily claims a performance improvement for the `CSSStyleDeclaration#cssText` setter. The code change optimizes how it captures the previous `cssText` value during updates, reducing unnecessary getter calls during internal set operations.

  • v5.3.3

    v5.3.3 is a small bug-fix release focused on correctly parsing color values when using border-related shorthand properties. The code change updates how color strings are passed into the color parser for border, border-top, border-right, border-bottom, and border-left.