All notable changes to this project are documented in this file.
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).Added: More rules now support experimental autofixing. Use --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).A new VISION document, complemented by (#2704):
The restructuring of the list of rules into three groups:
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:
Removed: the 21 rules deprecated in 7.8.0
& 7.12.0
(#2422 & #2693).
block-no-single-line
.custom-property-no-outside-root
declaration-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-properties
rule-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
.Removed: the 4 options deprecated in 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).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).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).Added: experimental autofixing (#2467, #2500, #2529 and #2577). Use --fix
CLI parameter or fix: true
Node.js API options property. Supported rules:
at-rule-empty-line-before
at-rule-name-case
color-hex-case
comment-empty-line-before
custom-property-empty-line-before
declaration-empty-line-before
indentation
rule-empty-line-before
selector-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).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.It is beyond the scope of stylelint's core package to effectively validate against the CSS spec. Please investigate csstree and css-values for this functionality, and contribute to those projects and to stylelint plugins wrapping them. csstree already has a stylelint plugin, and css-values needs one to be developed. The following rules are deprecated for this reason.
media-feature-no-missing-punctuation
.selector-no-empty
.A plugin is a better package for a rule that wraps a third-party library. The following rules are deprecated for this reason. We encourage users to create and help maintain plugins for these rules.
no-browser-hacks
no-indistinguishable-colors
no-unsupported-browser-features
The following rules did not seem useful. If you liked these rules, please create plugins for them.
custom-property-no-outside-root
root-no-standard-properties
selector-root-no-composition
.The following rules did not work well.
stylelint-disable-reason
could not enforce providing a reason.declaration-block-no-ignored-properties
could not reliably account for replaced elements.Deprecated: 4 options (#2213).
"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-whitelist
configFile
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()
.Added: cosmiconfig, which means the following:
.stylelintrc
stylelint.config.js
stylelint
property in package.json
ignoreFiles
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.