# What changed in stylelint

> 132 changes in stylelint 16 to 17 from its official release notes, upgrade guides and advisories: 11 breaking, 1 deprecations, 24 new APIs and options. Each one cited. Sources checked 2026-10-17. HTML: https://unstale.sh/npm/stylelint/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## stylelint 17

### Breaking changes

- The CommonJS Node.js API was removed. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- The rule now behaves consistently for vendor prefixes. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- The default `fix` mode changed to `strict`. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- The GitHub formatter was removed. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- Rules now behave consistently for vendor prefixes and case. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- The rule's behavior changed for standard CSS nesting. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- The `output` property was removed from the resolved object returned by the Node.js API. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- Support for Node.js versions earlier than 20.19.0 was removed. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- The `resolveNestedSelectors` option was removed. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- The `checkContextFunctionalPseudoClasses` option was removed. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- The rule's behavior changed for standard CSS nesting. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)

### Deprecations

- The rule's *syntax options are deprecated. (17.5.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.5.0)

### New APIs and options

- Adds the ignoreFunctions option to color-named. (17.15.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.15.0)
- Adds the ignoreFunctions option to color-no-hex. (17.15.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.15.0)
- Adds the selector-no-unmatchable rule. (17.15.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.15.0)
- Adds autofixed to the result object. (17.11.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.11.0)
- Adds a loader property to experimental referenceFiles for cases where the order of appearance in reference styles matters. (17.11.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.11.0)
- Added the selector-no-invalid rule. (17.10.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.10.0)
- Added the unit-layout-mappings rule to enforce logical or physical properties, units and keywords. (17.10.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.10.0)
- Added the value-keyword-layout-mappings rule to enforce logical or physical properties, units and keywords. (17.10.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.10.0)
- Adds an experimental Node.js API option for cancellation support. (17.9.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.9.0)
- Adds maxWarnings to the configuration object. (17.9.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.9.0)
- Adds an experimental configuration property that makes the no-unknown-animations, no-unknown-custom-media and no-unknown-custom-properties rules more useful. (17.9.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.9.0)
- Adds the languageOptions.directionality configuration property. (17.8.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.8.0)
- Adds the property-layout-mappings rule. (17.8.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.8.0)
- Adds the relative-selector-nesting-notation rule. (17.8.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.8.0)
- Adds the selector-no-deprecated rule. (17.8.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.8.0)
- Supports extending units in languageOptions; the extended units apply to rules such as declaration-property-value-no-unknown. (17.6.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.6.0)
- Adds the `ignoreMediaFeatureNameValues` option. (17.5.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.5.0)
- Adds the ignoreAtRules option, defaulting to an empty array, to let developers ignore at-rules. (17.4.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.4.0)
- Adds the ignoreMediaFeatureNames option, defaulting to an empty array, to let developers ignore media feature names. (17.4.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.4.0)
- Adds the display-notation rule. The release notes say its options have not yet been chosen for the standard config. (17.1.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.1.0)
- The `except` option now accepts `after-block`. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- The `except` option now accepts `after-block`. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- The rule now supports the `ignoreSelectors` secondary option. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)

### Performance

- Improved the performance of getting module paths. (17.14.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.14.0)
- TIMING is dynamically imported only when used, improving performance. (17.14.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.14.0)
- Improves the performance of *-empty-line-before rules. (17.4.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.4.0)
- Improves the performance of no-irregular-whitespace. (17.4.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.4.0)
- Improves the performance of selector cloning rules. (17.4.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.4.0)
- The rule's performance was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- The rule's performance was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- Improves the performance of declaration-property-value-no-unknown. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.4.0), [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- The rule's performance was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- Performance of `*-list` rules was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- The rule's performance was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- Performance of `*-notation` rules was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- Rule sequencing performance was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- Performance of `selector-max-*` rules was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- The rule's performance was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- The rule's performance was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- The rule's performance was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- The rule's performance was improved. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- Performance of config augmentation and module imports was fixed, contributing to faster execution and lower memory use on larger codebases. (17.2.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.2.0)
- Performance of config override matching was fixed, contributing to faster execution and lower memory use on larger codebases. (17.2.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.2.0)
- Performance of config resolution was fixed, contributing to faster execution and lower memory use on larger codebases. (17.2.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.2.0)
- Performance of rule resolution was fixed, contributing to faster execution and lower memory use on larger codebases. (17.2.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.2.0)

### Behavior and default changes

- Syntax rules now account for standard CSS nesting and modern functional pseudo-classes. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- Semantic rules now account for standard CSS nesting. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)

### Tooling

- Version 1.0.0 is available to help with first-time Stylelint setup. (17.7.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.7.0)
- The Stylelint Language Server has its first release. (17.5.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.5.0)

### Fixes and other changes

