NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3572 most downloaded on npm
A pseudo-class for matching elements in a selector list
Last release 6 days ago
05 Oct 2026
Release timing varies
gaps range from 1 weeks to 8 months
Nearly every release is documented
notes for 33 of 33 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
33 releases · first in 2022
One column per quarter.
Updated `@csstools/selector-specificity` to `6.0.1` (patch)
October 5, 2026
@csstools/selector-specificity to 6.0.1 (patch)Bound the total number of generated selectors per rule and insert generated rules in a single batch.
October 2, 2026
Throw when splitting :is() would exceed the maximum number of combinations
September 25, 2026
:is() would exceed the maximum number of combinationsUpdated: Support for Node 20.19.0 or later (major).
January 14, 2026
20.19.0 or later (major).commonjs API. In supported Node versions require(esm) will work without needing to make code changes.@csstools/selector-specificity to 6.0.0 (major)Fix support for more complex selector patterns. .a > :is(.b > .c) -> .a.b > .c
June 11, 2025
.a > :is(.b > .c) -> .a.b > .cAdd support for more complex selector patterns. .a > :is(.b > .c) -> .a.b > .c
June 10, 2025
.a > :is(.b > .c) -> .a.b > .cMake sorting compound selectors forwards compatible with potential future changes in postcss-selector-parser
October 23, 2024
postcss-selector-parserpostcss-selector-parser@csstools/selector-specificity to 5.0.0 (major)Updated: Support for Node v18+ (major).
August 3, 2024
@csstools/selector-specificity to 4.0.0 (major)Updated `@csstools/selector-specificity` to `3.1.1` (patch)
May 13, 2024
@csstools/selector-specificity to 3.1.1 (patch)Updated `@csstools/selector-specificity` to `3.1.0` (minor)
May 11, 2024
@csstools/selector-specificity to 3.1.0 (minor)Updated `@csstools/selector-specificity` to `3.0.3` (patch)
March 31, 2024
@csstools/selector-specificity to 3.0.3 (patch)Updated `@csstools/selector-specificity` to `3.0.2` (patch)
February 19, 2024
@csstools/selector-specificity to 3.0.2 (patch)Updated `@csstools/selector-specificity` to `3.0.1` (patch)
December 15, 2023
@csstools/selector-specificity to 3.0.1 (patch)Prevent incorrect transforms when :is() is wrapped in :has().
October 2, 2023
:is() is wrapped in :has()._September 18, 2023_ - Improve performance
September 18, 2023
Fix substitution when selectors have mixed types for compound selectors where one of two parts is a :is() pseudo class.
September 2, 2023
:is() pseudo class.header:is(.a .b) {}
/* becomes : */
- header.a .b {}
+ .a header.b {}
Change license to MIT-0 (read more about this change in the blog post)
July 3, 2023
MIT-0 (read more about this change in the blog post)@csstools/selector-specificity to 3.0.0 (major)```diff :is(.a *):is(h1, h2, h3) {}
May 19, 2023
*.:is(.a *):is(h1, h2, h3) {}
/* becomes : */
- .a *h1, .a *h2, .a *h3 {}
+ .a h1, .a h2, .a h3 {}
Add support for more complex selector patterns. In particular anything where :is() is in the left-most compound selector.
April 10, 2023
:is() is in the left-most compound selector.Reduce the amount of duplicate fallback CSS.
February 8, 2023
Fix is pseudo inside a not pseudo (:not(:is(h1, h2, h3)))
February 2, 2023
:not(:is(h1, h2, h3)))Improve types declaration in package.json
January 28, 2023
types declaration in package.jsonUpdated: Support for Node v14+ (major).
January 24, 2023
_July 8, 2022_ - Fix case insensitive matching.
July 8, 2022
Fix selector order with any pseudo element.
June 23, 2022
:is(). Following the specification pseudo elements are invalid and we now transform to a known invalid pseudo element.onPseudoElement plugin option. Set { onPseudoElement: 'warning' } to receive warnings when this plugin encounters an unprocessable pseudo element.Update @csstools/selector-specificity (major)
June 4, 2022
@csstools/selector-specificity (major)Fix selector order with :before and other pseudo elements.
May 17, 2022
:before and other pseudo elements.Use @csstools/selector-specificity for specificity calculations.
May 11, 2022
@csstools/selector-specificity for specificity calculations.Improved : compound selector order with pseudo elements
April 4, 2022
Preserve selector order as much as possible. Fixes issues where pseudo elements ::before were moved.
March 4, 2022
::before were moved.Remove skip flag in onComplexSelectors option.
January 31, 2022
skip flag in onComplexSelectors option.If a complex selector is encountered that has no known equivalent, it will always be skipped and preserved now.
The previous behavior was to remove :is() even if that broke the selector.
_January 17, 2022_ - Fix selector order
January 17, 2022
_January 13, 2022_ - initial release
January 13, 2022
Your coding agent can read these notes before it upgrades. Set up the MCP server →