NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2890 most downloaded on npm
A mighty CSS linter that helps you avoid errors and enforce conventions.
Last release 4 days ago
01 Oct 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
283 releases · first in 2014
Added: exceptions and severity options to report* configuration object properties (#5143).
report* configuration object properties (#5143).Added: ignoreDisables, reportNeedlessDisables, reportInvalidScopeDisables and reportDescriptionlessDisables configuration object properties (#5126).
One column per quarter.
Fixed: incorrect exit code when using --report options (#5079).
--report options (#5079).color-hex-case false negatives for css-in-js object notation (#5101).color-hex-length false negatives for css-in-js object notation (#5106).selector-attribute-name-disallowed-list false positives for valueless attribute selectors (#5060).Deprecated: StylelintStandaloneReturnValue.reportedDisables, .descriptionlessDisables, .needlessDisables, and .invalidScopeDisables. .reportedDisables…
StylelintStandaloneReturnValue.reportedDisables, .descriptionlessDisables, .needlessDisables, and .invalidScopeDisables. .reportedDisables will always be empty and the other properties will always be undefined, since these errors now show up in .results instead (#4973).comment-pattern rule (#4962).selector-attribute-name-disallowed-list rule (#4992).ignoreAtRules[] to property-no-unknown (#4965).*-notation false negatives for dollar variables (#5031).*-pattern missing configured pattern in violation messages (#4975).Fixed: regression for disable commands and adjacent double-slash comments (#4950).
Fixed: double-slash disable comments when followed by another comment (#4913).
Deprecated: *-blacklist, *-requirelist and *-whitelist rules in favour of the new *-disallowed-list, *-required-list and *-allowed-list ones (#4845):
*-blacklist, *-requirelist and *-whitelist rules in favour of the new *-disallowed-list, *-required-list and *-allowed-list ones (#4845):
at-rule-blacklist. Use at-rule-disallowed-list instead.at-rule-property-requirelist. Use at-rule-property-required-list instead.at-rule-whitelist. Use at-rule-allowed-list instead.comment-word-blacklist. Use comment-word-disallowed-list instead.declaration-property-unit-blacklist. Use declaration-property-unit-disallowed-list instead.declaration-property-unit-whitelist. Use declaration-property-unit-allowed-list instead.declaration-property-value-blacklist. Use declaration-property-value-disallowed-list instead.declaration-property-value-whitelist. Use declaration-property-value-allowed-list instead.function-blacklist. Use function-disallowed-list instead.function-url-scheme-blacklist. Use function-url-scheme-disallowed-list instead.function-url-scheme-whitelist. Use function-url-scheme-allowed-list instead.function-whitelist. Use function-allowed-list instead.media-feature-name-blacklist. Use media-feature-name-disallowed-list instead.media-feature-name-value-whitelist. Use media-feature-name-value-allowed-list instead.media-feature-name-whitelist. Use media-feature-name-allowed-list instead.property-blacklist. Use property-disallowed-list instead.property-whitelist. Use property-allowed-list instead.selector-attribute-operator-blacklist. Use selector-attribute-operator-disallowed-list instead.selector-attribute-operator-whitelist. Use selector-attribute-operator-allowed-list instead.selector-combinator-blacklist. Use selector-combinator-disallowed-list instead.selector-combinator-whitelist. Use selector-combinator-allowed-list instead.selector-pseudo-class-blacklist. Use selector-pseudo-class-disallowed-list instead.selector-pseudo-class-whitelist. Use selector-pseudo-class-allowed-list instead.selector-pseudo-element-blacklist. Use selector-pseudo-element-disallowed-list instead.selector-pseudo-element-whitelist. Use selector-pseudo-element-allowed-list instead.unit-blacklist. Use unit-disallowed-list instead.unit-whitelist. Use unit-allowed-list instead.customSyntax option (#4839).*.cjs config files (#4905).reportDescriptionlessDisables flag (#4907).reportDisables secondary option (#4897).*-no-vendor-prefix autofix (#4859).ignoreComments[] to comment-empty-line-before (#4841).ignoreContextFunctionalPseudoClasses to selector-max-id (#4835).selector-max-* (except selector-max-type) false negatives for where, is, nth-child and nth-last-child (#4842).length-zero-no-unit TypeError for custom properties fallback (#4860).selector-combinator-space-after false positives for trailing combinator (#4878).Fixed: max-empty-lines TypeError from inline comment with autofix and sugarss syntax (#4821).
Added: ignoreSelectors[] to block-opening-brace-space-before (#4640).
ignoreSelectors[] to block-opening-brace-space-before (#4640).--report-invalid-scope-disables (#4784).stderr (#4799).package.json's engine field (#4790).alpha-value-notation number precision errors (#4802).font-family-no-missing-generic-family-keyword false positives for variables (#4806).no-duplicate-selectors false positives for universal selector and disallowInList (#4809).Added: alpha-value-notation rule (#4770).
Fixed: time-min-milliseconds TypeError for ignore: ["delay"] and shorthand animation (#4783).
time-min-milliseconds TypeError for ignore: ["delay"] and shorthand animation (#4783).Added: ignore:["delay"] to time-min-milliseconds (#4743).
ignore:["delay"] to time-min-milliseconds (#4743).ignoreFunctions: [] to value-keyword-case (#4733).--report-needless-disables respects stylelint-disable commands (#4714).at-rule-property-requirelist TypeError for comments inside of font-face (#4744).declaration-block-trailing-semicolon false positives for CSS-in-JS object notation (#4749).declaration-empty-line-before false positives for inlines styles (#4726).media-feature-name-* false positives for forced-colors (#4775).value-keyword-case false positives WebExtension replacement keywords (#4778).value-keyword-case false positives regression for mixed-case properties and the ignoreProperties option (#4748).Fixed: autofix will respect scoped disable comments by turning off autofix for the scoped rules for the entire source; this is a continuation of the w
13.2.0 (#4705).Fixed: update postcss-css-in-js with fix for maximum call stack size exceeded error (#4701).
Fixed: babel configuration conflict when using TypeScript (postcss-css-in-js/#2).
Added: ignoreFontFamilies: [] to font-family-no-missing-generic-family-keyword (#4656).
Fixed: selector-pseudo-element-no-unknown false positives for ::part pseudo-element (#4604).
Security: updated to postcss-selector-parser@6 due to a vulnerability in one of postcss-selector-parser@3 dependencies (#4595). Due to this update:
postcss-selector-parser@6 due to a vulnerability in one of postcss-selector-parser@3 dependencies (#4595). Due to this update:
selector-descendant-combinator-no-non-space will ignore selectors containing commentsselector-pseudo-class-parentheses-space-inside can't autofix pseudo-classes that contain comments--stdin CLI flag that accepts stdin input even if it is empty (#4594).Fixed: media-feature-name-* false negatives for range context (#4581).
Removed: Node.js 8.x support. Node.js 10 is now required. We can guarantee stylelint works on the latest Node.js 10 release. (#4500).
globby was updated to v10. Now only forward-slashes (/) should be used as directory separator in globs. Refer to glob pattern syntax. Most of the users wouldn't need to change anything, but Windows users might need to update their globs. (#4254).unit-no-unknown support for x unit (#4427).--report-invalid-scope-disables crash when no rules specified (#4498).media-feature-parentheses-space-inside false negatives for multiple spaces (#4513).selector-type-no-unknown false positives for SVG tags (#4495).unit-no-unknown false positives for Sass map keys (#4450).value-list-comma-newline-after false positives for shared-line comments (#4482).Fixed: string-no-newline memory leak for ERB templates (#4491).
string-no-newline memory leak for ERB templates (#4491).Removed: ignoring bower_components folder by default (#4384).
bower_components folder by default (#4384).createRuleTester API (#4385).comment-empty-line-before false positives for selector lists and shared-line comments (#4360).font-family-no-missing-generic-family-keyword false positives for Sass-variables with namespaces (#4378).font-weight-notation false positives for font-weight ranges in @font-face (#4372).length-zero-no-unit false positives for line-height, and for fr units (#4394).length-zero-no-unit false positives for Less variables (#4405).selector-max-* false negatives for rules with nested rules (#4357).Fixed: syntax configuration for --syntax css (#4335).
--syntax css (#4335).Added: css syntax option (#4315).
Deprecated: createRuleTester API (#4279).
--report-needless-disables CLI flag now reports needless disables and runs linting (#4151).stylelintError as a boolean (#4174).createRuleTester API (#4279).--reportInvalidScopeDisables CLI flag (#4181).unicode-bom rule (#4225).max-empty-lines autofix (#3667).selector-pseudo-element-case autofix (#3672).selector-* support for all logical combinations (:matches, :has) (#4179).ignore: ["selectors-within-list"] to no-descending-specificity (#4176).ignoreSelectors: [] to property-no-unknown (#4275).*-max-empty-lines to only report one violation per function, selector, value list (#4260).block-no-empty crash for @import statements (#4110).indentation false positives for <style> tag with multiline attributes (#4177).length-zero-no-unit false positives for inside calc function (#4175).max-line-length false positives for multi-line url() (#4169).no-duplicate-selectors false positives for selectors in the same selector list (#4173).no-unit-unknown false positives for at-variables (Less) starting with numbers (#4163).property-no-unknown for overflowX for CSS-in-JS (#4184).Added: selector-max-empty-lines autofix (#3717).
selector-max-empty-lines autofix (#3717).--report-needless-disables output (#4071).--output-file CLI flag (#4085).function-calc-no-invalid false positives for interpolation (#4046).declaration-block-semicolon-space-before autofix with !important annotations (#4016).selector-pseudo-class-no-unknown false positives for defined (#4081).selector-max-empty-lines autofix (#3717).--report-needless-disables output (#4071).--output-file CLI flag (#4085).function-calc-no-invalid false positives for interpolation (#4046).declaration-block-semicolon-space-before autofix with !important annotations (#4016).no-eol-whitespace autofix for within comments (#4224).no-eol-whitespace false negatives for last line without trailing EOL (#4224).selector-pseudo-class-no-unknown false positives for defined (#4081).Fixed: minimum Node.js engine reduced to 8.7.0 (#4032).
Removed: Node.js 6.x support. Node.js 8.15.1 or greater is now required (#4006).
styled and jsx syntax options that were replaced with css-in-js in v9.10.0 (#4007).--allow-empty-input flag for the old behaviour (#3965).lib/rules/index.js (#3923).at-rule-property-requirelist rule (#3997).disallowInList to no-duplicate-selectors (#3936).ignore: ["comments"] to block-no-empty (#4008).color-no-invalid-hex false negatives for CSS-in-JS (#3957).feature-name-no-unknown false positives for prefers-color-scheme (#3951).function-calc-no-invalid false positives for negative numbers (#3921).no-descending-specificity false positives for vendor prefixed pseudo-elements (#3929).selector-max-* false negatives for nested at-rules (#3959).value-keyword-case autofix for single-line comments within maps (#4019).styled and jsx syntax options that were replaced with css-in-js in v9.10.0 (#4007).--allow-empty-input flag for the old behavior (#3965).lib/rules/index.js (#3923).at-rule-property-requirelist rule (#3997).disallowInList to no-duplicate-selectors (#3936).ignore: ["comments"] to block-no-empty (#4008).color-no-invalid-hex false negatives for CSS-in-JS (#3957).feature-name-no-unknown false positives for prefers-color-scheme (#3951).function-calc-no-invalid false positives for negative numbers (#3921).no-descending-specificity false positives for vendor prefixed pseudo-elements (#3929).selector-max-* false negatives for nested at-rules (#3959).selector-max-universal are now evaluated separately (#4263).value-keyword-case autofix for single-line comments within maps (#4019).Fixed: "fatal: Not a git repository" error (#3915).
Added: support for ordinary regular expressions anywhere a regex string is accepted in rule config (#3799).
css-in-js syntax option that will replace the existing styled and jsx ones (#3872).function-calc-no-invalid rule (#3833).ignore: ["next-sibling"] to selector-max-type (#3832).declaration-block-semicolon-space-after autofix (#3865).CssSyntaxError for functions in template literals (#3869).no-descending-specificity false positives for styled-components (#3875).no-duplicate-selectors false positives for styled-components (#3875).selector-pseudo-class-no-unknown false positives for focus-visible (#3887).selector-max-universal false positives for flush comments containing a comma (#3817).shorthand-property-redundant-values false positives for negative values (#3888).Added: selector-list-comma-newline-after autofix (#3815).
selector-list-comma-newline-after autofix (#3815).value-list-max-empty-lines autofix (#3814).ignoreSelectors: [] to selector-no-vendor-prefix (#3748).&:extend for Less syntax (#3824).--report-needless-disables CLI flag (#3819).font-family-no-missing-generic-family-keyword false positives for system fonts (#3794).Added: value-keyword-case autofix (#3775).
value-keyword-case autofix (#3775).ignore: ["pseudo-classes"] to max-nesting-depth (#3724).ignoreTypes:[] to selector-type-case (#3758).ignoreFunctions:[] to unit-no-unkown (#3736).at-rule-* false positives for Less variables and mixins (#3767).max-empty-lines false positives for final newlines (#3785).Fixed: at-rule-* false positives for Less variables and mixins (#3759).
at-rule-* false positives for Less variables and mixins (#3759).Added: allow globally installed configuration (#3642).
media-feature-parentheses-space-inside autofix (#3720).selector-descendant-combinator-no-non-space autofix (#3565).unit-case autofix (#3725).max-empty-lines false positives for empty lines before </style> (#3708).selector-max-specificity false positives for functional psuedo-classes (#3711).Added: suggestions for invalid CLI options (#3622).
no-empty-first-line rule (#3650).at-rule-name-space-after autofix (#3653).block-closing-brace-empty-line-before autofix (#3598).block-closing-brace-space-before autofix (#3673).comment-whitespace-inside autofix (#3619).declaration-bang-space-after autofix (#3598).declaration-bang-space-before autofix (#3592).declaration-colon-newline-after autofix (#3588).function-comma-space-after autofix (#3555).function-comma-space-before autofix (#3596).function-name-case autofix (#3674).function-max-empty-lines autofix (#3645).function-parentheses-newline-inside autofix (#3601).function-whitespace-after autofix (#3648).media-feature-colon-space-after autofix (#3623).media-feature-colon-space-before autofix (#3637).media-feature-name-case autofix (#3685).media-feature-range-operator-space-after autofix (#3639).media-feature-range-operator-space-before autofix (#3618).media-query-list-comma-newline-after autofix (#3643).media-query-list-comma-space-after autofix (#3607).media-query-list-comma-space-before autofix (#3640).function-parentheses-space-inside autofix (#3563).selector-attribute-brackets-space-inside autofix (#3605).selector-attribute-operator-space-after autofix (#3641).selector-attribute-operator-space-before autofix (#3603).selector-pseudo-class-case autofix (#3671).selector-pseudo-class-parentheses-space-inside autofix (#3646).selector-type-case autofix (#3668).no-eol-whitespace autofix (#3615).no-extra-semicolons autofix (#3574).value-list-comma-newline-after autofix (#3616).value-list-comma-space-after autofix (#3558).value-list-comma-space-before autofix (#3597).baseIndentLevel to indentation (#3557).linebreaks TypeError (#3636).max-empty-lines incorrect line reporting (#3530).media-query-list-comma-newline-after false positives for trailing comment (#3657).no-descending-specificity false positives for CSS Modules functional pseudo-classes (#3623).Added: bundled support for styles in CSS-in-JS object literals (#3506).
--print-config CLI flag (#3532).block-closing-brace-newline-before autofix (#3442).block-opening-brace-newline-before autofix (#3518).block-opening-brace-space-after autofix (#3520).block-opening-brace-newline-after autofix (#3441).declaration-block-semicolon-newline-after autofix (#3545).declaration-block-semicolon-space-before autofix (#3554).declaration-colon-space-after autofix (#3538).selector-list-comma-newline-before autofix (#3517).selector-list-comma-space-after autofix (#3490).unix formatter (#3524).selector-descendant-combinator-no-non-space false positives for calculations with parenthesis (#3508).Added: bundled support for styles in template literals (#3405).
linebreaks rule (#3289).compact formatter (#3488).at-rule-semicolon-newline-after autofix (#3450).block-closing-brace-newline-after autofix (#3443).block-opening-brace-space-before autofix (#3438).declaration-block-trailing-semicolon autofix (#3382).declaration-colon-space-before autofix (#3445).property-case autofix (#3448).selector-combinator-space-after autofix (#3446).selector-combinator-space-before autofix (#3457).selector-list-comma-space-before autofix (#3447).block-opening-brace-newline-after false positives for nested rule-sets prefixed with comments (#3383).declaration-block-trailing-semicolon report of errors with the --fix option (#3493).font-family-name-quotes false positives for system-ui system font (#3463).keyframes-name-pattern support for raw JS RegExp (#3437).media-feature-name-no-unknown false positives for level 5 names (#3397).no-descending-specificity false positives for #{&} (#3420).no-missing-end-of-source-newline false positives for style attributes (#3485).Added: support for tags and style="" attributes in XML and XSLT files (#3386).
<style> tags and style="" attributes in XML and XSLT files (#3386).globbyOptions option (#3339).keyframes-name-pattern rule (#3321).media-feature-name-value-whitelist rule (#3320).selector-pseudo-element-colon-notation autofix (#3345)..vue files throwing errors for <style lang="stylus"> and <style lang="postcss"> (#3331).declaration-block-no-* false positives for non-standard syntax (#3381).function-whitespace-after false positives for "/" (#3132).length-zero-no-unit incorrect autofix for at-includes (#3347).max-nesting-depth false positives for nested properties (#3349).no-empty-source false positives on vue external sources <style src="*"> tag (#3331).max-line-length false positives for non-CSS blocks (#3367).no-eol-whitespace false positives for non-CSS blocks (#3367).no-extra-semicolons false positives for non-CSS blocks (#3367).no-missing-end-of-source-newline false positives for non-CSS blocks (#3367).Fixed: cache option hiding CssSyntaxError outputs (#3258).
cache option hiding CssSyntaxError outputs (#3258).no-descending-specificity false positives for Sass nested properties (#3283).selector-pseudo-class-no-unknown false positives proprietary webkit pseudo classes when applied to a simple selector (#3271).Added: selector-max-pseudo-class rule (#3195).
selector-max-pseudo-class rule (#3195).require('stylelint') time (#3242).indentation false positives for at-root (#3225).max-empty-lines false positives for non-CSS blocks (#3229).no-empty-source false positives for non-CSS blocks (#3240).string-no-newline false positives for non-CSS blocks (#3228).Fixed: invalid HTML causing CssSyntaxError by updating postcss-html dependency (#3214).
Fixed: parsing of markdown files by updating postcss-html dependency (#3207).
Fixed: missing signal-exit dependency (#3186).
signal-exit dependency (#3186).Added: ignore: ["first-nested"] to at-rule-empty-line-before (#3179).
Removed: Node.JS 4.x support. Node.js 6.x or greater is now required (#3075).
--max-warnings CLI flag (#2942).selector-combinator-*list rules (#3088).selector-pseudo-element-*list rules (#3104).ignore: ["first-nested"] to custom-property-empty-line-before (#3104).ignore: ["first-nested"] to declaration-empty-line-before (#3103).ignoreProperties: [] to property-no-vendor-prefix (#3089).font-family-name-quotes unicode range increased (#2974).selector-max-id in nested at-statements (#3113).Added: except: ["after-closing-brace"] to block-closing-brace-empty-line-before (#3011).
except: ["after-closing-brace"] to block-closing-brace-empty-line-before (#3011).postcss-sass (#3040).*.pcss files (#3064).font-family-no-missing-generic-family-keyword configuration (#3039).indentation autofix for HTML (#3044).Fixed: font-family-no-missing-generic-family-keyword false positives for at-font-face (#3034).
font-family-no-missing-generic-family-keyword false positives for at-font-face (#3034).Added: autofix support for stdin input (#2787).
<style> tags and markdown fences in .vue and .html files (#2975).font-family-no-missing-generic-family-keyword rule (#2930).no-duplicate-at-import-rules rule (#2963).number-leading-zero autofix (#2921).number-no-trailing-zeros autofix (#2947).shorthand-property-no-redundant-values autofix (#2956).string-quotes autofix (#2959).ignore: ["custom-properties"] option to length-zero-no-unit (#2967).except: ["inside-block"] option to rule-empty-line-before (#2982).ignoreValues to value-no-vendor-prefix (#3015).ignoreMediaFeatureNames to unit-blacklist (#3027).comment-empty-line-before false positives for shared-line comments (#2986).unit-* false positives for spaceless multiplication (#2948).Added: autofix of syntax errors in standard CSS e.g. unclosed braces and brackets (#2886).
length-zero-no-unit autofix (#2861).selector-max-specificity support for level 4 evaluation context pseudo-classes (#2857).ignoreUnits option to number-max-precision (#2941).ignoreSelectors option to selector-max-specificity (#2857).ignoreProperties option to value-keyword-case (#2937).*-empty-line-before false negatives and positives when two or more except: [*] options were triggered (#2920).*-empty-line-before false positives for CSS in HTML (#2854).rule-empty-line-before false positives for ignore: ["inside-block"] and CSS in HTML (#2894).rule-empty-line-before false positives for except: ["after-single-line-comment"] and preceding shared-line comments (#2920).selector-list-comma-newline-after false positives for shared-line comments separated by more than once space (#2915).selector-pseudo-class-no-unknown false positives when using chained pseudo-classes (#2810).string-quotes false positives for @charset and single quotes (#2902).unit-no-unknown false positives for spaceless multiplication and division in calc() functions (#2848).Fixed: --ignore-pattern in CLI (#2851).
--ignore-pattern in CLI (#2851).Added: Allow specifying codeFilename to createStylelintResult for raw code linting standalone API (#2450).
codeFilename to createStylelintResult for raw code linting standalone API (#2450).ignorePattern option (--ignore-pattern in CLI), to allow patterns of files to ignored (#2834).--fix CLI parameter or fix: true Node API options property. Newly supported rules:
*-empty-line-before false positives shared-line comments and "first-nested" option (#2827).color-hex-length false positives for id references in url functions (#2806).indentation false positives for Less parametric mixins with rule block/snippet (#2744).no-empty-source compatability with postcss-html custom syntax (#2798).no-extra-semicolons false negatives where instances were not detected when followed by multiple comments (#2678).selector-max-specificity cannot parse selector violation for Less mixins (#2677).Removed: the 21 rules deprecated in `7.8.0` & `7.12.0` (#2422 & #2693).
This release is accompanied by:
~) in package.json is now recommended, e.g. "stylelint": "~8.0.0", to guarantee the results of your builds (#1865).stylelint-config-recommended. This config only turns on the possible error rules. stylelint-config-standard now builds on top of the recommended config by turning on over 60 additional stylistic rules.Changes:
7.8.0 & 7.12.0 (#2422 & #2693).
block-no-single-line.custom-property-no-outside-rootdeclaration-block-no-ignored-properties.declaration-block-properties-order.function-url-data-uris.media-feature-no-missing-punctuation.no-browser-hacks.no-indistinguishable-colors.no-unsupported-browser-features.root-no-standard-propertiesrule-nested-empty-line-before.rule-non-nested-empty-line-before.selector-no-attribute.selector-no-combinator.selector-no-empty.selector-no-id.selector-no-type.selector-no-universal.selector-root-no-composition.stylelint-disable-reason.time-no-imperceptible.7.8.0 (#2433).
"all-nested" option for at-rule-empty-line-before."blockless-group" option for at-rule-empty-line-before."between-comments" option for comment-empty-line-before."at-rules-without-declaration-blocks" option for max-nesting-depth.postcss from @5 to @6 (#2561).report-needless-disables now exits with non-zero code (#2341).*-blacklist and *-whitelist (and ignore* [] secondary options) are now case sensitive. Use regular expressions with the i flag for case insensitivity (#2709).*-empty-line-before now correctly handle shared-line comments (#2262).*-empty-line-before now consider line as empty if it contains whitespace only (#2440).function-linear-gradient-no-nonstandard-direction now checks all linear-gradients in a value list (#2496).selector-max-compound-selectors now checks all resolved selectors, rather than just the deepest (#2350).disableDefaultIgnores option (--disable-default-ignores in CLI), to allow linting of node_modules and bower_components directories (#2464)..stylelintignore (#2464).ignore: ["child"] option to selector-max-type (#2701).declaration-block-no-redundant-longhand-properties and declaration-block-no-shorthand-property-overrides understand more shorthand properties (#2354).selector-max-type no longer produces false negatives for when child, next-sibling and following-sibling combinators are used with ignore: ["descendant"] (#2701).Added: ignoreAttributes option to selector-max-attribute (#2722).
Deprecated: 6 rules, each has been replaced by a more configurable alternative (#2679).
function-url-data-uris rule. Use either function-url-scheme-blacklist or function-url-scheme-whitelist.selector-no-attribute rule. Use selector-max-attribute with 0 as its primary option.selector-no-combinator rule. Use selector-max-combinators with 0 as its primary option.selector-no-id rule. Use selector-max-id with 0 as its primary option.selector-no-type rule. Use selector-max-type with 0 as its primary option.selector-no-universal rule. Use selector-max-universal with 0 as its primary option.function-url-scheme-blacklist rule (#2626).function-url-scheme-whitelist regex support (#2662).selector-max-attribute rule (#2628).selector-max-combinators rule (#2658).selector-max-id rule (#2654).selector-max-type rule (#2665).selector-max-universal rule (#2653).--fix no longer crashes when used with ignored files (#2652).max-* rules now use singular and plural nouns in their messages (#2663).Fixed: media-feature-name-*list now accept arrays for their primary options (#2632).
Added: experimental autofixing (#2467, #2500, #2529 and #2577). Use --fix CLI parameter or fix: true Node API options property. Supported rules:
--fix CLI parameter or fix: true Node API options property. Supported rules:
at-rule-empty-line-beforeat-rule-name-casecolor-hex-casecomment-empty-line-beforecustom-property-empty-line-beforedeclaration-empty-line-beforeindentationrule-empty-line-beforeselector-max-class rule.ignore: ["custom-elements"] option to selector-type-no-unknown (#2366).cache enabled (#2494).:extend is now ignored (#2571).function-parentheses-space-inside now ignores functions without parameters (#2587).length-zero-no-unit now correctly handles newlines and no spaces after colon (#2477).selector-descendant-combinator-no-non-space and selector-combinator-space-before/after now understand and check >>> shadow-piercing combinator (#2509).selector-descendant-combinator-no-non-space now ignores Less guards (#2557).selector-pseudo-class-no-unknown now checks @page at-rules and supports @page pseudo-classes (#2445).selector-pseudo-class-no-unknown now considers focus-ring, playing and paused to be known (#2507).selector-type-no-unknown now ignores MathML tags (#2478).selector-type-no-unknown now ignores the /deep/ shadow-piercing combinator (#2508).value-keyword-case now ignores variables with signs (#2558).Fixed: scope is kept when using schema.preceedingPlugins (#2455).
schema.preceedingPlugins (#2455).Added: support for asynchronous plugin rules (#2351).
cache option to store the info about processed files in order to only operate on the changed ones the next time you run stylelint (#2293).at-rule-semicolon-space-before rule (#2388).ignore: ["comments"] to max-empty-lines (#2401).ignore: ["default-namespace"] to selector-type-no-unknown (#2461).ignoreDefaultNamespaces option to selector-type-no-unknown (#2461).decl/ folder of Flow types is shipped with the package, for consumers that use Flow (#2322).function-url-scheme-whitelist was working incorrectly if more than one URL scheme were specified (#2447).no-duplicate-selector now includes the duplicate selector's first usage line in message (#2415).no-extra-semicolons false positives for comments after custom property sets (#2396).value-keyword-case false positives for attr, counter, counters functions and counter-reset property (#2407).Added: ignoreFontFamilyName option to font-family-no-duplicate (#2314).
ignoreFontFamilyName option to font-family-no-duplicate (#2314).ignorePattern option to max-line-length (#2333).lodash dependency to match feature usage, fixing a conflict with Modernizr (#2353).color-hex-case false positives for id references in url functions (#2338).max-line-length now reports correct column for SCSS comments (#2340).selector-class-pattern false positive in SCSS when combining interpolated and nested selectors (#2344).selector-type-case false positive for placeholder selectors (#2360).Deprecated: 15 rules (#2197, #2285 & #2309).
block-no-single-line. Use block-opening-brace-newline-after and block-closing-brace-newline-before rules with the option "always" instead.declaration-block-properties-order. Use the stylelint-order plugin pack instead.rule-nested-empty-line-before and rule-non-nested-empty-line-before. Use the new rule-empty-line-before rule instead.time-no-imperceptible. Use the new time-min-milliseconds rule with 100 as its primary option.media-feature-no-missing-punctuation.
- selector-no-empty.no-browser-hacks
- no-indistinguishable-colors
- no-unsupported-browser-featurescustom-property-no-outside-root
- root-no-standard-properties
- selector-root-no-composition.stylelint-disable-reason could not enforce providing a reason
- declaration-block-no-ignored-properties could not reliably account for replaced elements."all-nested" option for at-rule-empty-line-before. Use the "inside-block" option instead."blockless-group" option for at-rule-empty-line-before. Use the "blockless-after-blockless" option instead."between-comments" option for comment-empty-line-before. Use the "after-comment" option instead."at-rules-without-declaration-blocks" option for max-nesting-depth. Use the "blockless-at-rules" option instead.time-min-milliseconds rule, to replace time-no-imperceptible (#2289).except: ["after-same-name"] option to at-rule-empty-line-before (#2225).configOverrides now work with extends (#2295).max-line-length no longer reports incorrect column positions for lines with url() or import (#2287).selector-pseudo-class-no-unknown no longer warns for proprietary webkit pseudo-classes (#2264).unit-no-unknown accepts fr units (#2308).Your coding agent can read these notes before it upgrades. Set up the MCP server →