- Fixes false negatives for uppercase property names. (17.16.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.16.0)
- Fixes false negatives for uppercase units. (17.16.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.16.0)
- Fixes false positives for anchor positioning. (17.15.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.15.0)
- Fixes autofix behavior for the font shorthand. (17.15.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.15.0)
- Fixes false positives for interpolated inline expressions. (17.15.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.15.0)
- Fixes false negatives for pseudo-elements, combinators and nested :has(). (17.15.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.15.0)
- Autofix no longer produces an invalid background shorthand when background-size is present. (17.14.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.14.1)
- The quiet option now suppresses report* warning reports. (17.14.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.14.1)
- Fixed the reported range of unknown rules. (17.14.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.14.1)
- Fixed false positives for shared-line comments when `except: ["after-single-line-comment"]` is configured. (17.14.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.14.1)
- Fixed false negatives for unspaced + and - operators following a * or / operator. (17.14.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.14.0)
- Fixes false negatives for interleaved non-consecutive duplicate properties when ignore is set to consecutive-duplicates(-*). (17.13.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.13.0)
- Fixes false positives for nested selectors. (17.13.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.13.0)
- Fixes false positives for install. (17.13.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.13.0)
- Fixed range reporting when using comments. (17.12.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.12.0)
- Fixed false negatives for custom properties defined in reference files. (17.12.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.12.0)
- Fixes false positives for `caption-side`. (17.12.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.16.0), [release notes](https://github.com/stylelint/stylelint/releases/tag/17.12.0)
- Fixed `node_modules` ignore behavior for `codeFilename` paths containing a dot-prefixed directory. (17.11.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.11.1)
- Fixed the rule's range for contiguous redundant longhand properties. (17.11.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.11.1)
- Fixed inconsistent error messages when a module is not found. (17.10.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.10.0)
- Fixed false negatives for property names in declaration values. (17.10.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.10.0)
- Fixed false positives for @page properties. (17.10.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.10.0)
- Fixed false positives for nested webkit-scrollbar parts. (17.10.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.10.0)
- Fixed a regression that caused ConfigurationError for custom syntaxes. (17.9.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.9.1)
- Fixed autofix for `page-break-*: always`. (17.9.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.9.1)
- Fixed false positives for `::part()`. (17.9.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.9.1)
- Avoids false positives when URLs have modifiers. (17.7.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.7.0)
- The CLI flag now hides internal properties. (17.7.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.7.0)
- Problem messages are clearer by removing filler words and leading with the problem. (17.7.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.7.0)
- Avoids false positives for `:has()`. (17.7.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.7.0)
- Fixes missing ruleMetadata when linting multiple files with overrides. (17.6.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.6.0)
- `node_modules` is now ignored when `codeFilename` is used in the Node.js API. (17.5.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.5.0)
- Fixes TS7016 for imported `css-tree` types. (17.5.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.5.0)
- The rule no longer reports false positives for function arguments. (17.5.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.5.0)
- The rule no longer reports false positives for `calc-size()` containing the `size` keyword. (17.5.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.5.0)
- The rule no longer misses equivalent compound selectors. (17.5.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.5.0)
- The rule no longer misses equivalent compound selectors. (17.5.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.5.0)
- The rule no longer reports false positives for `@mixin` and `@scope`. (17.5.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.5.0)
- The rule no longer misses cases involving `types`. (17.5.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.5.0)
- Fixes false negatives for at-rule descriptors. (17.4.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.4.0)
- Fixes false positives for corner-shape. (17.4.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.4.0)
- Fixes false positives for double-slashed properties. (17.4.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.4.0)
- The rule no longer misses math functions inside non-math functions. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- The rule no longer reports false positives for `calc()` with mixed operations. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- The rule now reports correct ranges for multiple math functions. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- The rule no longer reports false positives for a mix of tabs and spaces. (17.3.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.3.0)
- Fixed false negatives for math functions. (17.2.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.2.0)
- Fixed false negatives for matching escaped selectors. (17.2.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.2.0)
- Fixed false negatives for layers with blocks. (17.2.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.2.0)
- Fixed resolution of configs, plugins, processors, and custom syntaxes in Yarn PnP environments. (17.1.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.1.1)
- Fixes TypeScript errors involving GlobbyOptions. (17.1.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.1.0)
- Fixes false negatives and positives for relative colors. (17.1.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.1.0)
- Fixes false negatives for relative colors. (17.1.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.1.0)
- Fixed false positives for declarations within feature-value-blocks. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- Fixed false negatives for short and long combinations. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- Fixed Windows drive letter casing inconsistencies when matching patterns against file paths. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- Fixed false positives for namespaced dollar variables and range context queries. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- Fixed false positives for CSS-in-JS. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- Fixed false negatives for embedded blocks. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- Rules now behave consistently for their `ignore*` secondary options. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- The handling of provided position arguments is now consistent and predictable. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- Fixed false negatives for `:is/where()`. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- Fixed false positives for MathML 4 tags. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)
- CLI help now includes TypeScript config files. (17.0.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/17.0.0)

## stylelint 16

### New APIs and options

- Supports a function export for customSyntax. (16.26.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/16.26.0)

### Fixes and other changes

- Fixes false positives for `@function`. (16.26.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/16.26.1)
- Fixes false positives for `attr()`, `if()` and custom functions. (16.26.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/16.26.1)
- Fixes false positives when URLs require quoting. (16.26.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/16.26.1)
- Fixes false positives for the latest CSS specifications by integrating CSS syntax patches. (16.26.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/16.26.1)
- Fixes false positives for `::scroll-button()`. (16.26.1) — [release notes](https://github.com/stylelint/stylelint/releases/tag/16.26.1)
- Fixes false positives for style query in the if() function. (16.26.0) — [release notes](https://github.com/stylelint/stylelint/releases/tag/16.26.0)
