All notable changes to this project are documented in this file.
*-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).max-empty-lines TypeError from inline comment with autofix and sugarss syntax (#4821).property-no-unknown false positives for namespaced variables (#4803).selector-type-no-unknown false positives for idents within ::part pseudo-elements (#4828).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).alpha-value-notation rule (#4770).color-function-notation rule (#4760).hue-degree-notation rule (#4769).time-min-milliseconds TypeError for ignore: ["delay"] and shorthand animation (#4783).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).13.2.0 (#4705).ignoreFontFamilies: [] to font-family-no-missing-generic-family-keyword (#4656).function-calc-no-invalid false positives for SCSS and Less variables (#4659).unit-no-unknown false positives for x unit within vendor-prefixed image-set (#4654).selector-pseudo-element-no-unknown false positives for ::part pseudo-element (#4604).value-keyword-case false positives for longhand grid-column/row-* properties (#4611).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).media-feature-name-* false negatives for range context (#4581).indentation RangeError regression (#4572).string-quotes attribute selector autofix (#4576).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).string-no-newline memory leak for ERB templates (#4491).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).--syntax css (#4335).css syntax option (#4315).no-eol-whitespace parsing problems for non-standard syntaxes (#4313).selector-pseudo-class-no-unknown false positives for :is selector (#4321).--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).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).--allow-empty-input CLI flag (#4029).color-no-invalid-hex false positives for hashes in URLs (#4035).function-linear-gradient-no-nonstandard-direction false positives for dollar variables (#4027).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).selector-max-universal are now evaluated separately (#4263).value-keyword-case autofix for single-line comments within maps (#4019).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).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).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).at-rule-* false positives for Less variables and mixins (#3759).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).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).--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).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).<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).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).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).signal-exit dependency (#3186).ignore: ["first-nested"] to at-rule-empty-line-before (#3179).ignore: ["first-nested"] to rule-empty-line-before (#3179).--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).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).font-family-no-missing-generic-family-keyword false positives for at-font-face (#3034).<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).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).--ignore-pattern in CLI (#2851).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.js 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).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).ignoreAttributes option to selector-max-attribute (#2722).selector-combinator-space-* false positives for CSS namespaced type selectors (#2715).selector-max-specificity now ignores nested non-standard selectors (#2685).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).media-feature-name-*list now accept arrays for their primary options (#2632).selector-* now ignore custom property sets (#2634).selector-pseudo-class-no-unknown now ignores Less :extend (#2625).--fix CLI parameter or fix: true Node.js 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).schema.preceedingPlugins (#2455).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).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).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-hacksno-indistinguishable-colorsno-unsupported-browser-featurescustom-property-no-outside-rootroot-no-standard-propertiesselector-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).stylelint.formatters exposed in public Node.js API (#2190).stylelint.utils.checkAgainstRule for checking CSS against a standard stylelint rule within your own rule (#2173).allow-empty-input flag to CLI (#2117).except: ["after-rule"] option to rule-nested-empty-line-before (#2188).--stdin-filename in CLI and codeFilename in Node.js API to error if a non-existent filename is provided (#2128).--quiet) placed before an input glob no longer causes the input to be ignored (#2186).node_modules and bower_components directories are correctly ignored by default when stylelint is used as a PostCSS plugin (#2171).color-named now ignores SCSS maps, so map property names can be color names (#2182).comment-whitespace-inside no longer complains about /*! comments with non-space whitespace (e.g. newlines) (#2121).media-feature-name-no-vendor-prefix no longer throws syntax errors on unknown unprefixed variants (#2152).selector-max-compound-selectors ignores SCSS nested declarations (#2102).selector-pseudo-class-no-unknown no longer reports false positives for custom selectors (#2147).customSyntax (for Node.js API) and --custom-syntax (for CLI).font-family-no-duplicate-names rule.--custom-formatter option.string and verbose formatters now use dim instead of gray for greater compatibility with different terminal color schemes.media-feature-parentheses-space-inside handles comments within the parentheses.selector-no-qualifying-type now ignores SCSS %placeholders.selector-no-empty rule.process.cwd().ignoreFiles globs relative to process.cwd() if config is directly passed as a JS object and no configBasedir is provided.block-no-empty.configOverrides work with plugins, extends, and processors.stylelint-disable and stylelint-enable comments.function-calc-no-unspaced-operator false positives for SCSS interpolation.no-descending-specificity now ignores custom property sets.value-keyword-case false positives for some camel-case SVG keywords.null to turn off a rule caused errors.null for rules that take an array for their primary option would trigger a validation warning.process.cwd() if they aren't found relative to the invoking configuration./* stylelint-disable-next-line */ comments.media-feature-name-blacklist rule.media-feature-name-whitelist rule.ignore: ["after-declaration"] option to declaration-empty-line-before.except: ["empty"] option to function-url-quotes.function-linear-gradient-no-nonstandard-direction no longer warns when vendor-prefixed linear-gradient properties are used correctly.no-extra-semicolons now ignores the semicolon that comes after the closing brace of a custom property set.no-unknown-animations no longer delivers false positives when there are multiple animation names.number-* rules now ignore numbers in comments and strings.value-keyword-case now ignores system color keywords.processors can accept options objects.ignore: ["inside-function"] option to color-named.--ignore-path and --report-needless-disables no longer fails when used together.block-closing-brace-newline-after and block-closing-brace-space-after now allow a trailing semicolon after the closing brace of a block.block-no-single-line now ignores empty blocks.declaration-block-no-ignored-properties now uses the value of the last occurrence of a triggering property.indentation now correctly handles _ hacks on property names.property-no-unknown now ignores SCSS nested properties.--report-needless-disables and reportNeedlessDisables option.--ignore-disables and ignoreDisables option.--config-basedir option to CLI.declaration-block-no-redundant-longhand-properties rule.function-url-scheme-whitelist rule.media-feature-name-no-unknown rule.selector-descendant-combinator-no-non-space rule.value-list-max-empty-lines rule.ignoreProperties option to color-named.ignore: ["consecutive-duplicates-with-different-values"] option to declaration-block-no-duplicate-properties.ignore: ["comments"] option to max-line-length.ignoreAtRules option to max-nesting-depth.ignoreProperties option to unit-blacklist and unit-whitelistconfigFile and configBasedir can now be used together.max-line-length now correctly handles Windows line endings.no-descending-specificity treats selectors with pseudo-elements as distinct from their counterparts without pseudo-classes, because they actually target different elements.no-unknown-animations and unit-blacklist now handle numbers without leading zeros.root-no-standard-properties now handles custom property sets.selector-no-type ignore: ["descendant"] option now correctly handles descendants within a selector list.selector-pseudo-class-no-unknown now understands the Shadow DOM selectors of host and host-context.selector-pseudo-element-no-unknown now understands the Shadow DOM selector of slotted.block-closing-brace-empty-line-before rule.comment-no-empty rule.custom-property-empty-line-before rule.declaration-empty-line-before rule.media-feature-name-case rule.selector-nested-pattern rule.selector-pseudo-class-blacklist rule.selector-pseudo-class-whitelist rule.ignore* secondary options of the *-no-unknown rules.ignore: ["blockless-after-same-name-blockless"] option to at-rule-empty-line-before.except: ["blockless-after-same-name-blockless"] option to at-rule-empty-line-before.ignore: ["empty-lines"] option to no-eol-whitespace.ignoreTypes option to selector-no-type to whitelist allowed types for selectors.color-named now ignores declarations that accept custom idents.font-family-name-quotes correctly handles numerical font weights for the font shorthand property.indentation now correctly handles Windows line endings within parentheticals.media-feature-no-missing-punctuation now ignores media features containing complex values e.g. (min-width: ($var - 20px)) and (min-width: calc(100% - 20px)).no-descending-specificity message to correctly show which selector should come first.selector-combinator-space-after and selector-combinator-space-before now ignore operators within parenthetical non-standard constructs.selector-class-pattern now ignores fractional keyframes selectors.selector-max-specificity now ignores selectors containing the matches() pseudo-class, and warns if the underlying specificity module cannot parse the selector.selector-no-type with secondary option ignore: ["descendant"] will now resolve nested selectors.at-rule-blacklist, at-rule-whitelist, comment-word-blacklist, selector-attribute-operator-blacklist, selector-attribute-operator-whitelist now accept array as first option.unit-* rules now ignore CSS hacks.known-css-properties dependency.--extract and extractSyleTagsFromHtml options. Instead, build and use processors.your-namespace/your-rule-name rule names are supported. (If your plugin provides only a single rule or you can't think of a good namespace, you can simply use plugin/my-rule.)--verbose CLI flag. Use --formatter verbose instead.0.12.x support. 4.2.1 LTS or greater is now required.media-query-parentheses-space-inside rule. Use the new media-feature-parentheses-space-inside rule instead.no-missing-eof-newline rule. Use the new rule no-missing-end-of-source-newline instead.number-zero-length-no-unit rule. Use the length-zero-no-unit rule instead.property-unit-blacklist rule. Use the declaration-property-unit-blacklist rule instead.property-unit-whitelist rule. Use the declaration-property-unit-whitelist rule instead.property-value-blacklist rule. Use the declaration-property-value-blacklist rule instead.property-value-whitelist rule. Use the declaration-property-value-whitelist rule instead."emptyLineBefore" option for declaration-block-properties-order. If you use this option, please consider creating a plugin for the community."single-where-required", "single-where-recommended", "single-unless-keyword", "double-where-required", "double-where-recommended" and "double-unless-keyword" options for font-family-name-quotes. Instead, use the "always-unless-keyword", always-where-recommended or always-where-required options together with the string-quotes rule."single", "double" and "none" options for function-url-quotes. Instead, use the "always" or "never" options together with the string-quotes rule."hierarchicalSelectors" option for indentation. If you use this option, please consider creating a plugin for the community.stylelint.utils.cssWordIsVariable().stylelint.utils.styleSearch(). Use the external style-search module instead.stylelintError to true, which in turn causes CLI to exit with a non-zero code..scss, .less, and .sss..stylelintignore now uses .gitignore syntax, and stylelint looks for it in process.cwd().ignored: true property, which various formatters can use as needed. The standard string formatter prints nothing for ignored files; but when the verbose formatter is used, ignored files are included in the filelist.-v flag to display version number.comment-word-blacklist no longer ignores words within copyright comments.comment-word-blacklist will now identify strings within comments, rather than just at the beginning of, when the string option is used.declaration-block-no-ignored-properties now detects use of min-width and max-width with inline, table-row, table-row-group, table-column and table-column-group elements.declaration-block-no-ignored-properties now detects use of overflow, overflow-x and overflow-y with inline elements.declaration-block-no-ignored-properties now ignores the combination of float and display: inline-block | inline.font-family-name-quotes now checks the font property in addition to the font-family property.font-family-name-quotes treats -apple-* and BlinkMacSystemFont system fonts as keywords that should never be wrapped in quotes.indentation now checks inside of parentheses by default. If you use the indentInsideParens: "once" secondary option, simply remove it from your config. If you do not want to check inside of parentheses, use the new ignore: ["inside-parens"] secondary option. The indentInsideParens: "twice" and indentInsideParens: "once-at-root-twice-in-block" secondary options are unchanged.keyframe-declaration-no-important now checks vendor prefixed @keyframes at-rules.selector-attribute-quotes now checks attribute selectors with whitespace around the operator or inside the brackets.time-no-imperceptible now checks vendor prefixed properties.unit-* rules now check @media values too.ruleFunction.primaryOptionArray = true.media-feature-parentheses-space-inside rule.no-missing-end-of-source-newline rule.property-no-unknown rule.no-unknown-animations now classifies vendor prefixed @keyframes at-rules as known.defaultSeverity configuration option.stylelint) is equivalent to stylelint --help.function-url-no-scheme-relative rule.selector-attribute-quotes rule.process.exitCode with stdOut to allow the process to exit naturally and avoid truncating output.function-calc-no-unspaced-operator correctly interprets negative fractional numbers without leading zeros and those wrapped in parentheses.no-extra-semicolons now ignores semicolons after Less mixins.number-max-precision now ignores uppercase and mixed case @import at-rules.selector-max-specificity no longer crashes on selectors containing :not() pseudo-classes.time-no-imperceptible correctly handles negative time.-e and --extract CLI flags, and the extractStyleTagsFromHtml Node.js API option. If you use these flags or option, please consider creating a processor for the community.at-rule-no-unknown rule.no-empty-source rule.except: ["after-single-line-comment"] option for rule-non-nested-empty-line-before.ignoreProperties: [] option for declaration-block-no-duplicate-properties.block-*-brace-*-before CRLF (\r\n) warning positioning.no-descending-specificity now does comparison of specificity using ints, rather than strings.selector-no-type and selector-type-case now ignore non-standard keyframe selectors (e.g. within an SCSS mixin).selector-type-no-unknown no longer reports fractional keyframe selectors.ignoreFunctions: [] option for function-name-case.findFontFamily util correctly interpret <font-size>/<line-height> values with unitless line-heights.indentation better understands nested parentheticals that aren't just Sass maps and lists.no-unsupported-browser-features message now clearly states that only fully supported features are allowed.selector-max-specificity no longer reports that a selector with 11 elements or more has a higher specificity than a selector with a single classname.selector-type-no-unknown no longer warns for complex keyframe selectors.number-zero-length-no-unit. Use length-zero-no-unit instead.property-*-blacklist and property-*-whitelist. Use declaration-property-*-blacklist and declaration-property-*-whitelist instead.-v and --verbose CLI flags. Use -f verbose or --formatter verbose instead.stylelint.util.styleSearch(). Use the external module style-search instead.ignorePath (for JS) and --ignore-path (for CLI).-h alias for --help CLI flag.at-rule-blacklist rule.at-rule-name-newline-after rule.at-rule-whitelist rule.ignore: "blockless-group" option for at-rule-empty-line-before.ignoreAtRules: [] option for at-rule-empty-line-before.function-blacklist now accepts regular expressions.function-whitelist now accepts regular expressions.at-rule-name-newline-after now correctly accepts one or more newlines.declaration-block-semicolon-newline-before now correctly accepts one or more newlines.function-url-quotes ignores values containing $sass and @less variables.function-whitespace-after ignores postcss-simple-vars-style interpolation.indentation better understands nested parentheticals, like nested Sass maps.no-extra-semicolons reports errors on the correct line.selector-combinator-space-* rules now ignore escaped combinator-like characters.selector-type-no-unknown ignores non-standard usage of percentage keyframe selectors (e.g. within an SCSS mixin).value-keyword-case now ignores custom idents of properties animation, font, list-style."emptyLineBefore" option for declaration-block-properties-order. If you use this option, please consider creating a plugin for the community."single-where-required", "single-where-recommended", "single-unless-keyword", "double-where-required", "double-where-recommended" and "double-unless-keyword" options for font-family-name-quotes. Instead, use the "always-unless-keyword", always-where-recommended or always-where-required options together with the string-quotes rule."single", "double" and "none" options for function-url-quotes. Instead, use the "always" or "never" options together with the string-quotes rule."hierarchicalSelectors" option for indentation. If you use this option, please consider creating a plugin for the community.selector-list-comma-* rules now ignore Less mixins.selector-max-compound-selectors no longer errors on Less mixins.selector-type-no-unknown now ignores all An+B notation and linguistic pseudo-classes.selector-type-no-unknown now ignores obsolete HTML tags and <hgroup>.selector-max-compound-selectors rule.babel-polyfill removed so it doesn't clash with other processes using babel-polyfill.selector-type-case and selector-type-no-unknown rules now ignore SCSS placeholder selectors.selector-pseudo-class-case, selector-pseudo-class-no-unknown, selector-pseudo-element-case, selector-pseudo-element-no-unknown rules now ignore SCSS variable interpolation.selector-type-no-unknown now ignores nested selectors and keyframe selectors.shorthand-property-no-redundant-values now ignores background, font, border, border-top, border-bottom, border-left, border-right, list-style, transition properties.unit-no-unknown now ignores hex colors.keyframe-declaration-no-important rule.selector-attribute-operator-blacklist rule.selector-attribute-operator-whitelist rule.selector-pseudo-class-no-unknown rule.selector-type-no-unknown rule.message.postcss-selector-parser and register them as PostCSS warnings, providing a better UX for editor plugins.font-family-name-quotes, media-feature-no-missing-punctuation, media-query-list-comma-newline-after, media-query-list-comma-newline-before, media-query-list-comma-space-after and media-query-list-comma-space-before rules now better ignore SCSS, Less variables and nonstandard at-rules.no-unknown-animations now ignores ease value.unit-blacklist, unit-case, unit-no-unknown, unit-whitelist now better accounts interpolation.unit-no-unknown no longer breaks Node.js 0.12 (because we've included the Babel polyfill).value-keyword-case now ignores custom idents of properties animation-name, counter-increment, font-family, grid-row, grid-column, grid-area, list-style-type.always-multi-line in rule block-opening-brace-newline-before documentation.block-closing-brace-newline-before no longer delivers false positives for extra semicolon.declaration-block-no-ignored-properties now detects use of vertical-align with block-level elements.font-family-name-quotes is now case insensitive when hunting for font-family properties.number-zero-length-no-unit now ignores deg, grad, turn and rad units.selector-no-type does a better job when ignoring descendant and compound selectors.shorthand-property-no-redundant-values now handles uppercase values properly.declaration-block-no-ignored-properties now longer crashes on nested rules.your-namespace/your-rule-name rule names are supported. If your plugin provides only a single rule or you can't think of a good namespace, you can simply use plugin/my-rule).--stdin-filename option to CLI.at-rule-name-space-after rule.no-extra-semicolons rule.selector-attribute-operator-space-after rule.selector-attribute-operator-space-before rule.selector-max-empty-lines rule.selector-pseudo-element-no-unknown rule.at-rule-semicolon-newline-after, block-opening-brace-newline-after, and declaration-block-semicolon-newline-after.function-comma-newline-after now allows end-of-line comments.function-url-quotes now ignores spaces within url().no-descending-specificity now ignores trailing colons within selectors.no-indistinguishable-colors now ignores keyword color names within url().number-max-precision now ignores @import at-rules and url() functions.selector-class-pattern and selector-id-pattern rules now ignore SCSS variable interpolation.value-list-comma-* rules now ignore SCSS maps.stylelint.utils.cssWordIsVariable() as non-standard syntax utils are now defensive.declaration-colon-* rules now ignore SCSS lists.font-weight-notation now ignores SCSS interpolation.rule-nested-empty-line-before now ignores Less blockless rules (mixin and extend calls).stylelint.createRuleTester.selector-no-qualifying-type rule.number-leading-zero will not check @import at-rules.selector-class-pattern now ignores non-outputting Less mixin definitions and called Less mixins.value-keyword-case now accounts for camelCase keywords (e.g. optimizeSpeed, optimizeLegibility and geometricPrecision) when the lower option is used.testUtils and stylelint.createRuleTester module mistakes.selector-pseudo-class-parentheses-space-inside and selector-attribute-brackets-space-inside..stylelintignore file.comment-word-blacklist rule.selector-attribute-brackets-space-inside rule.selector-pseudo-class-parentheses-space-inside rule.shorthand-property-no-redundant-values rule.ignoreKeywords option for value-keyword-case.\r\n) warning positioning in string-no-newline.///-SassDoc-style comments.max-empty-lines places warning at the end of the violating newlines to avoid positioning confusions.\r\n) warning positioning in max-empty-lines and function-max-empty-lines.CssSyntaxError sets errored on output to true.function-name-case now accounts for camelCase function names (e.g. translateX, scaleX etc) when the lower option is used.CssSyntaxError is no longer thrown but reported alongside warnings.stylelint.utils.cssWordIsVariable().at-rule-name-case rule.function-name-case rule.property-case rule.selector-pseudo-class-case rule.selector-pseudo-element-case rule.unit-case rule.value-keyword-case rule.indentClosingBrace option to indentation.indentInsideParens option to indentation.consecutive-duplicates option for declaration-block-no-duplicate-properties rule.block-no-empty no longer delivers false positives for less syntax.declaration-block-trailing-semicolon better understands nested at-rules.number-zero-length-no-unit now work with q unit and ignores s, ms, kHz, Hz, dpcm, dppx, dpi unitsunit-no-unknown rule.no-descending-specificity no longer gets confused when the last part of a selector is a compound selector.indentation to complain about Sass maps.declaration-block-no-ignored-properties now ignore clear for position: absolute and position: relative and does not ignore float on display: table-*.stylelint.createRuleTester().declaration-block-no-ignored-properties rule.function-max-empty-lines rule.function-url-data-uris rule.block-closing-brace-newline-after accepts single-line comments immediately after the closing brace.block-closing-brace-newline-after use of "single space", rather than "newline", in its messages.font-weight-notation now ignores initial value.function-* rules should all now ignore all Sass maps and lists.function-calc-no-unspaced-operator accepts newlines.function-comma-space-after, function-comma-space-before, function-parentheses-newline-inside and function-parentheses-space-inside now ignore SCSS maps.max-line-length options validation.no-unknown-animations now ignores none, initial, inherit, unset values.property-value-blacklist and -whitelist no longer error on properties without a corresponding list entry.selector-class-pattern now ignores selectors with Sass interpolation.selector-id-pattern now ignores selectors with Sass interpolation.selector-no-id now ignores keyframe selectors.unit-blacklist and unit-whitelist now ignores url functions.function-calc-no-unspaced-operator now better ignores non-calc functions.no-descending-specificity no longer delivers false positives after second run in Atom linter.stylelint-disable-rule imported correctly.at-rule-semicolon-newline-after rule.no-indistinguishable-colors rule.stylelint-disable-reason rule.declaration-bang-space-* understands arbitrary bang declarations (e.g. !default).font-weight-notation now ignore inherit value.indentation treats @nest at-rules like regular rules with selectors.no-duplicate-selectors contextualizes selectors by all at-rules, not just media queries.no-duplicate-selectors no longer delivers false positives after second run in Atom linter.no-duplicate-selectors no longer delivers false positives with descendant combinators.number-no-trailing-zeros no longer delivers false positives in url() arguments.root-no-standard-properties no longer delivers false positives inside the :not() pseudo-selector.selector-list-comma-* rules no longer deliver false positives inside functional notation.selector-type-case rule.string-no-newline no longer stumbles when there are comment-starting characters inside strings.no-indistinguishable-colors because its dependencies were unusable in Atom. (To be re-evaluated and re-added later.)"warn": true secondary option. Use "severity": "warning", instead.color-no-named rule. Use the new color-named rule, with the "never" option instead.declaration-block-no-single-line rule. Use the new block-no-single-line rule instead.rule-no-duplicate-properties rule. Use the new declaration-block-no-duplicate-properties rule instead.rule-no-shorthand-property-overrides rule. Use the new declaration-block-no-shorthand-property-overrides rule instead.rule-properties-order rule. Use the new declaration-block-properties-order rule instead.rule-trailing-semicolon rule. Use the new declaration-block-trailing-semicolon rule instead.true option for emptyLineBefore when using property groups in rule-properties-order. Use the new "always" or "never" option instead."always" option for font-weight-notation. Use the new always-where-possible option instead.stylelint-disable commands.max-nesting-depth does not warn about blockless at-rules.function-comma-newline-after and related rules consider input to be multi-line (applying to "always-multi-line", etc.) when the newlines are at the beginning or end of the input.no-indistinguishable-colors no longer errors on color functions containing spaces e.g. rgb(0, 0, 0) -- but also removed the rule (see above).declaration-block-properties-order no longer fails when an unspecified property comes before or after a specified property in a group with emptyLineBefore: true.indentation no longer has false positives when there are empty lines within multi-line values.declaration-colon-*-after no longer fail to do their job when you want a space or newline after the colon and instead there is no space at all.no-unsupported-browser-features options now optional.no-duplicate-selectors now ignores keyframe selectors."warn": true secondary option. Use "severity": "warning", instead.color-no-named rule. Use the new color-named rule, with the "never" option instead.declaration-block-no-single-line rule. Use the new block-no-single-line rule instead.rule-no-duplicate-properties rule. Use the new declaration-block-no-duplicate-properties rule instead.rule-no-shorthand-property-overrides rule. Use the new declaration-block-no-shorthand-property-overrides rule instead.rule-properties-order rule. Use the new declaration-block-properties-order rule instead.rule-trailing-semicolon rule. Use the new declaration-block-trailing-semicolon rule instead.true option for emptyLineBefore when using property groups in rule-properties-order. Use the new "always" or "never" option instead."always" option for font-weight-notation. Use the new always-where-possible option instead.severity secondary option as a replacement for "warn": true to alter a rule's severity.block-no-single-line rule.color-named rule.declaration-block-no-duplicate-properties rule.declaration-block-no-shorthand-property-overrides rule.declaration-block-properties-order rule.declaration-block-trailing-semicolon rule.max-nesting-depth rule.no-browser-hacks rule.no-descending-specificity rule.no-indistinguishable-colors rule.no-unsupported-browser-features rule.selector-max-specificity rule.string-no-newline rule."always" and "never" option to rule-properties-order emptyLineBefore when using property groupsnamed-where-possible option to font-weight-notation.unspecified: "bottomAlphabetical" option to the rule-properties-order rule.ignoreAtRules: [] option to the block-opening-brace-space-before and block-closing-brace-newline-after rules.&) as a prefix in selector-no-type.stylelint-disable-line feature.withinComments, withinStrings, and checkStrings options to styleSearch, and insideString property to the styleSearch match object.resolveNestedSelectors option to the selector-class-pattern rule.stylelint-disable is misused.selector-no-vendor-prefix no longer delivers two warnings on vendor-prefixed pseudo-elements with two colons, e.g. ::-moz-placeholder.no-duplicate-selectors rule now resolves nested selectors.font-weight-notation does not throw false warnings when normal is used in certain ways.selector-no-* and selector-*-pattern rules now ignore custom property sets.no-duplicate-selectors.selector-no-id does not warn about Sass interpolation inside an :nth-child() argument.rule-nested-empty-line-before, rule-non-nested-empty-line-before, comment-empty-line-before and at-rule-empty-line-before.number-leading-zero, function-comma-space-*, and declaration-colon-* do not throw false positives in url() arguments.ignore: "relative" option for font-weight-notation.declaration-colon-space/newline-before/after rules now ignore scss maps.selector-list-comma-newline-after allows // comments after the comma.console.log()s in property-unit-whitelist.console.log()s in rule-properties-order.rule-properties-order.// comments when using SCSS parser.no-unknown-animations ignores variables.no-unknown-animations does not erroneously flag functions like steps() and cubic-bezier().time-no-imperceptible.font-family-name-quotes and font-weight-notation ignore variables.media-feature-no-missing-punctuation handles space-padded media features.--config relatives paths that don't start with ./ to be rejected.stylelint.utils.ruleTester because its dependencies broke things.tape to dependencies to support testUtils.testUtils in npm package whitelist.font-family-name-quotes rule.font-weight-notation rule.media-feature-no-missing-punctuation rule.no-duplicate-selectors rule.no-invalid-double-slash-comments rule.no-unknown-animations rule.property-value-blacklist rule.property-value-whitelist rule.time-no-imperceptible rule.ignore: "descendant" and ignore: "compounded" options for selector-no-type.property-blacklist, property-unit-blacklist, property-unit-whitelist, property-value-blacklist, and property-whitelist.property-unit-blacklist and property-unit-whitelist, e.g. if you enter animation it now also checks -webkit-animation.--config argument, not just paths.codeFilename option to Node.js API.stylelint.rules to make stylelint even more extensible.stylelint-rule-tester into this repo, and exposed it at stylelint.utils.ruleTester.rule-properties-order empty line detection when the two newlines were separated
by some other whitespace."alphabetical" primary option
with rule-properties-order.ignoreFiles handling of absolute paths.ignoreFiles uses the configBasedir option to interpret relative paths.message secondary property on any rule.node_modules and bower_components directories.--config argument.indentation to stumble over declarations with semicolons on their own lines.selector-no-id no longer warns about Sass interpolation when multiple interpolations are used in a selector..stylelintrc files (by upgrading cosmiconfig).ignore: "non-comments" option to max-line-length.function-whitespace-after does not expect space between ) and }, so it handles Sass interpolation better.selector-no-vendor-prefix now handles custom-property-sets.selector-no-type ignores nth-child pseudo-classes and @keyframes selectors.max-line-length handles url() functions better.block-opening-brace-newline-after and declaration-block-semicolon-newline-after handle end-of-line comments better.legacyNumberedSeverities config property to force the legacy severity system.selector-no-id ignores Sass-style interpolation.--config property in PostCSS and Node.js APIs. Still using it in the CLI.root node, including: max-line-length, max-empty-lines, no-eol-whitespace, no-missing-eof-newline, and string-quotes.rule-properties-order to get confused by properties with an unspecified order.null was used on rules whose primary options are arrays.stylelint-commands ignore option to comment-empty-line-before.rule-properties-order and potentially other rules that accept arrays as primary options.no-missing-eof-newline no longer complains about completely empty files.nesting-block-opening-brace-space-before and nesting-block-opening-brace-newline-before rules.4.0.rule-single-line-max-declarations to declaration-block-single-line-max-declarations and changed scope of the single-line to the declaration block.rule-no-single-line to declaration-block-no-single-line and changed scope of the single-line to the declaration block.function-space-after rule to function-whitespace-after.comment-space-inside rule to comment-whitespace-inside.no-multiple-empty-lines rule to max-empty-lines (takes an int as option).plugins is now an array instead of an object. And plugins should be created with stylelint.createPlugin()..stylelintrcstylelint.config.jsstylelint property in package.jsonignoreFiles option to config.configFile option to Node.js API.comment-whitespace-inside now ignores copyright (/*!) and sourcemap (/*#) comments.rule-no-duplicate-properties now ignores the src property.function-calc-no-unspaced-operator ignores characters in $sass and @less variables.rule-properties-order allows comments at the top of groups that expect newlines before them.styleSearch() and the rules it powers will not trip up on single-line (//) comments.selector-combinator-space-before now better handles nested selectors starting with combinators.rule-properties-order now deals property with -moz-osx-font-smoothing.rule-properties-order now accounts for property names containing multiple hyphens.rule-properties-order grouping bug.selector-pseudo-element-colon-notation typo in rule name resulting in undefined severity.dist/ build.property-whitelist, rule-no-duplicate-properties, and rule-properties-order ignore variables ($sass, @less, and --custom-property).root-no-standard-properties ignores $sass and @less variables.comment-empty-line-before and comment-space-inside no longer complain about // comments.number-no-trailing-zeros no longer flags at-import at-rules.selector-no-type no longer flags the nesting selector (&).configFile option to PostCSS plugin.function-parentheses-newline-inside and function-parentheses-space-inside bug with nested functions.selector-class-pattern rule.selector-id-pattern rule.function-parentheses-newline-inside rule."always-single-line" and "never-single-line" options to function-parentheses-space-inside.syntax argument bug.color-no-hex rule.color-no-named rule.function-blacklist rule.function-whitelist rule.unit-blacklist rule.unit-whitelist rule.property-unit-blacklist rule.property-unit-whitelist rule.rule-single-line-max-declarations rule.max-line-length rule.first-nested exception to comment-empty-line-before.*-blacklist & -*whitelist rules e.g. { "function-blacklist": "calc"}rule-properties-order.rule-properties-order.function-calc-no-unspaced-operator.function-space-after.comment-space-inside.comment-space-inside allows any number of asterisks at the beginning and end of comments.{ unspecified: "bottom }" option not to be applied within rule-properties-order.function-comma-* whitespace rules to improperly judge whether to enforce single- or multi-line options.required or being inserted directly into the configuration object as a function.string and json formatters..stylelintrc JSON file.extends property.function-comma-newline-after rule.function-comma-newline-before rule."always-single-line" and "never-single-line" options to function-comma-space-after rule."always-single-line" and "never-single-line" options to function-comma-space-before rule.media-query-list-comma-* rules now only apply to @media statements.function-linear-gradient-no-nonstandard-direction rule.rule-properties-order now by default ignores the order of properties left out of your specified array; and the options "top", "bottom", and "ignore" are provided to change that behavior.rule-properties-order now looks for roots of hyphenated properties in custom arrays so each extension (e.g. padding-top as an extension of padding) does not need to be specified individually."always-single-line" option to declaration-colon-space-after.declaration-colon-newline-after "always-multi-line" warning message.declaration-colon-newline-after rule.indentation rule now checks indentation of multi-line at-rule params, unless there's the except option of param.selector-list-comma-newline-after.#${sass-interpolation} in rules checking for hex colors.custom-property-pattern and custom-media-pattern.color-no-invalid-hex rule no longer flags hashes in url() arguments.node.raw() instead of node.raws to avoid expected errors.postcss-selector-parser updated to improve location accuracy for selector-no-* rules.4.x.5.0.2+.after-comment ignore option to the at-rule-empty-line-before rule.indentation rule now correctly handles * hacks on property names.media-feature-colon-space-after and media-feature-colon-space-before rules now only apply to @media statements.rule-no-shorthand-property-overrides rule message is now consistent with the other messages.validateOptions().rule-properties-order and rule-no-duplicate-properties rules now correctly check inside @rules.validateOptions to stylelint.utils for use by authors of custom rules.custom-media-pattern rule.number-max-precision rule.ruleTester from stylelint.utils because of the additional dependencies it forces.jsesc devDependency.rule-no-shorthand-property-overrides rule.ruleTester to stylelint.utils for use by authors of custom rules.hierarchicalSelectors bug in indentation rule.~= is no longer mistaken for combinator in selector-combinator-space-*.report, ruleMessages, and styleSearch in stylelint.utils for use by external plugin rules.hierarchicalSelectors option to indentation rule.nesting-block-opening-brace-space-before rule.nesting-block-opening-brace-newline-before rule.color-hex-case rule message is now consistent with the color-hex-length rule.property-blacklist rule message is now consistent with the property-whitelist rule.comment-space-inside rule message.color-hex-case rule.color-hex-length rule.indentation rule.selector-list-comma-newline-* rules.selector-combinator-space-* no longer checks :nth-child() arguments.block-opening-brace-newline-before rule.block-opening-brace-space-before rule.rule-trailing-semicolon rule.rule-no-duplicate-properties rule.rule-properties-order rule.at-rule-empty-line-before rule.at-rule-no-vendor-prefix rule.block-closing-brace-newline-after rule.block-closing-brace-newline-before rule.block-closing-brace-space-after rule.block-closing-brace-space-before rule.block-no-empty rule.block-opening-brace-newline-after rule.block-opening-brace-newline-before rule.block-opening-brace-space-after rule.block-opening-brace-space-before rule.color-no-invalid-hex rule.comment-empty-line-before rule.comment-space-inside rule.custom-property-no-outside-root rule.custom-property-pattern rule.declaration-bang-space-after rule.declaration-bang-space-before rule.declaration-block-semicolon-newline-after rule.declaration-block-semicolon-newline-before rule.declaration-block-semicolon-space-after rule.declaration-block-semicolon-space-before rule.declaration-colon-space-after rule.declaration-colon-space-before rule.declaration-no-important rule.function-calc-no-unspaced-operator rule.function-comma-space-after rule.function-comma-space-before rule.function-parentheses-space-inside rule.function-space-after rule.function-url-quotes rule.indentation rule.media-feature-colon-space-after rule.media-feature-colon-space-before rule.media-feature-name-no-vendor-prefix rule.media-feature-range-operator-space-after rule.media-feature-range-operator-space-before rule.media-query-list-comma-newline-after rule.media-query-list-comma-newline-before rule.media-query-list-comma-space-after rule.media-query-list-comma-space-before rule.media-query-parentheses-space-inside rule.no-eol-whitespace rule.no-missing-eof-newline rule.no-multiple-empty-lines rule.number-leading-zero rule.number-no-trailing-zeros rule.number-zero-length-no-unit rule.property-blacklist rule.property-no-vendor-prefix rule.property-whitelist rule.root-no-standard-properties rule.rule-nested-empty-line-before rule.rule-no-duplicate-properties rule.rule-no-single-line rule.rule-non-nested-empty-line-before rule.rule-properties-order rule.rule-trailing-semicolon rule.selector-combinator-space-after rule.selector-combinator-space-before rule.selector-list-comma-newline-after rule.selector-list-comma-newline-before rule.selector-list-comma-space-after rule.selector-list-comma-space-before rule.selector-no-attribute rule.selector-no-combinator rule.selector-no-id rule.selector-no-type rule.selector-no-universal rule.selector-no-vendor-prefix rule.selector-pseudo-element-colon-notation rule.selector-root-no-composition rule.string-quotes rule.value-list-comma-newline-after rule.value-list-comma-newline-before rule.value-list-comma-space-after rule.value-list-comma-space-before rule.value-no-vendor-prefix rule.