Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@sw1tch3roo
Copy link
Contributor

Which issue, if any, is this issue related to?

Closes #8406.

Is there anything in the PR that needs further explanation?

No, it's self-explanatory.

@changeset-bot
Copy link

changeset-bot bot commented Jul 16, 2025

🦋 Changeset detected

Latest commit: bcccfc2

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
stylelint Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Member

@jeddy3 jeddy3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sw1tch3roo Thank you for working on another rule! It's much appreciated.

After an initial pass, I've requested some broad-stroke changes to:

  • address false negatives when the nesting selector doesn't come first
  • provide a more useful range for the warnings
  • increase the signal in the tests
  • match our test writing conventions as much as possible

@sw1tch3roo sw1tch3roo requested a review from jeddy3 July 17, 2025 15:45
@Mouvedia Mouvedia requested a review from romainmenke July 17, 2025 15:57
Copy link
Member

@jeddy3 jeddy3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for making the changes. I think it's shaping up well.

I've asked a question (that may need input from others), and requested one more change.

@sw1tch3roo sw1tch3roo requested a review from jeddy3 July 21, 2025 15:16
Copy link
Member

@jeddy3 jeddy3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for adding checks for @scope. The general shape looks good.

I've made one request to refactor the code to use the CSSTree parser.

Copy link
Member

@romainmenke romainmenke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sw1tch3roo Thank you for working on this 🙇

Copy link
Member

@jeddy3 jeddy3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for incorporating CSSTree rather than use regex.

I've suggested a refactor to use the walk API of CSSTree.

Copy link
Member

@jeddy3 jeddy3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added a broader refactor suggestion to remove some redundancy.

Thanks for sticking with us through the additions and refactors. It's typical for a new rule, especially one we'll be adding to our shared config, to have a few rounds of changes as it'll be run on many CSS codebases.

@github-actions
Copy link
Contributor

github-actions bot commented Jul 22, 2025

This PR is packaged and the instant preview is available (bcccfc2). View the demo website.

Install it locally:

npm i -D https://pkg.pr.new/stylelint@bcccfc2

Copy link
Member

@jeddy3 jeddy3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good.

I've requested two minor doc changes to communicate that the rule checks @scope params, otherwise LGTM.

Copy link
Member

@jeddy3 jeddy3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

(Ranges look good in the demo.)

Once this PR gets a second review, we'll group it with the other new rule PRs and cut a release that has them all in.

Copy link
Member

@romainmenke romainmenke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome work!
Thank you @sw1tch3roo 🙇

Copy link
Member

@ybiquitous ybiquitous left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, thanks 👍

I've left a question, can you take a look?

@sw1tch3roo sw1tch3roo requested a review from ybiquitous July 24, 2025 17:49
Copy link
Member

@ybiquitous ybiquitous left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, LGTM 😄

@ybiquitous ybiquitous enabled auto-merge (squash) July 25, 2025 09:35
@ybiquitous ybiquitous merged commit 80e9074 into stylelint:main Jul 25, 2025
15 checks passed
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 5, 2025
| datasource | package   | from    | to      |
| ---------- | --------- | ------- | ------- |
| npm        | stylelint | 16.20.0 | 16.23.0 |


## [v16.23.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16230---2025-07-29)

It adds 5 new rules, 1 option to a rule and fixes 3 bugs. We've turned on the new rules in our [standard config](https://www.npmjs.com/package/stylelint-config-standard).

- Added: `block-no-redundant-nested-style-rules` rule ([#8684](stylelint/stylelint#8684)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `media-type-no-deprecated` rule ([#8668](stylelint/stylelint#8668)) ([@immitsu](https://github.com/immitsu)).
- Added: `nesting-selector-no-missing-scoping-root` rule ([#8674](stylelint/stylelint#8674)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `no-invalid-position-declaration` rule ([#8669](stylelint/stylelint#8669)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `property-no-deprecated` rule ([#8682](stylelint/stylelint#8682)) ([@immitsu](https://github.com/immitsu)).
- Added: `except: ["exact-value"]` to `media-feature-range-notation` ([#8675](stylelint/stylelint#8675)) ([@immitsu](https://github.com/immitsu)).
- Fixed: `declaration-block-no-duplicate-properties` false negatives for named colors with `ignore: ['consecutive-duplicates-with-different-syntaxes']` ([#8665](stylelint/stylelint#8665)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Fixed: `function-no-unknown` false positives ([#8677](stylelint/stylelint#8677)) ([@Mouvedia](https://github.com/Mouvedia)).
- Fixed: `no-irregular-whitespace` false positives for strings ([#8667](stylelint/stylelint#8667)) ([@immitsu](https://github.com/immitsu)).


## [v16.22.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16220---2025-07-18)

It adds 3 rule features and fixes 2 bugs.

- Added: `messageArgs` to `color-named` ([#8663](stylelint/stylelint#8663)) ([@Mouvedia](https://github.com/Mouvedia)).
- Added: `messageArgs` to `declaration-property-value-keyword-no-deprecated` ([#8654](stylelint/stylelint#8654)) ([@Mouvedia](https://github.com/Mouvedia)).
- Added: `no-descending-specificity` report message includes line number of the anchoring selector ([#8666](stylelint/stylelint#8666)) ([@immitsu](https://github.com/immitsu)).
- Fixed: `at-rule-no-deprecated` false positives for `@apply` ([#8630](stylelint/stylelint#8630)) ([@Mouvedia](https://github.com/Mouvedia)).
- Fixed: `lightness-notation` crash with `"number"` option and single-digit percentage ([#8661](stylelint/stylelint#8661)) ([@ybiquitous](https://github.com/ybiquitous)).


## [v16.21.1](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16211---2025-07-03)

It fixes 3 bugs.

- Fixed: unexpected change of syntax in computed `EditInfo` ([#8638](stylelint/stylelint#8638)) ([@romainmenke](https://github.com/romainmenke)).
- Fixed: `function-linear-gradient-no-nonstandard-direction` false positives for CSS variables' names containing a direction substring ([#8643](stylelint/stylelint#8643)) ([@Solomon-mithra](https://github.com/Solomon-mithra)).
- Fixed: `media-feature-range-notation` autofix for exact values ([#8651](stylelint/stylelint#8651)) ([@romainmenke](https://github.com/romainmenke)).


## [v16.21.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16210---2025-06-19)

It rounds out the `message` secondary option and marks it as stable, adds 1 new option to a rule, and fixes 4 bugs.

- Added: non-experimental support for functional `message` secondary option ([#8595](stylelint/stylelint#8595)) ([@ybiquitous](https://github.com/ybiquitous)).
- Added: `ignore: ["after-custom-property"]` to `custom-property-empty-line-before` ([#8627](stylelint/stylelint#8627)) ([@imkesin](https://github.com/imkesin)).
- Fixed: `cache` configuration property not being respected ([#8599](stylelint/stylelint#8599)) ([@ybiquitous](https://github.com/ybiquitous)).
- Fixed: `fastest-levenshtein` import when bundling ([#8621](stylelint/stylelint#8621)) ([@onigoetz](https://github.com/onigoetz)).
- Fixed: `named-grid-areas-no-invalid` false positives for interpolated grid-template-areas in CSS-in-JS ([#8606](stylelint/stylelint#8606)) ([@shahana308](https://github.com/shahana308)).
- Fixed: `selector-pseudo-*-no-unknown` false positives for the missing form control styling selectors ([#8623](stylelint/stylelint#8623)) ([@tyrann0us](https://github.com/tyrann0us)).
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 6, 2025
| datasource | package   | from    | to      |
| ---------- | --------- | ------- | ------- |
| npm        | stylelint | 16.20.0 | 16.23.0 |


## [v16.23.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16230---2025-07-29)

It adds 5 new rules, 1 option to a rule and fixes 3 bugs. We've turned on the new rules in our [standard config](https://www.npmjs.com/package/stylelint-config-standard).

- Added: `block-no-redundant-nested-style-rules` rule ([#8684](stylelint/stylelint#8684)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `media-type-no-deprecated` rule ([#8668](stylelint/stylelint#8668)) ([@immitsu](https://github.com/immitsu)).
- Added: `nesting-selector-no-missing-scoping-root` rule ([#8674](stylelint/stylelint#8674)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `no-invalid-position-declaration` rule ([#8669](stylelint/stylelint#8669)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `property-no-deprecated` rule ([#8682](stylelint/stylelint#8682)) ([@immitsu](https://github.com/immitsu)).
- Added: `except: ["exact-value"]` to `media-feature-range-notation` ([#8675](stylelint/stylelint#8675)) ([@immitsu](https://github.com/immitsu)).
- Fixed: `declaration-block-no-duplicate-properties` false negatives for named colors with `ignore: ['consecutive-duplicates-with-different-syntaxes']` ([#8665](stylelint/stylelint#8665)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Fixed: `function-no-unknown` false positives ([#8677](stylelint/stylelint#8677)) ([@Mouvedia](https://github.com/Mouvedia)).
- Fixed: `no-irregular-whitespace` false positives for strings ([#8667](stylelint/stylelint#8667)) ([@immitsu](https://github.com/immitsu)).


## [v16.22.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16220---2025-07-18)

It adds 3 rule features and fixes 2 bugs.

- Added: `messageArgs` to `color-named` ([#8663](stylelint/stylelint#8663)) ([@Mouvedia](https://github.com/Mouvedia)).
- Added: `messageArgs` to `declaration-property-value-keyword-no-deprecated` ([#8654](stylelint/stylelint#8654)) ([@Mouvedia](https://github.com/Mouvedia)).
- Added: `no-descending-specificity` report message includes line number of the anchoring selector ([#8666](stylelint/stylelint#8666)) ([@immitsu](https://github.com/immitsu)).
- Fixed: `at-rule-no-deprecated` false positives for `@apply` ([#8630](stylelint/stylelint#8630)) ([@Mouvedia](https://github.com/Mouvedia)).
- Fixed: `lightness-notation` crash with `"number"` option and single-digit percentage ([#8661](stylelint/stylelint#8661)) ([@ybiquitous](https://github.com/ybiquitous)).


## [v16.21.1](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16211---2025-07-03)

It fixes 3 bugs.

- Fixed: unexpected change of syntax in computed `EditInfo` ([#8638](stylelint/stylelint#8638)) ([@romainmenke](https://github.com/romainmenke)).
- Fixed: `function-linear-gradient-no-nonstandard-direction` false positives for CSS variables' names containing a direction substring ([#8643](stylelint/stylelint#8643)) ([@Solomon-mithra](https://github.com/Solomon-mithra)).
- Fixed: `media-feature-range-notation` autofix for exact values ([#8651](stylelint/stylelint#8651)) ([@romainmenke](https://github.com/romainmenke)).


## [v16.21.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16210---2025-06-19)

It rounds out the `message` secondary option and marks it as stable, adds 1 new option to a rule, and fixes 4 bugs.

- Added: non-experimental support for functional `message` secondary option ([#8595](stylelint/stylelint#8595)) ([@ybiquitous](https://github.com/ybiquitous)).
- Added: `ignore: ["after-custom-property"]` to `custom-property-empty-line-before` ([#8627](stylelint/stylelint#8627)) ([@imkesin](https://github.com/imkesin)).
- Fixed: `cache` configuration property not being respected ([#8599](stylelint/stylelint#8599)) ([@ybiquitous](https://github.com/ybiquitous)).
- Fixed: `fastest-levenshtein` import when bundling ([#8621](stylelint/stylelint#8621)) ([@onigoetz](https://github.com/onigoetz)).
- Fixed: `named-grid-areas-no-invalid` false positives for interpolated grid-template-areas in CSS-in-JS ([#8606](stylelint/stylelint#8606)) ([@shahana308](https://github.com/shahana308)).
- Fixed: `selector-pseudo-*-no-unknown` false positives for the missing form control styling selectors ([#8623](stylelint/stylelint#8623)) ([@tyrann0us](https://github.com/tyrann0us)).
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 7, 2025
| datasource | package   | from    | to      |
| ---------- | --------- | ------- | ------- |
| npm        | stylelint | 16.20.0 | 16.23.0 |


## [v16.23.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16230---2025-07-29)

It adds 5 new rules, 1 option to a rule and fixes 3 bugs. We've turned on the new rules in our [standard config](https://www.npmjs.com/package/stylelint-config-standard).

- Added: `block-no-redundant-nested-style-rules` rule ([#8684](stylelint/stylelint#8684)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `media-type-no-deprecated` rule ([#8668](stylelint/stylelint#8668)) ([@immitsu](https://github.com/immitsu)).
- Added: `nesting-selector-no-missing-scoping-root` rule ([#8674](stylelint/stylelint#8674)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `no-invalid-position-declaration` rule ([#8669](stylelint/stylelint#8669)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `property-no-deprecated` rule ([#8682](stylelint/stylelint#8682)) ([@immitsu](https://github.com/immitsu)).
- Added: `except: ["exact-value"]` to `media-feature-range-notation` ([#8675](stylelint/stylelint#8675)) ([@immitsu](https://github.com/immitsu)).
- Fixed: `declaration-block-no-duplicate-properties` false negatives for named colors with `ignore: ['consecutive-duplicates-with-different-syntaxes']` ([#8665](stylelint/stylelint#8665)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Fixed: `function-no-unknown` false positives ([#8677](stylelint/stylelint#8677)) ([@Mouvedia](https://github.com/Mouvedia)).
- Fixed: `no-irregular-whitespace` false positives for strings ([#8667](stylelint/stylelint#8667)) ([@immitsu](https://github.com/immitsu)).


## [v16.22.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16220---2025-07-18)

It adds 3 rule features and fixes 2 bugs.

- Added: `messageArgs` to `color-named` ([#8663](stylelint/stylelint#8663)) ([@Mouvedia](https://github.com/Mouvedia)).
- Added: `messageArgs` to `declaration-property-value-keyword-no-deprecated` ([#8654](stylelint/stylelint#8654)) ([@Mouvedia](https://github.com/Mouvedia)).
- Added: `no-descending-specificity` report message includes line number of the anchoring selector ([#8666](stylelint/stylelint#8666)) ([@immitsu](https://github.com/immitsu)).
- Fixed: `at-rule-no-deprecated` false positives for `@apply` ([#8630](stylelint/stylelint#8630)) ([@Mouvedia](https://github.com/Mouvedia)).
- Fixed: `lightness-notation` crash with `"number"` option and single-digit percentage ([#8661](stylelint/stylelint#8661)) ([@ybiquitous](https://github.com/ybiquitous)).


## [v16.21.1](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16211---2025-07-03)

It fixes 3 bugs.

- Fixed: unexpected change of syntax in computed `EditInfo` ([#8638](stylelint/stylelint#8638)) ([@romainmenke](https://github.com/romainmenke)).
- Fixed: `function-linear-gradient-no-nonstandard-direction` false positives for CSS variables' names containing a direction substring ([#8643](stylelint/stylelint#8643)) ([@Solomon-mithra](https://github.com/Solomon-mithra)).
- Fixed: `media-feature-range-notation` autofix for exact values ([#8651](stylelint/stylelint#8651)) ([@romainmenke](https://github.com/romainmenke)).


## [v16.21.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16210---2025-06-19)

It rounds out the `message` secondary option and marks it as stable, adds 1 new option to a rule, and fixes 4 bugs.

- Added: non-experimental support for functional `message` secondary option ([#8595](stylelint/stylelint#8595)) ([@ybiquitous](https://github.com/ybiquitous)).
- Added: `ignore: ["after-custom-property"]` to `custom-property-empty-line-before` ([#8627](stylelint/stylelint#8627)) ([@imkesin](https://github.com/imkesin)).
- Fixed: `cache` configuration property not being respected ([#8599](stylelint/stylelint#8599)) ([@ybiquitous](https://github.com/ybiquitous)).
- Fixed: `fastest-levenshtein` import when bundling ([#8621](stylelint/stylelint#8621)) ([@onigoetz](https://github.com/onigoetz)).
- Fixed: `named-grid-areas-no-invalid` false positives for interpolated grid-template-areas in CSS-in-JS ([#8606](stylelint/stylelint#8606)) ([@shahana308](https://github.com/shahana308)).
- Fixed: `selector-pseudo-*-no-unknown` false positives for the missing form control styling selectors ([#8623](stylelint/stylelint#8623)) ([@tyrann0us](https://github.com/tyrann0us)).
renovate bot added a commit to andrei-picus-tink/auto-renovate that referenced this pull request Aug 8, 2025
| datasource | package   | from    | to      |
| ---------- | --------- | ------- | ------- |
| npm        | stylelint | 16.20.0 | 16.23.1 |


## [v16.23.1](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16231---2025-08-07)

It fixes 7 bugs.

- Fixed: `no-invalid-position-declaration` false positives for embedded styles ([#8701](stylelint/stylelint#8701)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Fixed: `property-no-deprecated` erroneously autofixing `clip` ([#8699](stylelint/stylelint#8699)) ([@immitsu](https://github.com/immitsu)).
- Fixed: `property-no-deprecated` false positives for `-webkit-box-orient: vertical;` ([#8699](stylelint/stylelint#8699)) ([@immitsu](https://github.com/immitsu)).
- Fixed: `selector-pseudo-*-no-unknown` false positives for some meter pseudo classes/elements ([#8708](stylelint/stylelint#8708)) ([@Mouvedia](https://github.com/Mouvedia)).
- Fixed: `selector-pseudo-class-no-unknown` false positives for `:unchecked` ([#8705](stylelint/stylelint#8705)) ([@Mouvedia](https://github.com/Mouvedia)).
- Fixed: `selector-pseudo-element-no-unknown` false positives for `::search-text` ([#8707](stylelint/stylelint#8707)) ([@Mouvedia](https://github.com/Mouvedia)).
- Fixed: `selector-type-no-unknown` false positives for `selectedcontent` ([#8716](stylelint/stylelint#8716)) ([@Mouvedia](https://github.com/Mouvedia)).


## [v16.23.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16230---2025-07-29)

It adds 5 new rules, 1 option to a rule and fixes 3 bugs. We've turned on the new rules in our [standard config](https://www.npmjs.com/package/stylelint-config-standard).

- Added: `block-no-redundant-nested-style-rules` rule ([#8684](stylelint/stylelint#8684)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `media-type-no-deprecated` rule ([#8668](stylelint/stylelint#8668)) ([@immitsu](https://github.com/immitsu)).
- Added: `nesting-selector-no-missing-scoping-root` rule ([#8674](stylelint/stylelint#8674)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `no-invalid-position-declaration` rule ([#8669](stylelint/stylelint#8669)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Added: `property-no-deprecated` rule ([#8682](stylelint/stylelint#8682)) ([@immitsu](https://github.com/immitsu)).
- Added: `except: ["exact-value"]` to `media-feature-range-notation` ([#8675](stylelint/stylelint#8675)) ([@immitsu](https://github.com/immitsu)).
- Fixed: `declaration-block-no-duplicate-properties` false negatives for named colors with `ignore: ['consecutive-duplicates-with-different-syntaxes']` ([#8665](stylelint/stylelint#8665)) ([@sw1tch3roo](https://github.com/sw1tch3roo)).
- Fixed: `function-no-unknown` false positives ([#8677](stylelint/stylelint#8677)) ([@Mouvedia](https://github.com/Mouvedia)).
- Fixed: `no-irregular-whitespace` false positives for strings ([#8667](stylelint/stylelint#8667)) ([@immitsu](https://github.com/immitsu)).


## [v16.22.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16220---2025-07-18)

It adds 3 rule features and fixes 2 bugs.

- Added: `messageArgs` to `color-named` ([#8663](stylelint/stylelint#8663)) ([@Mouvedia](https://github.com/Mouvedia)).
- Added: `messageArgs` to `declaration-property-value-keyword-no-deprecated` ([#8654](stylelint/stylelint#8654)) ([@Mouvedia](https://github.com/Mouvedia)).
- Added: `no-descending-specificity` report message includes line number of the anchoring selector ([#8666](stylelint/stylelint#8666)) ([@immitsu](https://github.com/immitsu)).
- Fixed: `at-rule-no-deprecated` false positives for `@apply` ([#8630](stylelint/stylelint#8630)) ([@Mouvedia](https://github.com/Mouvedia)).
- Fixed: `lightness-notation` crash with `"number"` option and single-digit percentage ([#8661](stylelint/stylelint#8661)) ([@ybiquitous](https://github.com/ybiquitous)).


## [v16.21.1](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16211---2025-07-03)

It fixes 3 bugs.

- Fixed: unexpected change of syntax in computed `EditInfo` ([#8638](stylelint/stylelint#8638)) ([@romainmenke](https://github.com/romainmenke)).
- Fixed: `function-linear-gradient-no-nonstandard-direction` false positives for CSS variables' names containing a direction substring ([#8643](stylelint/stylelint#8643)) ([@Solomon-mithra](https://github.com/Solomon-mithra)).
- Fixed: `media-feature-range-notation` autofix for exact values ([#8651](stylelint/stylelint#8651)) ([@romainmenke](https://github.com/romainmenke)).


## [v16.21.0](https://github.com/stylelint/stylelint/blob/HEAD/CHANGELOG.md#16210---2025-06-19)

It rounds out the `message` secondary option and marks it as stable, adds 1 new option to a rule, and fixes 4 bugs.

- Added: non-experimental support for functional `message` secondary option ([#8595](stylelint/stylelint#8595)) ([@ybiquitous](https://github.com/ybiquitous)).
- Added: `ignore: ["after-custom-property"]` to `custom-property-empty-line-before` ([#8627](stylelint/stylelint#8627)) ([@imkesin](https://github.com/imkesin)).
- Fixed: `cache` configuration property not being respected ([#8599](stylelint/stylelint#8599)) ([@ybiquitous](https://github.com/ybiquitous)).
- Fixed: `fastest-levenshtein` import when bundling ([#8621](stylelint/stylelint#8621)) ([@onigoetz](https://github.com/onigoetz)).
- Fixed: `named-grid-areas-no-invalid` false positives for interpolated grid-template-areas in CSS-in-JS ([#8606](stylelint/stylelint#8606)) ([@shahana308](https://github.com/shahana308)).
- Fixed: `selector-pseudo-*-no-unknown` false positives for the missing form control styling selectors ([#8623](stylelint/stylelint#8623)) ([@tyrann0us](https://github.com/tyrann0us)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Add nesting-selector-no-missing-scoping-root

5 participants