Changelog
16.7.0
- Changed:
tapformatter to support TAP14 (#7759) (@Mouvedia). - Added:
urlsecondary option (#7743) (@emmacharp). - Fixed:
at-rule-no-unknownfalse positives for@historical-formsand@font-palette-values(#7774) (@Mouvedia). - Fixed:
at-rule-no-unknownfalse positives for@view-transition(#7753) (@sebdanielsson). - Fixed:
at-rule-no-vendor-prefixfalse negatives for@-moz-documentand@-webkit-viewport(#7772) (@Mouvedia). - Fixed:
comment-whitespace-insideend positions (#7744) (@Mouvedia). - Fixed:
declaration-block-no-duplicate-propertiesreported ranges (#7758) (@Mouvedia). - Fixed:
declaration-block-no-redundant-longhand-properties/declaration-block-no-shorthand-property-overridesfalse negatives forfont-variant(#7734) (@Bilie). - Fixed:
font-family-name-quotesfalse negatives for-moz-*/-webkit-*keywords (#7777) (@Mouvedia). - Fixed:
font-family-no-missing-generic-family-keywordfalse negatives for font families which names match a CSS3font-variantkeyword (#7823) (@Mouvedia). - Fixed:
function-name-caseend positions (#7747) (@Mouvedia). - Fixed:
function-no-unknownperformance by reducing file read count (#7801) (@ybiquitous). - Fixed:
media-feature-name-no-vendor-prefixautofix (#7770) (@Mouvedia). - Fixed:
no-invalid-double-slash-commentsreported ranges (#7768) (@Mouvedia). - Fixed:
property-no-unknownfalse positives fornavigationand miscellaneous legacy properties (#7764) (@Mouvedia). - Fixed:
quietDeprecationWarningsto suppressstylelint:003warning (#7837) (@ybiquitous). - Fixed:
selector-no-vendor-prefixautofix (#7763) (@Mouvedia). - Fixed:
selector-not-notationend positions when new lines are part of the selector (#7755) (@Mouvedia). - Fixed:
selector-type-caseend positions (#7752) (@Mouvedia). - Fixed:
shorthand-property-no-redundant-valuesfalse negatives for logical properties,overflow,overscroll-behavior,scroll-marginandscroll-padding(#7808) (@Mouvedia). - Fixed:
string-no-newlinefalse positives for escaped multi-line (#7818) (@romainmenke). - Fixed:
value-keyword-caseend positions (#7760) (@Mouvedia). - Fixed:
stylelint.utils.checkAgainstRule()for Promise-based rules (#7821) (@aaronccasanova). - Fixed:
stylelint.utils.checkAgainstRule()to useresult.stylelintif present (#7833) (@ybiquitous). - Fixed: YAML diagnostic block end marker line of the
tapformatter (#7759) (@Mouvedia). - Fixed: autofix of incorrectly implemented plugins when unscoped stylelint commands are present (#7733) (@romainmenke).
16.6.1
- Fixed:
no-descending-specificityfalse positives for nested selectors (#7724) (@romainmenke). - Fixed:
selector-type-no-unknownfalse positive formodel(#7718) (@Mouvedia).
16.6.0
- Fixed:
function-calc-no-unspaced-operatorfalse negatives (#7655 & #7670 & #7676) (@ybiquitous & @romainmenke). - Fixed:
selector-not-notationautofix of the"simple"option (#7703) (@Mouvedia). - Fixed:
selector-max-specificityend positions (#7685) (@romainmenke). - Fixed:
no-descending-specificityend positions (#7701) (@romainmenke). - Fixed: missing GitHub Sponsor for
npm fund(#7707) (@ybiquitous).
16.5.0
- Added: regex support to
ignoreValuesforvalue-no-vendor-prefix(#7650) (@Mouvedia). - Fixed:
shorthand-property-no-redundant-valuesfalse negatives for functions (#7657) (@ybiquitous). - Fixed:
value-no-vendor-prefixfalse negatives/positives (#7654 & #7658) (@Mouvedia). - Fixed:
CosmiconfigResulttype error (#7661) (@ybiquitous).
16.4.0
- Added:
no-unknown-custom-media(#7594) (@fpetrakov). - Added:
ignoreLonghands: []todeclaration-block-no-redundant-longhand-properties(#7611) (@Mouvedia). - Added:
ignore: ["keyframe-selectors"]torule-selector-property-disallowed-list(#7572) (@emmacharp). - Added: experimental support for post processors (#7568) (@YuanboXue-Amber).
- Fixed:
declaration-block-no-redundant-longhand-propertiesautofix conflicts (#7626) (@Mouvedia). - Fixed:
declaration-block-no-redundant-longhand-propertiesautofix fortext-decoration(#7611) (@Mouvedia). - Fixed:
declaration-block-no-shorthand-property-overridesfalse negatives forborder(#7585) (@fpetrakov). - Fixed:
declaration-block-no-shorthand-property-overridesfalse negatives forfontandborder(#7606) (@Mouvedia). - Fixed:
function-calc-no-unspaced-operatorfalse negatives for some math functions (#7619) (@Mouvedia). - Fixed:
function-no-unknownfalse positives foranchor,anchor-sizeandpalette-mix(#7607 & #7640) (@Mouvedia). - Fixed:
selector-max-attributeend positions (#7592) (@romainmenke). - Fixed:
selector-max-classend positions (#7590) (@romainmenke). - Fixed:
selector-max-combinatorsend positions (#7596) (@romainmenke). - Fixed:
selector-max-compound-selectorsend positions (#7599) (@romainmenke). - Fixed:
selector-max-pseudo-classend positions (#7598) (@romainmenke). - Fixed:
selector-max-universalend positions (#7597) (@romainmenke). - Fixed:
selector-type-no-unknownfalse positives for experimental and deprecated HTML tags (#7612) (@Mouvedia).
16.3.1
- Fixed:
selector-max-idend positions (#7571) (@romainmenke). - Fixed: import errors for configs and plugins omitting
/index.js(#7578) (@ota-meshi).
16.3.0
- Added:
ignoreSelectors: []toselector-max-compound-selectors(#7544) (@FloEdelmann). - Added: tally of fixable problems to
stringandverboseformatters (#7539) (@m-allanson). - Added: support for
*-deprecationcommand-line flags of Node.js (#7550) (@fpetrakov). - Fixed: false positive CJS deprecation warning for dual-package plugins (#7532) (@JounQin).
- Fixed:
rule-selector-property-disallowed-listfalse positives for nesting selectors (#7558) (@romainmenke). - Fixed:
selector-pseudo-*-allowed-listfalse positives for vendor prefixes (#7525) (@carlosjeurissen). - Fixed:
report()forindex/endIndexzero values (#7565) (@romainmenke). - Fixed:
selector-max-typeend positions (#7518) (@romainmenke).
16.2.1
- Fixed: report flags not reporting on subsequent runs when cache is used (#7483) (@ybiquitous).
- Fixed:
custom-property-no-missing-var-functionfalse positives for properties that can contain author-defined identifiers (#7478) (@ybiquitous). - Fixed:
selector-pseudo-class-no-unknownfalse positives for:seeking, the media loading state and sound state pseudo-classes (#7490) (@Mouvedia). - Fixed:
selector-max-specificityfalse positives withignoreSelectorsoption forof <selector>syntax (#7475) (@ybiquitous). - Fixed:
function-calc-no-unspaced-operatorperformance (#7505) (@ybiquitous). - Fixed:
validateOptionsto report when secondary option object is an empty object or null (#7476) (@ybiquitous). - Fixed:
report()error message responsibility for a missing node or line number (#7474) (@ybiquitous).
16.2.0
- Added:
media-query-no-invalidspecific problem messages (#7462) (@romainmenke). - Added:
checkContextFunctionalPseudoClasses: []toselector-max-id(#7380) (@brigitamaria). - Fixed:
declaration-property-value-no-unknownfalse negatives for@starting-style(#7461) (@fpetrakov). - Fixed:
function-no-unknown|value-keyword-casefalse positives for template literals with line breaks (#7443) (@Sh031224). - Fixed:
allowEmptyInputoption ignored in configuration object regression (#7446) (@ybiquitous). - Fixed:
at-rule-no-unknownfalse positives for@starting-style(#7438) (@fpetrakov). - Fixed:
ERR_UNSUPPORTED_ESM_URL_SCHEMEfor--custom-formatteron Windows (#7432) (@JounQin). - Fixed:
Error: Could not find <package>message clarity (#7456) (@jeddy3). - Fixed:
overrides.filesnegated pattern regression introduced in 15.0.0 (#7468) (@ybiquitous).
16.1.0
- Added:
lightness-notationrule (#7366) (@fpetrakov). - Added:
ignore: ["keyframe-selectors"]toselector-disallowed-list(#7417) (@mattxwang). - Fixed:
selector-pseudo-class-no-unknownfalse positive for:popover-open(#7425) (@mattxwang). - Fixed:
declaration-property-value-no-unknownand other false positives for multiline SCSS interpolation. (#7406) (@FloEdelmann). - Fixed:
function-url-quotesfalse positives for SCSS variable and@character (#7416) (@mattxwang).
16.0.2
16.0.1
- Fixed: type definitions for CommonJS and ESM compatibility (#7377) (@remcohaszing).
16.0.0
- Removed: Node.js less than 18.12.0 support (#7020) (@ybiquitous).
- Removed: 76 rules deprecated in 15.0.0 (#6979) (@mattxwang).
- Changed:
stylelint.formattersobject to havePromisevalues (#7184) (@ybiquitous). - Changed: exit code for CLI flag error (#7134) (@ybiquitous).
- Changed: default syntax behaviour to always use safe-parser with
fixregardless of extension (#7357) (@ybiquitous). - Changed: TypeScript definitions for ESM (#7309) (@ybiquitous).
- Changed:
stylelint.rulesobject to havePromisevalues (#7279) (@ybiquitous). - Changed:
stylelint.utils.checkAgainstRuleto be an async function (#7339) (@ybiquitous). - Deprecated: CommonJS Node.js API (#7353) (@ybiquitous).
- Deprecated:
outputproperty in a Node.js API returned object. Instead,report/codeproperties are recommended (#7183) (@ybiquitous) & (@haocheng6). - Added:
exportsfield topackage.jsonfor Conditional Exports (ESM/CommonJS) (#7307) (@ybiquitous). - Added: support for ESM plugins (#7339) (@ybiquitous).
- Added: support for ESM custom formatters (#7343) (@ybiquitous).
- Added: support for a package name as arguments to
--custom-formatter(#7343) (@ybiquitous). - Added:
severitysecondary option's function support (#7202) (@kizu). - Added: support for a
Promiseformatter function (#7184) (@ybiquitous). - Added: support for ESM custom syntaxes (#7351) (@ybiquitous).
- Added:
report/codeproperties to a Node.js API returned object (#7183) (@ybiquitous) & (@haocheng6). - Fixed: no longer needed workaround for Cosmiconfig segfault (#7329) (@ybiquitous).
- Fixed: CLI regression to avoid waiting for stdin without any input (#7131) (@ybiquitous).
- Fixed: CLI to avoid different outputs on empty files and empty stdin (#7131) (@ybiquitous).
- Refactored:
.jsextension to.mjsand.cjs(#7307) (@ybiquitous).
15.11.0
- Added:
ignoreRulestomax-nesting-depth(#7215) (@mattxwang). - Fixed:
declaration-block-no-redundant-longhand-propertiesautofix forgrid-templatewithrepeat()(#7230) (@mattxwang). - Fixed:
declaration-block-no-redundant-longhand-propertiesfalse negative forfont-synthesis(#7214) (@mattxwang). - Fixed:
declaration-block-no-redundant-longhand-propertiesfalse negatives for*-blockand*-inlinelogical properties (#7208) (@mattxwang). - Fixed:
declaration-block-no-redundant-longhand-propertiesfalse negatives foroverflow,overscroll-behavior,scroll-margin,scroll-padding, and new Box Alignment shorthands (#7213) (@mattxwang). - Fixed:
function-no-unknownfalse positives forlight-dark,linearandxywh(#7242) (@mattxwang).
15.10.3
- Fixed:
declaration-property-value-no-unknownfalse negatives for typed custom properties (#7078) (@romainmenke). - Fixed:
property-no-unknownfalse positives for scroll-driven animations (#7090) (@renato-bohler).
15.10.2
- Fixed:
declaration-property-value-no-unknownfalse negatives for nested declarations (#7079) (@romainmenke). - Fixed:
selector-pseudo-element-no-unknownfalse positives forview-transitionpseudo-elements (#7070) (@danielroe).
15.10.1
- Security: fix for
semvervulnerability (#7043) (@romainmenke). - Fixed: invalid option regression on Windows 10 (#7043) (@romainmenke).
15.10.0
- Added:
media-query-no-invalid(#6963) (@romainmenke). - Added: support for JS objects with
extendsconfig option (#6998) (@fpetrakov). - Fixed: inconsistent
erroredproperties instylelint.lint()return value (#6983) (@ybiquitous). - Fixed:
{selector,value}-no-vendor-prefixperformance (#7016) (@jeddy3). - Fixed:
custom-property-patternperformance (#7009) (@jeddy3). - Fixed:
function-linear-gradient-no-nonstandard-directionfalse positives for<color-interpolation-method>(#6987) (@romainmenke). - Fixed:
function-name-caseperformance (#7010) (@jeddy3). - Fixed:
function-no-unknownperformance (#7004) (@jeddy3). - Fixed:
function-url-quotesperformance (#7011) (@jeddy3). - Fixed:
hue-degree-notationfalse negatives foroklch(#7015) (@romainmenke). - Fixed:
hue-degree-notationperformance (#7012) (@jeddy3). - Fixed:
media-feature-name-no-unknownfalse positives forenvironment-blending,nav-controls,prefers-reduced-data, andvideo-color-gamut(#6978) (@romainmenke). - Fixed:
media-feature-name-no-vendor-prefixpositions for*-device-pixel-ratio(#6977) (@romainmenke). - Fixed:
no-descending-specificityperformance (#7026) (@romainmenke). - Fixed:
no-duplicate-at-import-rulesfalse negatives for imports withsupportsandlayerconditions (#7001) (@romainmenke). - Fixed:
selector-anb-no-unmatchableperformance (#7042) (@romainmenke). - Fixed:
selector-id-patternperformance (#7013) (@jeddy3). - Fixed:
selector-pseudo-class-no-unknownfalse negatives for pseudo-elements with matching names (#6964) (@Mouvedia). - Fixed:
selector-pseudo-element-no-unknownperformance (#7007) (@jeddy3). - Fixed:
selector-type-caseperformance (#7041) (@romainmenke). - Fixed:
selector-type-no-unknownperformance (#7027) (@romainmenke). - Fixed:
unit-disallowed-listfalse negatives with percentages (#7018) (@romainmenke).
15.9.0
- Added:
insideFunctions: {"function": int}tonumber-max-precision(#6932) (@romainmenke). - Fixed:
declaration-block-no-redundant-longhand-propertiesautofix forborder-radiusshorthand (#6958) (@mattxwang). - Fixed:
declaration-block-no-redundant-longhand-propertiesautofix forborder-widthshorthand (#6956) (@mattxwang). - Fixed:
declaration-block-no-redundant-longhand-propertiesautofix forgrid-columnandgrid-row(#6957) (@mattxwang).
15.8.0
- Added:
media-feature-name-value-no-unknown(#6906) (@romainmenke). - Added: support for
.mjsconfiguration files (#6910) (@ybiquitous). - Fixed:
--print-configdescription in CLI help (#6914) (@ybiquitous). - Fixed:
allowEmptyInputoption in configuration files (#6929) (@ybiquitous). - Fixed:
custom-property-no-missing-var-functionperformance (#6922) (@romainmenke). - Fixed:
function-calc-no-unspaced-operatorperformance (#6923) (@romainmenke). - Fixed:
function-linear-gradient-no-nonstandard-directionperformance (#6924) (@romainmenke). - Fixed:
function-no-unknownfalse positives for SCSS functions with namespace (#6921) (@romainmenke). - Fixed:
max-nesting-deptherror for at-rules in Sass syntax (#6909) (@ybiquitous). - Fixed:
selector-anb-no-unmatchableperformance (#6925) (@romainmenke). - Fixed: remove
v8-compile-cachedependency (#6907) (@ybiquitous).
15.7.0
- Added:
splitList: booleantoselector-nested-pattern(#6896) (@is2ei). - Fixed:
unit-no-unknownfalse positives forunicode-rangedescriptors (#6892) (@romainmenke). - Fixed: segmentation fault errors for Cosmiconfig 8.2 (#6902) (@romainmenke).
15.6.3
- Fixed:
alpha-value-notationfalse positives forcolor()(#6885) (@romainmenke). - Fixed:
alpha-value-notationperformance with improved benchmark script (#6864) (@romainmenke). - Fixed:
at-rule-property-required-listperformance (#6865) (@romainmenke). - Fixed:
color-*performance (#6868) (@romainmenke). - Fixed:
length-zero-no-unitfalse positives on new math functions (#6871) (@romainmenke). - Fixed:
stringformatter for unexpected truncation on non-ASCII characters (#6861) (@Max10240). - Fixed:
unit-no-unknownfalse positives for the second and subsequentimage-set()withxdescriptor (#6879) (@romainmenke).
15.6.2
- Fixed:
alpha-value-notationfalse negatives foroklab(),oklch(), andcolor()(#6844) (@romainmenke). - Fixed:
declaration-block-no-redundant-longhand-propertiesautofix withcubic-bezier()(#6841) (@romainmenke). - Fixed:
function-no-unknownfalse positives for unspaced operators against nested brackets (#6842) (@romainmenke). - Fixed:
function-url-quotesfalse positives for SCSSwith()construct (#6847) (@ybiquitous). - Fixed:
media-feature-name-no-unknownfalse positives fornotandor(#6838) (@romainmenke).
15.6.1
- Fixed:
declaration-block-no-redundant-longhand-propertiesautofix fortransition(#6815) (@mattxwang). - Fixed:
githubformatter for missing final newline (#6822) (@konomae). - Fixed:
selector-pseudo-class-no-unknownfalse positive for:modal(#6811) (@Yasir761).
15.6.0
- Added:
allowEmptyInput,cache,fixoptions to configuration object (#6778) (@mattxwang). - Added:
ignore: ["with-var-inside"]tocolor-function-notation(#6802) (@mattxwang). - Fixed:
declaration-block-no-duplicate-propertiesautofix for 3 or more duplicates (#6801) (@mattxwang). - Fixed:
declaration-block-no-duplicate-propertiesfalse positives with optionignore: ["consecutive-duplicates-with-different-syntaxes"](#6797) (@romainmenke). - Fixed:
declaration-block-no-duplicate-propertiessyntax error (#6792) (@yoyo837). - Fixed:
declaration-block-no-redundant-longhand-propertiesautofix forgrid-template(#6777) (@mattxwang). - Fixed:
function-url-quotesautofix for comments in SCSS function (#6800) (@ybiquitous).
15.5.0
- Added:
ignore: ["consecutive-duplicates-with-different-syntaxes"]todeclaration-block-no-duplicate-properties(#6772) (@kimulaco). - Added:
ignoreProperties: []todeclaration-block-no-duplicate-custom-properties(#6773) (@mattxwang). - Added: raw regex support to
ignorePropertiesfordeclaration-block-no-duplicate-properties(#6764) (@ybiquitous). - Fixed:
block-no-emptyfalse positives with non-whitespace characters (#6782) (@ybiquitous). - Fixed:
color-function-notationfalse positives for namespaced imports (#6774) (@mattxwang). - Fixed:
custom-property-empty-line-beforefalse positives for CSS-in-JS (#6767) (@ybiquitous). - Fixed:
media-feature-range-notationparse error (#6760) (@fpetrakov). - Fixed: CLI help improvements (#6783) (@ybiquitous).
15.4.0
- Added:
--quiet-deprecation-warningsflag (#6724) (@mattxwang). - Added:
-calias for--config(#6720) (@sidverma32). - Added:
media-feature-range-notationautofix (#6742) (@romainmenke). - Added:
no-unknown-custom-propertiesrule (#6731) (@jameschensmith). - Fixed:
function-url-quotesautofix for double-slash comments in SCSS maps (#6745) (@jgerigmeyer). - Fixed:
isPathIgnored()utility's performance (#6728) (@ybiquitous). - Fixed:
rule-selector-property-disallowed-listsecondary options (#6723) (@mattxwang). - Fixed:
declaration-block-no-redundant-longhand-propertieswith basic keywords (#6748) (@mattxwang). - Fixed: deprecation warnings for disabled rules (#6747) (@ybiquitous).
15.3.0
- Added:
configurationCommentconfiguration property (#6629) (@ifitzpatrick). - Added:
selector-anb-no-unmatchablerule (#6678) (@mattxwang). - Fixed: TypeScript error for CommonJS importing (#6703) (@remcohaszing).
- Fixed:
*-no-redundant-*false negatives forinsetshorthand (#6699) (@rayrw). - Fixed:
function-url-quotesautofix for multipleurl()(#6711) (@ybiquitous). - Fixed:
value-keyword-casefalse positives for Level 4 system colours (#6712) (@thewilkybarkid).
15.2.0
- Added:
messageArgsto 76 rules (#6589) (@kizu). - Fixed: TypeScript error to export
PluginandRuleContext(#6664) (@henryruhs). - Fixed:
overrides.extendsorder when including same rules (#6660) (@kuoruan). - Fixed:
annotation-no-unknownfalse positives for CSS-in-JS template literals (#6666) (@hudochenkov). - Fixed:
declaration-property-value-no-unknownfalse positives for at-rule descriptors (#6669) (@FloEdelmann). - Fixed:
declaration-property-value-no-unknownparse error foralpha(opacity=n)to report as violation (#6650) (@romainmenke). - Fixed:
function-name-casefalse positives for CSS-in-JS template literals (#6666) (@hudochenkov). - Fixed:
function-no-unknownfalse positives for CSS-in-JS template literals (#6666) (@hudochenkov). - Fixed:
unit-no-unknownfalse positives for CSS-in-JS template literals (#6666) (@hudochenkov). - Fixed:
value-keyword-casefalse positives for CSS-in-JS template literals (#6666) (@hudochenkov).
15.1.0
- Added:
declaration-block-no-redundant-longhand-propertiesautofix (#6580) (@mattxwang). - Fixed:
declaration-property-value-no-unknownfalse positives forenv()(#6646) (@romainmenke). - Fixed:
function-calc-no-unspaced-operatorTypeError on emptycalc()(#6634) (@romainmenke). - Fixed: inaccurate
customSyntaxinference (#6645) (@ybiquitous).
15.0.0
- Removed: Node.js 12 support (#6477) (@ybiquitous). (BREAKING)
- Removed: support for processors (#6479) (@ybiquitous). (BREAKING)
- Removed:
syntaxoption (#6420) (@fpetrakov). (BREAKING) - Changed:
extendsinoverridesto merge to be consistent withpluginsbehaviour (#6380) (@jasikpark). (BREAKING) - Changed: type definitions to reorganize (#6510) (@ybiquitous). (BREAKING)
- Changed: type names to be more consistent (#6503) (@ybiquitous). (BREAKING)
- Deprecated: stylistic rules handled by Prettier (#6504) (@ybiquitous).
- Added:
declaration-property-value-no-unknownrule (#6511) (@jeddy3). - Added:
media-feature-name-unit-allowed-listrule (#6550) (@mattxwang). - Added:
function-url-quotesautofix (#6558) (@mattxwang). - Added:
ignore: ["custom-elements"]toselector-max-type(#6588) (@muddv). - Added:
ignoreFunctions: []tounit-disallowed-list(#6592) (@mattxwang). - Added: deprecated rule warnings (#6561) (@ybiquitous).
- Added: message arguments to
declaration-property-unit-allowed-list(#6570) (@mattxwang). - Fixed:
overrides.filesin config to allow basename glob patterns (#6547) (@ybiquitous). - Fixed:
at-rule-no-unknownfalse positives for@scroll-timeline(#6554) (@mattxwang). - Fixed:
function-no-unknownfalse positives for interpolation and backticks in CSS-in-JS (#6565) (@hudochenkov). - Fixed:
keyframe-selector-notationfalse positives for named timeline ranges (#6605) (@kimulaco). - Fixed:
property-no-unknownfalse negatives for newer custom syntaxes (#6553) (@43081j). - Fixed:
selector-attribute-quotesfalse positives for "never" (#6571) (@mattxwang). - Fixed:
selector-not-notationautofix for "simple" option (#6608) (@Mouvedia).
14.16.1
- Fixed:
customSyntaxresolution withconfigBasedir(#6536) (@ybiquitous). - Fixed:
declaration-block-no-duplicate-propertiesautofix for!important(#6528) (@sidx1024). - Fixed:
function-no-unknownfalse positives forscroll,-webkit-gradient,color-stop,from, andto(#6539) (@Mouvedia). - Fixed:
value-keyword-casefalse positives for mixed caseignoreFunctionsoption (#6517) (@kimulaco). - Fixed: unexpected
outputin Node.js API lint result when any rule containsdisableFix: true(#6543) (@adrianjost).
14.16.0
- Added:
media-feature-range-notationrule (#6497) (@jeddy3). - Added: support for plugin objects as config values (#6481) (@phoenisx).
- Fixed: incorrect output by all formatters except for
json(#6480) (@ybiquitous).
14.15.0
- Added:
--globby-optionsflag (#6437) (@sidverma32). - Added: custom message formatting for
at-rule-disallowed-list,declaration-property-unit-disallowed-list,declaration-property-value-disallowed-list,function-disallowed-list, andproperty-disallowed-list(#6463) (@chloerice). - Added: support autofix with
checkAgainstRule(#6466) (@aaronccasanova). - Added: support for reporting with custom severity (#6444) (@aaronccasanova).
- Added: support to
checkAgainstRulewith custom rules (#6460) (@aaronccasanova). - Fixed: tally output of
stringformatter colorized (#6443) (@ybiquitous). - Fixed: usage of the
import-lazypackage to fit bundlers (#6449) (@phoenisx).
14.14.1
- Fixed:
declaration-block-no-redundant-longhand-propertiesfalse positives forinheritkeyword (#6419) (@kimulaco). - Fixed:
shorthand-property-no-redundant-valuesmessage to be consistent (#6417) (@fpetrakov). - Fixed:
unit-no-unknownfalse positives for*vi&*vbviewport units (#6428) (@sidverma32).
14.14.0
- Added:
*-patterncustom message formatting (#6391) (@ybiquitous). - Fixed:
block-no-emptyfalse positives forreportNeedlessDisables(#6381) (@ybiquitous). - Fixed:
printf-like formatting for custom messages (#6389) (@ybiquitous). - Fixed:
unit-no-unknownfalse positives for font-relative length units (#6374) (@ybiquitous). - Fixed: false negatives on second run for cache and
severityoption (#6384) (@kimulaco). - Fixed: TS compilation error due to needless
file-entry-cacheimport (#6393) (@adidahiya).
14.13.0
- Added:
cacheStrategyoption (#6357) (@kaorun343). - Fixed: cache refresh when config is changed (#6356) (@kimulaco).
- Fixed:
selector-pseudo-element-no-unknownfalse positives for::highlightpseudo-element (#6367) (@jathak).
14.12.1
- Fixed:
font-weight-notationmessages (#6350) (@ybiquitous). - Fixed: type declarations for custom message arguments (#6354) (@stof).
14.12.0
- Added: support for multiple
--ignore-pathflags (#6345) (@kimulaco). - Added: experimental support for custom message arguments (#6312) (@ybiquitous).
- Added:
declaration-block-no-duplicate-propertiesautofix (#6296) (@fpetrakov). - Added:
font-weight-notationautofix (#6347) (@ybiquitous). - Added:
ignore: ["inside-block"]andsplitListtoselector-disallowed-list(#6334) (@mattmanuel90). - Added: regex support for
ignorePseudoClassesoption ofselector-pseudo-class-no-unknown(#6316) (@ybiquitous). - Added: regex support for
ignorePseudoElementsoption ofselector-pseudo-element-no-unknown(#6317) (@ybiquitous). - Added: regex support for
ignoreSelectorsoption ofselector-no-vendor-prefix(#6327) (@ybiquitous). - Added: regex support for
ignoreTypesoption ofselector-type-case(#6326) (@ybiquitous). - Fixed:
*-no-unknownfalse positives for container queries (#6318) (@fpetrakov). - Fixed:
font-family-name-quotesfalse positives for interpolation and shorthand (#6335) (@kimulaco). - Fixed:
time-min-millisecondsincorrect location for matching violating times (#6319) (@kawaguchi1102).
14.11.0
- Added:
ignoreAfterCombinators: []toselector-max-universal(#6275). - Fixed:
createPlugintype definition (#6264). - Fixed:
alpha-value-notationfalse negatives for SVG properties (#6284). - Fixed:
keyframes-name-patternfalse positives for interpolation (#6265). - Fixed:
selector-nested-patternend positions (#6259). - Fixed:
selector-no-qualifying-typemessage, positions, and false positives (#6260). - Fixed:
selector-no-vendor-prefixend positions (#6261). - Fixed:
selector-pseudo-class-allowed-listend positions and message (#6262). - Fixed:
selector-pseudo-class-disallowed-listend positions and message (#6263). - Fixed:
selector-pseudo-element-allowed-listend positions and message (#6270). - Fixed:
selector-pseudo-element-disallowed-listend positions and message (#6270). - Fixed:
shorthand-property-no-redundant-valuesmessage (#6272). - Fixed:
time-min-millisecondsend positions (#6273).
14.10.0
- Added: rule metadata to public
LinterResultAPI (#6166). - Added: longhand sub-properties of shorthand properties reference data to public API (#6168).
- Added:
meta.fixableproperty to each rule (#6181). - Added: support for loading custom formatter from package (#6228).
- Added:
annotation-no-unknownrule (#6155). - Added:
keyframe-selector-notationrule (#6164). - Added:
percentage-unless-within-keyword-only-blockprimary option tokeyframe-selector-notation(#6194). - Added:
githubformatter (#6150). - Added: tally to
stringandverboseformatters (#6153). - Added: fixable status to
verboseandgithubformatters (#6183). - Added: invalid rule primary option message for
false(#6250). - Fixed: exit code when nothing is passed to stylelint command (#6175).
- Fixed: rule message function type to not require users to handle all kind of arguments (#6147).
- Fixed:
at-rule-*end positions (#6163). - Fixed:
declaration-block-no-redundant-longhand-propertiesend positions (#6219). - Fixed:
declaration-property-value-allowed-listfalse positives for multiple match (#6190). - Fixed:
declaration-property-value-disallowed-listfalse negatives for multiple match (#6188). - Fixed:
named-grid-areas-no-invalidend positions (#6205). - Fixed:
no-descending-specificityfalse positives for pseudo-classes (#6195). - Fixed:
no-unknown-animationsend positions (#6221). - Fixed:
no-unknown-animationsfalse positives for SCSS interpolation (#6185). - Fixed:
number-max-precisionend positions (#6184). - Fixed:
property-*end positions (#6174). - Fixed:
rule-selector-property-disallowed-listend positions (#6222). - Fixed:
selector-attribute-name-disallowed-listend positions (#6223). - Fixed:
selector-attribute-operator-allowed-listend positions (#6224). - Fixed:
selector-attribute-operator-disallowed-listend positions (#6225). - Fixed:
selector-attribute-quotesend positions (#6226). - Fixed:
selector-class-patternend positions (#6227). - Fixed:
selector-combinator-allowed-listandselector-combinator-disallowed-listend positions (#6229). - Fixed:
selector-disallowed-listend positions (#6230). - Fixed:
selector-id-patternend positions (#6231). - Fixed:
selector-not-notationend positions (#6201). - Fixed:
selector-pseudo-element-colon-notationend positions (#6235). - Fixed:
string-no-newlineend positions (#6218). - Fixed:
unit-*start and end positions (#6169). - Fixed:
value-no-vendor-prefixend positions (#6173).
14.9.1
- Fixed:
selector-max-specificityfalse positives for:nth-child(#6140).
14.9.0
- Added:
import-notationrule (#6102). - Fixed:
no-duplicate-selectorsfalse positives for SCSS/Less nested interpolations (#6118). - Fixed:
no-descending-specificityandselector-max-specificityfalse positives for:is()and:where()(#6131).
14.8.5
- Fixed:
no-duplicate-selectorsfalse positives with Less syntax (#6111).
14.8.4
- Fixed:
no-duplicate-selectorserror with non-standard selectors (#6106).
14.8.3
- Fixed:
at-rule-no-unknownfalse positives for@layer(#6093). - Fixed:
length-zero-no-unitautofix for.0values (#6098). - Fixed:
media-feature-name-no-unknownfalse positives fordisplay-mode(#6073). - Fixed:
no-descending-specificityend positions (#6049). - Fixed:
no-duplicate-*end positions (#6047). - Fixed:
no-invalid-*end positions (#6072). - Fixed:
no-invalid-position-at-import-rulefalse positives for@layer(#6094).
14.8.2
- Fixed:
function-calc-no-unspaced-operatorfalse positives for non-standard variables (#6053). - Fixed:
selector-*-no-unknownend positions (#6046).
14.8.1
- Fixed:
declaration-block-no-*end positions that avoid errors (#6040). - Fixed:
function-calc-no-unspaced-operatorfalse positives and memory leak (#6045). - Fixed:
named-grid-areas-no-invalidfalse positives for arealess templates (#6042).
14.8.0
- Added:
keyframe-block-no-duplicate-selectorsrule (#6024). - Added:
property-*-listsupport for vendor prefixes (#6025). - Fixed:
at-rule-*-listend positions (#6032). - Fixed:
at-rule-no-unknownend positions (#6026). - Fixed:
function-linear-gradient-no-nonstandard-directionfalse negative about-ms-linear-gradient(#6031). - Fixed:
function-no-unknownend positions (#6038). - Fixed:
property-no-unknownend positions (#6039).
14.7.1
- Fixed: a regression for
/* stylelint-disable */comments (#6018). - Fixed:
font-family-name-quotesfalse positives forui-*generic system font keywords (#6017).
14.7.0
- Added: ranges for warnings that can be used by formatters and integrations (#5725).
- Added:
selector-not-notationrule (#5975). - Fixed:
font-weight-notationfalse positives for Sass functions and column position (#6005).
14.6.1
- Fixed:
custom-property-patternTypeError for "Cannot destructure property..." (#5982). - Fixed:
selector-type-casefalse positives for SVG elements (#5973). - Fixed:
unit-no-unknownfalse positives for large/small/dynamic viewport units (#5970).
14.6.0
- Added:
declaration-property-max-valuesrule (#5920). - Fixed:
*-no-importantcolumn position (#5957). - Fixed:
custom-property-patternfalse positives for interpolation in property name (#5949). - Fixed:
font-family-name-quotescolumn position (#5955). - Fixed:
selector-pseudo-*-no-unknownfalse positives and negatives (#5959). - Fixed:
selector-pseudo-class-no-unknownfalse positives and negatives (#5956).
14.5.3
- Fixed:
*-listinvalid option warnings for strings (#5934).
14.5.2
- Fixed: clarity of invalid option warning message for objects (#5923).
- Fixed:
*-listfalse negatives for invalid options (#5924). - Fixed:
custom-property-patternfalse positives for interpolation insidevar()(#5925). - Fixed:
declaration-property-value-*-listcolumn position (#5926).
14.5.1
- Fixed:
function-no-unknownENOENT and TypeErrors (#5916). - Fixed:
function-no-unknownfalse positives for interpolation (#5914).
14.5.0
- Added:
ignoreFunctions: []tofunction-no-unknown(#5901).
14.4.0
- Added:
function-no-unknownrule (#5865). - Added:
font-family-name-quotesautofix (#5806). - Fixed: throwing more informative error when all input files are ignored (#5709).
- Fixed:
custom-property-patternfalse negatives for custom properties withinvar()(#5867). - Fixed:
no-descending-specificityparseError for double-slash comments within selector lists (#5891). - Fixed:
selector-pseudo-element-colon-notationfalse positives for escaped colons (#5879).
14.3.0
- Added: support for
meta.urlto rules and plugins (#5845). - Added: hyperlinks for rules to terminal output (#5835).
- Added: hyperlinks for plugins to terminal output (#5859).
- Added:
ignore: ["rules"] / ["at-rules"]toblock-opening-brace-*-after(#5830). - Added:
ignoreSelectors: []toproperty-case(#5822). - Added:
ignoreFunctions: []tounit-allowed-list(#5857). - Added:
camelCaseSvgKeywordstovalue-keyword-case- use this option if you want legacy camel case SVG keywords likecurrentColor(#5849). - Fixed:
font-family-no-missing-generic-family-keywordfalse positives forrevertandrevert-layer(#5852). - Fixed:
no-descending-specificityfalse positives for the::-moz-focus-innerpseudo-element (#5831). - Fixed:
value-keyword-casefalse negatives for SVG keywords likecurrentcolor(#5849).
14.2.0
- Added:
cwdoption to Node.js API (#5721). - Added:
resolveConfigoption to Node.js API (#5734). - Fixed: showing of incorrect missing package in
customSyntaxrequire handling (#5763). - Fixed:
color-function-notationfalse positives for variables and color functions (#5793) - Fixed:
color-namedfalse positives for hex with alpha-channel and false negatives for modern syntax (#5718). - Fixed:
declaration-empty-line-beforesupport for HTML files (#5689). - Fixed:
indentationTypeError for syntaxes that use Document node type (#5771).
14.1.0
- Added: support for directory creation to
--output-fileflag (#5672). - Added:
ConfigurationErrortype (#5696). - Added:
rule-selector-property-disallowed-listrule (#5679). - Added:
ignore: ["consecutive-duplicates-with-same-prefixless-values"]todeclaration-block-no-duplicate-properties(#5609). - Added:
ignorePseudoClasses: []tomax-nesting-depth(#5620). - Fixed: extending rules within overrides (#5683).
- Fixed:
color-function-notationfalse positives for hex colours (#5650). - Fixed:
declaration-empty-line-beforefalse positives for values wrapped in parentheses (#5680). - Fixed:
indentationTypeError forbaseIndentLevel: 1option for Vue files (#5657). - Fixed:
property-no-unknownfalse positives for maps (#5690). - Fixed:
selector-type-casefalse positives for SVG type selectors (#5717).
14.0.1
- Fixed: package size by excluding docs (#5643).
- Fixed:
overridesproperty ignoring dot directories (#5629). - Fixed: custom syntax require error handling (#5635).
- Fixed:
function-calc-no-unspaced-operatorfalse positives for hyphenated functions (#5636).
14.0.0
- Removed: Node.js 10 support (#5303).
- Removed:
syntaxoption (#5297). - Removed:
configOverridesoption (#5530). - Removed: rules deprecated in 13.7.0 (#5295).
- Removed:
function-calc-no-invalidrule (#5296). - Changed:
ignoreFilesto be extendable (#5596). - Security: addressed ReDoS issue with regex in
indentation(#5539). - Added: TypeScript type definitions (#5582).
- Added:
customSyntaxoption as a property in the configuration object (#5538). - Added:
overridesproperty to configuration object (#5521). - Added:
disableFixas secondary option to rules property in the configuration object (#5460). - Added:
quietoption to Node.js API (#5542). - Added:
color-hex-alpharule (#5316). - Added:
custom-property-no-missing-var-functionrule (#5317). - Added:
function-calc-no-unspaced-operatorautofix (#5273). - Added:
ignoreFunctions: []tolength-zero-no-unit(#5314). - Added:
ignoreAtRules: []tono-invalid-position-at-import(#5520). - Added:
ignoreProperties: []tonumber-max-precision(#5421). - Fixed: "No files matching the pattern" when using backslash paths on Windows (#5386).
- Fixed:
function-url-quotesproblem messages to be consistent with other*-quotesrules (#5488). - Fixed:
length-zero-no-unitfalse positives forflexproperty (#5315). - Fixed:
media-feature-name-no-unknownfalse positives forprefers-contrast(#5428). - Fixed:
media-feature-name-no-unknownfalse positives fordynamic-range&video-dynamic-range(#5613). - Fixed:
media-feature-name-value-allowed-listTypeError for spaceless condition (#5581). - Fixed:
property-no-unknownfalse positives for Less maps (#5381). - Fixed:
selector-class-patternfalse positives for Less parametric mixins (#5378). - Fixed:
max-empty-linesautofix for Less comments (#5507). - Fixed:
named-grid-areas-no-invalidfalse negatives forgridandgrid-templateshorthand properties (#5514). - Fixed:
unit-no-unknownfalse positives for nested property declarations (#5500).
13.13.1
- Fixed: invalid JSON for
max-warningsoption (#5267). - Fixed:
no-invalid-position-at-import-rulefalse positives for dollar variables (#5264).
13.13.0
- Added:
no-invalid-position-at-import-rulerule (#5202). - Added:
no-irregular-whitespacerule (#5209). - Added:
selector-disallowed-listrule (#5239). - Added:
selector-attribute-quotesautofix (#5248). - Added:
ignore: ["inside-function"]todeclaration-property-unit-allowed-list(#5194). - Fixed:
color-no-hexfalse positives for CSS-in-JS objection notation (#5186). - Fixed:
font-family-no-missing-generic-family-keywordfalse positives for variables (#5240). - Fixed:
length-zero-no-unitautofix removing trailing zeroes and comments (#5256). - Fixed:
length-zero-no-unitfalse positives for level 4 math functions (#5203). - Fixed:
length-zero-no-unitfalse positives for functions inside of math functions (#5245).
13.12.0
- Added:
named-grid-areas-no-invalidrule (#5167). - Added:
ignore: ["single-declaration"]todeclaration-block-trailing-semicolon(#5165). - Fixed:
*-no-unknownfalse positives (#5158). - Fixed:
selector-pseudo-class-no-unknownfalse positives for:autofill(#5171).
13.11.0
- Added: exceptions and severity options to
report*configuration object properties (#5143).
13.10.0
- Added:
ignoreDisables,reportNeedlessDisables,reportInvalidScopeDisablesandreportDescriptionlessDisablesconfiguration object properties (#5126). - Added:
declaration-block-no-duplicate-custom-propertiesrule (#5125). - Fixed:
alpha-value-notationfalse negatives for CSS Variables (#5130).
13.9.0
- Added: TAP formatter (#5062).
- Fixed: incorrect exit code when using
--reportoptions (#5079). - Fixed:
color-hex-casefalse negatives for css-in-js object notation (#5101). - Fixed:
color-hex-lengthfalse negatives for css-in-js object notation (#5106). - Fixed:
selector-attribute-name-disallowed-listfalse positives for valueless attribute selectors (#5060).
13.8.0
- Deprecated:
StylelintStandaloneReturnValue.reportedDisables,.descriptionlessDisables,.needlessDisables, and.invalidScopeDisables..reportedDisableswill always be empty and the other properties will always be undefined, since these errors now show up in.resultsinstead (#4973). - Added: disable comments that are reported as errors for various reasons are now reported as standard lint errors rather than a separate class of errors that must be handled specially (#4973).
- Added:
comment-patternrule (#4962). - Added:
selector-attribute-name-disallowed-listrule (#4992). - Added:
ignoreAtRules[]toproperty-no-unknown(#4965). - Fixed:
*-notationfalse negatives for dollar variables (#5031). - Fixed:
*-patternmissing configured pattern in problem messages (#4975).
13.7.2
- Fixed: regression for disable commands and adjacent double-slash comments (#4950).
- Fixed: use of full file path without converting it to glob (#4931).
13.7.1
- Fixed: double-slash disable comments when followed by another comment (#4913).
13.7.0
- Deprecated:
*-blacklist,*-requirelistand*-whitelistrules in favor of the new*-disallowed-list,*-required-listand*-allowed-listones (#4845):at-rule-blacklist. Useat-rule-disallowed-listinstead.at-rule-property-requirelist. Useat-rule-property-required-listinstead.at-rule-whitelist. Useat-rule-allowed-listinstead.comment-word-blacklist. Usecomment-word-disallowed-listinstead.declaration-property-unit-blacklist. Usedeclaration-property-unit-disallowed-listinstead.declaration-property-unit-whitelist. Usedeclaration-property-unit-allowed-listinstead.declaration-property-value-blacklist. Usedeclaration-property-value-disallowed-listinstead.declaration-property-value-whitelist. Usedeclaration-property-value-allowed-listinstead.function-blacklist. Usefunction-disallowed-listinstead.function-url-scheme-blacklist. Usefunction-url-scheme-disallowed-listinstead.function-url-scheme-whitelist. Usefunction-url-scheme-allowed-listinstead.function-whitelist. Usefunction-allowed-listinstead.media-feature-name-blacklist. Usemedia-feature-name-disallowed-listinstead.media-feature-name-value-whitelist. Usemedia-feature-name-value-allowed-listinstead.media-feature-name-whitelist. Usemedia-feature-name-allowed-listinstead.property-blacklist. Useproperty-disallowed-listinstead.property-whitelist. Useproperty-allowed-listinstead.selector-attribute-operator-blacklist. Useselector-attribute-operator-disallowed-listinstead.selector-attribute-operator-whitelist. Useselector-attribute-operator-allowed-listinstead.selector-combinator-blacklist. Useselector-combinator-disallowed-listinstead.selector-combinator-whitelist. Useselector-combinator-allowed-listinstead.selector-pseudo-class-blacklist. Useselector-pseudo-class-disallowed-listinstead.selector-pseudo-class-whitelist. Useselector-pseudo-class-allowed-listinstead.selector-pseudo-element-blacklist. Useselector-pseudo-element-disallowed-listinstead.selector-pseudo-element-whitelist. Useselector-pseudo-element-allowed-listinstead.unit-blacklist. Useunit-disallowed-listinstead.unit-whitelist. Useunit-allowed-listinstead.
- Added: syntax object acceptance to
customSyntaxoption (#4839). - Added: support for
*.cjsconfig files (#4905). - Added: support for descriptions in Stylelint command comments (#4848).
- Added:
reportDescriptionlessDisablesflag (#4907). - Added:
reportDisablessecondary option (#4897). - Added:
*-no-vendor-prefixautofix (#4859). - Added:
ignoreComments[]tocomment-empty-line-before(#4841). - Added:
ignoreContextFunctionalPseudoClassestoselector-max-id(#4835). - Fixed: inconsistent trailing newlines in CLI error output (#4876).
- Fixed: support for multi-line disable descriptions (#4895).
- Fixed: support for paths with parentheses (#4867).
- Fixed:
selector-max-*(exceptselector-max-type) false negatives forwhere,is,nth-childandnth-last-child(#4842). - Fixed:
length-zero-no-unitTypeError for custom properties fallback (#4860). - Fixed:
selector-combinator-space-afterfalse positives for trailing combinator (#4878).
13.6.1
- Fixed:
max-empty-linesTypeError from inline comment with autofix and sugarss syntax (#4821). - Fixed:
property-no-unknownfalse positives for namespaced variables (#4803). - Fixed:
selector-type-no-unknownfalse positives for idents within::partpseudo-elements (#4828).
13.6.0
- Added:
ignoreSelectors[]toblock-opening-brace-space-before(#4640). - Fixed: false positives for all scope disables in
--report-invalid-scope-disables(#4784). - Fixed: TypeError for CSS-in-JS when encountering a call or template expression named 'html' (#4797).
- Fixed: writing error information to
stderr(#4799). - Fixed: minimum node version in
package.json'senginefield (#4790). - Fixed:
alpha-value-notationnumber precision errors (#4802). - Fixed:
font-family-no-missing-generic-family-keywordfalse positives for variables (#4806). - Fixed:
no-duplicate-selectorsfalse positives for universal selector anddisallowInList(#4809).
13.5.0
- Added:
alpha-value-notationrule (#4770). - Added:
color-function-notationrule (#4760). - Added:
hue-degree-notationrule (#4769).
13.4.1
- Fixed:
time-min-millisecondsTypeError forignore: ["delay"]and shorthand animation (#4783).
13.4.0
- Added:
ignore:["delay"]totime-min-milliseconds(#4743). - Added:
ignoreFunctions: []tovalue-keyword-case(#4733). - Fixed: improved performance when auto syntax is used (#4729).
- Fixed:
--report-needless-disablesrespects stylelint-disable commands (#4714). - Fixed:
at-rule-property-requirelistTypeError for comments inside of font-face (#4744). - Fixed:
declaration-block-trailing-semicolonfalse positives for CSS-in-JS object notation (#4749). - Fixed:
declaration-empty-line-beforefalse positives for inlines styles (#4726). - Fixed:
media-feature-name-*false positives forforced-colors(#4775). - Fixed:
value-keyword-casefalse positives WebExtension replacement keywords (#4778). - Fixed:
value-keyword-casefalse positives regression for mixed-case properties and theignorePropertiesoption (#4748).
13.3.3
- Fixed: autofix will respect scoped disable comments by turning off autofix for the scoped rules for the entire source; this is a continuation of the workaround added in
13.2.0(#4705).
13.3.2
- Fixed: update postcss-css-in-js with fix for maximum call stack size exceeded error (#4701).
13.3.1
- Fixed: babel configuration conflict when using TypeScript (postcss-css-in-js/#2).
- Fixed: autofix for nested tagged template literals (#4119).
13.3.0
- Added:
ignoreFontFamilies: []tofont-family-no-missing-generic-family-keyword(#4656). - Fixed:
function-calc-no-invalidfalse positives for SCSS and Less variables (#4659). - Fixed:
unit-no-unknownfalse positives forxunit within vendor-prefixedimage-set(#4654).
13.2.1
- Fixed:
selector-pseudo-element-no-unknownfalse positives for::partpseudo-element (#4604). - Fixed:
value-keyword-casefalse positives for longhandgrid-column/row-*properties (#4611).
13.2.0
- Security: updated to
postcss-selector-parser@6due to a vulnerability in one ofpostcss-selector-parser@3dependencies (#4595). Due to this update:selector-descendant-combinator-no-non-spacewill ignore selectors containing commentsselector-pseudo-class-parentheses-space-insidecan't autofix pseudo-classes that contain comments
- Added:
--stdinCLI flag that accepts stdin input even if it is empty (#4594). - Fixed: autofix will ignore sources containing disable comments or nested tagged template literals - this is workaround to make autofix safer to use until we can resolve the underlying issues (#4573).
13.1.0
- Fixed:
media-feature-name-*false negatives for range context (#4581). - Fixed:
indentationRangeError regression (#4572). - Fixed:
string-quotesattribute selector autofix (#4576).
13.0.0
- Removed: Node.js 8.x support. Node.js 10 is now required. We can guarantee Stylelint works on the latest Node.js 10 release. (#4500).
- Removed: types declarations for Flow (#4451).
- Changed:
globbywas 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). - Added:
unit-no-unknownsupport forxunit (#4427). - Fixed:
--report-invalid-scope-disablescrash when no rules specified (#4498). - Fixed:
media-feature-parentheses-space-insidefalse negatives for multiple spaces (#4513). - Fixed:
selector-type-no-unknownfalse positives for SVG tags (#4495). - Fixed:
unit-no-unknownfalse positives for Sass map keys (#4450). - Fixed:
value-list-comma-newline-afterfalse positives for shared-line comments (#4482). - Fixed: consistently check that selectors are standard before passing to the parser (#4483).
- Fixed: overlapping disabled ranges edge case (#4497).
12.0.1
- Fixed:
string-no-newlinememory leak for ERB templates (#4491).
12.0.0
- Removed: ignoring
bower_componentsfolder by default (#4384). - Removed:
createRuleTesterAPI (#4385). - Added: more information for custom formatters (#4393).
- Fixed:
comment-empty-line-beforefalse positives for selector lists and shared-line comments (#4360). - Fixed:
font-family-no-missing-generic-family-keywordfalse positives for Sass-variables with namespaces (#4378). - Fixed:
font-weight-notationfalse positives forfont-weightranges in@font-face(#4372). - Fixed:
length-zero-no-unitfalse positives forline-height, and forfrunits (#4394). - Fixed:
length-zero-no-unitfalse positives for Less variables (#4405). - Fixed:
selector-max-*false negatives for rules with nested rules (#4357). - Fixed: incorrect error message when parsing files with a broken syntax (#4364).
11.1.1
- Fixed: syntax configuration for
--syntax css(#4335).
11.1.0
- Added:
csssyntax option (#4315). - Fixed:
no-eol-whitespaceparsing problems for non-standard syntaxes (#4313). - Fixed:
selector-pseudo-class-no-unknownfalse positives for:isselector (#4321).
11.0.0
- Changed:
--report-needless-disablesCLI flag now reports needless disables and runs linting (#4151). - Changed: display a problem at 1:1 for each file instead of throwing an error on unrecognized rules (#4237).
- Changed: always return
stylelintErroras a boolean (#4174). - Deprecated:
createRuleTesterAPI (#4279). - Added:
--reportInvalidScopeDisablesCLI flag (#4181). - Added:
unicode-bomrule (#4225). - Added:
max-empty-linesautofix (#3667). - Added:
selector-pseudo-element-caseautofix (#3672). - Added:
selector-*support for all logical combinations (:matches,:has) (#4179). - Added:
ignore: ["selectors-within-list"]tono-descending-specificity(#4176). - Added:
ignoreSelectors: []toproperty-no-unknown(#4275). - Fixed: Babel user configuration interfering with CSS-in-JS parser (#4164).
- Fixed: PostCSS plugin ignoring .stylelintignore (#4186).
- Fixed:
*-max-empty-linesto only report one problem per function, selector, value list (#4260). - Fixed:
block-no-emptycrash for@importstatements (#4110). - Fixed:
indentationfalse positives for<style>tag with multiline attributes (#4177). - Fixed:
length-zero-no-unitfalse positives for inside calc function (#4175). - Fixed:
max-line-lengthfalse positives for multi-lineurl()(#4169). - Fixed:
no-duplicate-selectorsfalse positives for selectors in the same selector list (#4173). - Fixed:
no-unit-unknownfalse positives for at-variables (Less) starting with numbers (#4163). - Fixed:
property-no-unknownforoverflowXfor CSS-in-JS (#4184).
10.1.0
- Added:
selector-max-empty-linesautofix (#3717). - Added: rule names for
--report-needless-disablesoutput (#4071). - Added:
--output-fileCLI flag (#4085). - Fixed:
function-calc-no-invalidfalse positives for interpolation (#4046). - Fixed:
declaration-block-semicolon-space-beforeautofix with!importantannotations (#4016). - Fixed:
no-eol-whitespaceautofix for within comments (#4224). - Fixed:
no-eol-whitespacefalse negatives for last line without trailing EOL (#4224). - Fixed:
selector-pseudo-class-no-unknownfalse positives fordefined(#4081).
10.0.1
- Fixed: minimum Node.js engine reduced to 8.7.0 (#4032).
- Fixed:
--allow-empty-inputCLI flag (#4029). - Fixed:
color-no-invalid-hexfalse positives for hashes in URLs (#4035). - Fixed:
function-linear-gradient-no-nonstandard-directionfalse positives for dollar variables (#4027).
10.0.0
- Removed: Node.js 6.x support. Node.js 8.15.1 or greater is now required (#4006).
- Removed:
styledandjsxsyntax options that were replaced withcss-in-jsin v9.10.0 (#4007). - Changed: throws error if glob matches no files, use the
--allow-empty-inputflag for the old behavior (#3965). - Changed: rules are now applied in the order defined in
lib/rules/index.js(#3923). - Added:
at-rule-property-requirelistrule (#3997). - Added:
disallowInListtono-duplicate-selectors(#3936). - Added:
ignore: ["comments"]toblock-no-empty(#4008). - Fixed: false negatives in declaration-based rules for CSS-in-JS (#3933).
- Fixed:
color-no-invalid-hexfalse negatives for CSS-in-JS (#3957). - Fixed:
feature-name-no-unknownfalse positives forprefers-color-scheme(#3951). - Fixed:
function-calc-no-invalidfalse positives for negative numbers (#3921). - Fixed:
no-descending-specificityfalse positives for vendor prefixed pseudo-elements (#3929). - Fixed:
selector-max-*false negatives for nested at-rules (#3959). - Fixed: Logical combinations pseudo-classes in
selector-max-universalare now evaluated separately (#4263). - Fixed:
value-keyword-caseautofix for single-line comments within maps (#4019).
9.10.1
- Fixed: "fatal: Not a git repository" error (#3915).
- Fixed: unintended increase in package size (#3915).
9.10.0
- Added: support for ordinary regular expressions anywhere a regex string is accepted in rule config (#3799).
- Added:
css-in-jssyntax option that will replace the existingstyledandjsxones (#3872). - Added:
function-calc-no-invalidrule (#3833). - Added:
ignore: ["next-sibling"]toselector-max-type(#3832). - Added:
declaration-block-semicolon-space-afterautofix (#3865). - Fixed: autofix is now disabled when a Stylelint processors is used (#3873).
- Fixed:
CssSyntaxErrorfor functions in template literals (#3869). - Fixed:
no-descending-specificityfalse positives for styled-components (#3875). - Fixed:
no-duplicate-selectorsfalse positives for styled-components (#3875). - Fixed:
selector-pseudo-class-no-unknownfalse positives forfocus-visible(#3887). - Fixed:
selector-max-universalfalse positives for flush comments containing a comma (#3817). - Fixed:
shorthand-property-redundant-valuesfalse positives for negative values (#3888).
9.9.0
- Added:
selector-list-comma-newline-afterautofix (#3815). - Added:
value-list-max-empty-linesautofix (#3814). - Added:
ignoreSelectors: []toselector-no-vendor-prefix(#3748). - Fixed: ignored files are no longer parsed (#3801).
- Fixed: ignore
&:extendfor Less syntax (#3824). - Fixed:
--report-needless-disablesCLI flag (#3819). - Fixed:
font-family-no-missing-generic-family-keywordfalse positives for system fonts (#3794).
9.8.0
- Added:
value-keyword-caseautofix (#3775). - Added:
ignore: ["pseudo-classes"]tomax-nesting-depth(#3724). - Added:
ignoreTypes:[]toselector-type-case(#3758). - Added:
ignoreFunctions:[]tounit-no-unknown(#3736). - Fixed: error for single-line Sass comments (#3772).
- Fixed:
at-rule-*false positives for Less variables and mixins (#3767). - Fixed:
max-empty-linesfalse positives for final newlines (#3785).
9.7.1
- Fixed:
at-rule-*false positives for Less variables and mixins (#3759).
9.7.0
- Added: allow globally installed configuration (#3642).
- Added:
media-feature-parentheses-space-insideautofix (#3720). - Added:
selector-descendant-combinator-no-non-spaceautofix (#3565). - Added:
unit-caseautofix (#3725). - Fixed: false negatives for Less at-imports (#3687).
- Fixed: SyntaxError when an empty string is used for a rule's custom message (#3743).
- Fixed:
max-empty-linesfalse positives for empty lines before</style>(#3708). - Fixed:
selector-max-specificityfalse positives for functional pseudo-classes (#3711).
9.6.0
- Added: suggestions for invalid CLI options (#3622).
- Added:
no-empty-first-linerule (#3650). - Added:
at-rule-name-space-afterautofix (#3653). - Added:
block-closing-brace-empty-line-beforeautofix (#3598). - Added:
block-closing-brace-space-beforeautofix (#3673). - Added:
comment-whitespace-insideautofix (#3619). - Added:
declaration-bang-space-afterautofix (#3598). - Added:
declaration-bang-space-beforeautofix (#3592). - Added:
declaration-colon-newline-afterautofix (#3588). - Added:
function-comma-space-afterautofix (#3555). - Added:
function-comma-space-beforeautofix (#3596). - Added:
function-name-caseautofix (#3674). - Added:
function-max-empty-linesautofix (#3645). - Added:
function-parentheses-newline-insideautofix (#3601). - Added:
function-whitespace-afterautofix (#3648). - Added:
media-feature-colon-space-afterautofix (#3623). - Added:
media-feature-colon-space-beforeautofix (#3637). - Added:
media-feature-name-caseautofix (#3685). - Added:
media-feature-range-operator-space-afterautofix (#3639). - Added:
media-feature-range-operator-space-beforeautofix (#3618). - Added:
media-query-list-comma-newline-afterautofix (#3643). - Added:
media-query-list-comma-space-afterautofix (#3607). - Added:
media-query-list-comma-space-beforeautofix (#3640). - Added:
function-parentheses-space-insideautofix (#3563). - Added:
selector-attribute-brackets-space-insideautofix (#3605). - Added:
selector-attribute-operator-space-afterautofix (#3641). - Added:
selector-attribute-operator-space-beforeautofix (#3603). - Added:
selector-pseudo-class-caseautofix (#3671). - Added:
selector-pseudo-class-parentheses-space-insideautofix (#3646). - Added:
selector-type-caseautofix (#3668). - Added:
no-eol-whitespaceautofix (#3615). - Added:
no-extra-semicolonsautofix (#3574). - Added:
value-list-comma-newline-afterautofix (#3616). - Added:
value-list-comma-space-afterautofix (#3558). - Added:
value-list-comma-space-beforeautofix (#3597). - Added:
baseIndentLeveltoindentation(#3557). - Fixed: autofix for 5 whitespace rules (#3621).
- Fixed:
linebreaksTypeError (#3636). - Fixed:
max-empty-linesincorrect line reporting (#3530). - Fixed:
media-query-list-comma-newline-afterfalse positives for trailing comment (#3657). - Fixed:
no-descending-specificityfalse positives for CSS Modules functional pseudo-classes (#3623).
9.5.0
- Added: bundled support for styles in CSS-in-JS object literals (#3506).
- Added:
--print-configCLI flag (#3532). - Added:
block-closing-brace-newline-beforeautofix (#3442). - Added:
block-opening-brace-newline-beforeautofix (#3518). - Added:
block-opening-brace-space-afterautofix (#3520). - Added:
block-opening-brace-newline-afterautofix (#3441). - Added:
declaration-block-semicolon-newline-afterautofix (#3545). - Added:
declaration-block-semicolon-space-beforeautofix (#3554). - Added:
declaration-colon-space-afterautofix (#3538). - Added:
selector-list-comma-newline-beforeautofix (#3517). - Added:
selector-list-comma-space-afterautofix (#3490). - Added:
unixformatter (#3524). - Fixed:
selector-descendant-combinator-no-non-spacefalse positives for calculations with parenthesis (#3508).
9.4.0
- Added: bundled support for styles in CSS-in-JS template literals (#3405).
- Added:
linebreaksrule (#3289). - Added:
compactformatter (#3488). - Added:
at-rule-semicolon-newline-afterautofix (#3450). - Added:
block-closing-brace-newline-afterautofix (#3443). - Added:
block-opening-brace-space-beforeautofix (#3438). - Added:
declaration-block-trailing-semicolonautofix (#3382). - Added:
declaration-colon-space-beforeautofix (#3445). - Added:
property-caseautofix (#3448). - Added:
selector-combinator-space-afterautofix (#3446). - Added:
selector-combinator-space-beforeautofix (#3457). - Added:
selector-list-comma-space-beforeautofix (#3447). - Fixed:
block-opening-brace-newline-afterfalse positives for nested rule-sets prefixed with comments (#3383). - Fixed:
declaration-block-trailing-semicolonreport of errors with the--fixoption (#3493). - Fixed:
font-family-name-quotesfalse positives forsystem-uisystem font (#3463). - Fixed:
keyframes-name-patternsupport for raw JS RegExp (#3437). - Fixed:
media-feature-name-no-unknownfalse positives for level 5 names (#3397). - Fixed:
no-descending-specificityfalse positives for#{&}(#3420). - Fixed:
no-missing-end-of-source-newlinefalse positives for style attributes (#3485).
9.3.0
- Added: support for
<style>tags andstyle=""attributes in XML and XSLT files (#3386). - Added:
globbyOptionsoption (#3339). - Added:
keyframes-name-patternrule (#3321). - Added:
media-feature-name-value-whitelistrule (#3320). - Added:
selector-pseudo-element-colon-notationautofix (#3345). - Fixed:
.vuefiles throwing errors for<style lang="stylus">and<style lang="postcss">(#3331). - Fixed:
declaration-block-no-*false positives for non-standard syntax (#3381). - Fixed:
function-whitespace-afterfalse positives for "/" (#3132). - Fixed:
length-zero-no-unitincorrect autofix for at-includes (#3347). - Fixed:
max-nesting-depthfalse positives for nested properties (#3349). - Fixed:
no-empty-sourcefalse positives on vue external sources<style src="*">tag (#3331). - Fixed:
max-line-lengthfalse positives for non-CSS blocks (#3367). - Fixed:
no-eol-whitespacefalse positives for non-CSS blocks (#3367). - Fixed:
no-extra-semicolonsfalse positives for non-CSS blocks (#3367). - Fixed:
no-missing-end-of-source-newlinefalse positives for non-CSS blocks (#3367).
9.2.1
- Fixed:
cacheoption hiding CssSyntaxError outputs (#3258). - Fixed: regression with processors (e.g. styled-components) (#3261).
- Fixed:
no-descending-specificityfalse positives for Sass nested properties (#3283). - Fixed:
selector-pseudo-class-no-unknownfalse positives proprietary webkit pseudo classes when applied to a simple selector (#3271).
9.2.0
- Added:
selector-max-pseudo-classrule (#3195). - Fixed: slow
require('stylelint')time (#3242). - Fixed: autofix erroneously writing to unchanged files (#3241).
- Fixed: false negatives for template literals within script tags by updating postcss-html dependency (#3238).
- Fixed:
indentationfalse positives for at-root (#3225). - Fixed:
max-empty-linesfalse positives for non-CSS blocks (#3229). - Fixed:
no-empty-sourcefalse positives for non-CSS blocks (#3240). - Fixed:
string-no-newlinefalse positives for non-CSS blocks (#3228).
9.1.3
- Fixed: invalid HTML causing CssSyntaxError by updating postcss-html dependency (#3214).
- Fixed: empty markdown block causing CssSyntaxError by updating postcss-html dependency (#3214).
9.1.2
- Fixed: parsing of markdown files by updating postcss-html dependency (#3207).
9.1.1
- Fixed: missing
signal-exitdependency (#3186).
9.1.0
- Added:
ignore: ["first-nested"]toat-rule-empty-line-before(#3179). - Added:
ignore: ["first-nested"]torule-empty-line-before(#3179). - Fixed: unnecessary Open Collective postinstall message (#3180).
9.0.0
- Removed: Node.js 4.x support. Node.js 6.x or greater is now required (#3075).
- Added: (experimental) support for SASS syntax (#2503).
- Added: allow processors to handle PostCSS errors (#3063).
- Added:
--max-warningsCLI flag (#2942). - Added:
selector-combinator-*listrules (#3088). - Added:
selector-pseudo-element-*listrules (#3104). - Added:
ignore: ["first-nested"]tocustom-property-empty-line-before(#3104). - Added:
ignore: ["first-nested"]todeclaration-empty-line-before(#3103). - Added:
ignoreProperties: []toproperty-no-vendor-prefix(#3089). - Fixed:
font-family-name-quotesunicode range increased (#2974). - Fixed:
selector-max-idin nested at-statements (#3113).
8.4.0
- Added:
except: ["after-closing-brace"]toblock-closing-brace-empty-line-before(#3011). - Fixed: unmet peer dependency warning for
postcss-sass(#3040). - Fixed: false positives for CSS within comments in
*.pcssfiles (#3064). - Fixed:
font-family-no-missing-generic-family-keywordconfiguration (#3039). - Fixed:
indentationautofix for HTML (#3044).
8.3.1
- Fixed:
font-family-no-missing-generic-family-keywordfalse positives for at-font-face (#3034).
8.3.0
- Added: autofix support for stdin input (#2787).
- Added: support for
<style>tags and markdown fences in.vueand.htmlfiles (#2975). - Added:
font-family-no-missing-generic-family-keywordrule (#2930). - Added:
no-duplicate-at-import-rulesrule (#2963). - Added:
number-leading-zeroautofix (#2921). - Added:
number-no-trailing-zerosautofix (#2947). - Added:
shorthand-property-no-redundant-valuesautofix (#2956). - Added:
string-quotesautofix (#2959). - Added:
ignore: ["custom-properties"]option tolength-zero-no-unit(#2967). - Added:
except: ["inside-block"]option torule-empty-line-before(#2982). - Added:
ignoreValuestovalue-no-vendor-prefix(#3015). - Added:
ignoreMediaFeatureNamestounit-blacklist(#3027). - Fixed:
comment-empty-line-beforefalse positives for shared-line comments (#2986). - Fixed:
unit-*false positives for spaceless multiplication (#2948).
8.2.0
- Added: autofix of syntax errors in standard CSS e.g. unclosed braces and brackets (#2886).
- Added:
length-zero-no-unitautofix (#2861). - Added:
selector-max-specificitysupport for level 4 evaluation context pseudo-classes (#2857). - Added:
ignoreUnitsoption tonumber-max-precision(#2941). - Added:
ignoreSelectorsoption toselector-max-specificity(#2857). - Added:
ignorePropertiesoption tovalue-keyword-case(#2937). - Fixed:
*-empty-line-beforefalse negatives and positives when two or moreexcept: [*]options were triggered (#2920). - Fixed:
*-empty-line-beforefalse positives for CSS in HTML (#2854). - Fixed:
rule-empty-line-beforefalse positives forignore: ["inside-block"]and CSS in HTML (#2894). - Fixed:
rule-empty-line-beforefalse positives forexcept: ["after-single-line-comment"]and preceding shared-line comments (#2920). - Fixed:
selector-list-comma-newline-afterfalse positives for shared-line comments separated by more than once space (#2915). - Fixed:
selector-pseudo-class-no-unknownfalse positives when using chained pseudo-classes (#2810). - Fixed:
string-quotesfalse positives for@charsetand single quotes (#2902). - Fixed:
unit-no-unknownfalse positives for spaceless multiplication and division incalc()functions (#2848).
8.1.1
- Fixed:
--ignore-patternin CLI (#2851).
8.1.0
- Added: Allow specifying
codeFilenametocreateStylelintResultfor raw code linting standalone API (#2450). - Added:
ignorePatternoption (--ignore-patternin CLI), to allow patterns of files to ignored (#2834). - Added: More rules now support experimental autofixing. Use
--fixCLI parameter orfix: trueNode.js API options property. Newly supported rules: - Fixed:
*-empty-line-beforefalse positives shared-line comments and"first-nested"option (#2827). - Fixed:
color-hex-lengthfalse positives for ID references inurlfunctions (#2806). - Fixed:
indentationfalse positives for Less parametric mixins with rule block/snippet (#2744). - Fixed:
no-empty-sourcecompatibility withpostcss-htmlcustom syntax (#2798). - Fixed:
no-extra-semicolonsfalse negatives where instances were not detected when followed by multiple comments (#2678). - Fixed:
selector-max-specificitycannot parse selector problem for Less mixins (#2677).
8.0.0
This release is accompanied by:
- A new semantic version policy. The use of the tilde (
~) inpackage.jsonis 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:
- Possible errors
- Limit language features
- Stylistic issues
- The release of a new sharable config,
stylelint-config-recommended. This config only turns on the possible error rules.stylelint-config-standardnow builds on top of the recommended config by turning on over 60 additional stylistic rules.
- The restructuring of the list of rules into three groups:
Changes:
- Removed: the 21 rules deprecated in
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.
- Removed: the 4 options deprecated in
7.8.0(#2433)."all-nested"option forat-rule-empty-line-before."blockless-group"option forat-rule-empty-line-before."between-comments"option forcomment-empty-line-before."at-rules-without-declaration-blocks"option formax-nesting-depth.
- Changed: compatibility with
postcssfrom@5to@6(#2561). - Changed: parse errors now trigger exit with non-zero code (#2713).
- Changed:
report-needless-disablesnow exits with non-zero code (#2341). - Changed:
*-blacklistand*-whitelist(andignore* []secondary options) are now case sensitive. Use regular expressions with theiflag for case insensitivity (#2709). - Changed:
*-empty-line-beforenow correctly handle shared-line comments (#2262). - Changed:
*-empty-line-beforenow consider line as empty if it contains whitespace only (#2440). - Changed:
function-linear-gradient-no-nonstandard-directionnow checks all linear-gradients in a value list (#2496). - Changed:
selector-max-compound-selectorsnow checks all resolved selectors, rather than just the deepest (#2350). - Added:
disableDefaultIgnoresoption (--disable-default-ignoresin CLI), to allow linting ofnode_modulesandbower_componentsdirectories (#2464). - Added: more efficient file ignoring with
.stylelintignore(#2464). - Added:
ignore: ["child"]option toselector-max-type(#2701). - Fixed:
declaration-block-no-redundant-longhand-propertiesanddeclaration-block-no-shorthand-property-overridesunderstand more shorthand properties (#2354). - Fixed:
selector-max-typeno longer produces false negatives for when child, next-sibling and following-sibling combinators are used withignore: ["descendant"](#2701).
7.13.0
- Added:
ignoreAttributesoption toselector-max-attribute(#2722). - Fixed:
selector-combinator-space-*false positives for CSS namespaced type selectors (#2715). - Fixed:
selector-max-specificitynow ignores nested non-standard selectors (#2685).
7.12.0
- Deprecated: 6 rules, each has been replaced by a more configurable alternative (#2679).
function-url-data-urisrule. Use eitherfunction-url-scheme-blacklistorfunction-url-scheme-whitelist.selector-no-attributerule. Useselector-max-attributewith0as its primary option.selector-no-combinatorrule. Useselector-max-combinatorswith0as its primary option.selector-no-idrule. Useselector-max-idwith0as its primary option.selector-no-typerule. Useselector-max-typewith0as its primary option.selector-no-universalrule. Useselector-max-universalwith0as its primary option.
- Added:
function-url-scheme-blacklistrule (#2626). - Added:
function-url-scheme-whitelistregex support (#2662). - Added:
selector-max-attributerule (#2628). - Added:
selector-max-combinatorsrule (#2658). - Added:
selector-max-idrule (#2654). - Added:
selector-max-typerule (#2665). - Added:
selector-max-universalrule (#2653). - Fixed:
--fixno longer crashes when used with ignored files (#2652). - Fixed:
max-*rules now use singular and plural nouns in their messages (#2663).
7.11.1
- Fixed:
media-feature-name-*listnow accept arrays for their primary options (#2632). - Fixed:
selector-*now ignore custom property sets (#2634). - Fixed:
selector-pseudo-class-no-unknownnow ignores Less:extend(#2625).
7.11.0
- Added: experimental autofixing (#2467, #2500, #2529 and #2577). Use
--fixCLI parameter orfix: trueNode.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-before
- Added:
selector-max-classrule. - Added:
ignore: ["custom-elements"]option toselector-type-no-unknown(#2366). - Fixed: "Cannot find module 'pify'" regression in
node@4withnpm@2(#2614). - Fixed: no error is thrown when linting a string with
cacheenabled (#2494). - Fixed: Less
:extendis now ignored (#2571). - Fixed:
function-parentheses-space-insidenow ignores functions without parameters (#2587). - Fixed:
length-zero-no-unitnow correctly handles newlines and no spaces after colon (#2477). - Fixed:
selector-descendant-combinator-no-non-spaceandselector-combinator-space-before/afternow understand and check>>>shadow-piercing combinator (#2509). - Fixed:
selector-descendant-combinator-no-non-spacenow ignores Less guards (#2557). - Fixed:
selector-pseudo-class-no-unknownnow checks@pageat-rules and supports@pagepseudo-classes (#2445). - Fixed:
selector-pseudo-class-no-unknownnow considersfocus-ring,playingandpausedto be known (#2507). - Fixed:
selector-type-no-unknownnow ignores MathML tags (#2478). - Fixed:
selector-type-no-unknownnow ignores the/deep/shadow-piercing combinator (#2508). - Fixed:
value-keyword-casenow ignores variables with signs (#2558).
7.10.1
- Fixed: scope is kept when using
schema.preceedingPlugins(#2455).
7.10.0
- Added: support for asynchronous plugin rules (#2351).
- Added:
cacheoption to store the info about processed files in order to only operate on the changed ones the next time you run Stylelint (#2293). - Added:
at-rule-semicolon-space-beforerule (#2388). - Added:
ignore: ["comments"]tomax-empty-lines(#2401). - Added:
ignore: ["default-namespace"]toselector-type-no-unknown(#2461). - Added:
ignoreDefaultNamespacesoption toselector-type-no-unknown(#2461). - Fixed: more helpful messages when file globs do not match any files (#2328).
- Fixed:
decl/folder of Flow types is shipped with the package, for consumers that use Flow (#2322). - Fixed:
function-url-scheme-whitelistwas working incorrectly if more than one URL scheme were specified (#2447). - Fixed:
no-duplicate-selectornow includes the duplicate selector's first usage line in message (#2415). - Fixed:
no-extra-semicolonsfalse positives for comments after custom property sets (#2396). - Fixed:
value-keyword-casefalse positives forattr,counter,countersfunctions andcounter-resetproperty (#2407). - Fixed: Less mergeable properties are now ignored (#2570).
7.9.0
- Added:
ignoreFontFamilyNameoption tofont-family-no-duplicate(#2314). - Added:
ignorePatternoption tomax-line-length(#2333). - Fixed: update version of
lodashdependency to match feature usage, fixing a conflict with Modernizr (#2353). - Fixed:
color-hex-casefalse positives for ID references inurlfunctions (#2338). - Fixed:
max-line-lengthnow reports correct column for SCSS comments (#2340). - Fixed:
selector-class-patternfalse positive in SCSS when combining interpolated and nested selectors (#2344). - Fixed:
selector-type-casefalse positive for placeholder selectors (#2360).
7.8.0
- Deprecated: 15 rules (#2197, #2285 & #2309).
block-no-single-line. Useblock-opening-brace-newline-afterandblock-closing-brace-newline-beforerules with the option"always"instead.declaration-block-properties-order. Use thestylelint-orderplugin pack instead.rule-nested-empty-line-beforeandrule-non-nested-empty-line-before. Use the newrule-empty-line-beforerule instead.time-no-imperceptible. Use the newtime-min-millisecondsrule with100as 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-hacksno-indistinguishable-colorsno-unsupported-browser-features
- The following rules did not seem useful. If you liked these rules, please create plugins for them.
custom-property-no-outside-rootroot-no-standard-propertiesselector-root-no-composition.
- The following rules did not work well.
stylelint-disable-reasoncould not enforce providing a reason.declaration-block-no-ignored-propertiescould not reliably account for replaced elements.
- Deprecated: 4 options (#2213).
"all-nested"option forat-rule-empty-line-before. Use the"inside-block"option instead."blockless-group"option forat-rule-empty-line-before. Use the"blockless-after-blockless"option instead."between-comments"option forcomment-empty-line-before. Use the"after-comment"option instead."at-rules-without-declaration-blocks"option formax-nesting-depth. Use the"blockless-at-rules"option instead.
- Added:
time-min-millisecondsrule, to replacetime-no-imperceptible(#2289). - Added:
except: ["after-same-name"]option toat-rule-empty-line-before(#2225). - Fixed:
configOverridesnow work withextends(#2295). - Fixed:
max-line-lengthno longer reports incorrect column positions for lines withurl()orimport(#2287). - Fixed:
selector-pseudo-class-no-unknownno longer warns for proprietary webkit pseudo-classes (#2264). - Fixed:
unit-no-unknownacceptsfrunits (#2308).
7.7.1
- Fixed: ensure only absolute filepaths are passed to processors (#2207).
7.7.0
- Added:
stylelint.formattersexposed in public Node.js API (#2190). - Added:
stylelint.utils.checkAgainstRulefor checking CSS against a standard Stylelint rule within your own rule (#2173). - Added:
allow-empty-inputflag to CLI (#2117). - Added:
except: ["after-rule"]option torule-nested-empty-line-before(#2188). - Fixed: regression causing
--stdin-filenamein CLI andcodeFilenamein Node.js API to error if a nonexistent filename is provided (#2128). - Fixed: a boolean CLI flag (e.g.
--quiet) placed before an input glob no longer causes the input to be ignored (#2186). - Fixed: the
node_modulesandbower_componentsdirectories are correctly ignored by default when Stylelint is used as a PostCSS plugin (#2171). - Fixed: bug where some Node.js errors in special cases did not cause the CLI to exit with a non-zero code (#2140)
- Fixed: false positives related to LESS detached rulesets (#2089).
- Fixed:
color-namednow ignores SCSS maps, so map property names can be color names (#2182). - Fixed:
comment-whitespace-insideno longer complains about/*!comments with non-space whitespace (e.g. newlines) (#2121). - Fixed:
media-feature-name-no-vendor-prefixno longer throws syntax errors on unknown unprefixed variants (#2152). - Fixed:
selector-max-compound-selectorsignores SCSS nested declarations (#2102). - Fixed:
selector-pseudo-class-no-unknownno longer reports false positives for custom selectors (#2147).
7.6.0
- Added: option
customSyntax(for Node.js API) and--custom-syntax(for CLI). - Added:
font-family-no-duplicate-namesrule. - Fixed: CLI now understands absolute paths for the
--custom-formatteroption. - Fixed: the
stringandverboseformatters now usediminstead ofgrayfor greater compatibility with different terminal color schemes. - Fixed:
media-feature-parentheses-space-insidehandles comments within the parentheses. - Fixed:
selector-no-qualifying-typenow ignores SCSS%placeholders.
7.5.0
- Added:
selector-no-emptyrule. - Fixed: if no config is found relative to the stylesheet, look for one relative to
process.cwd(). - Fixed: lookup
ignoreFilesglobs relative toprocess.cwd()if config is directly passed as a JS object and noconfigBasediris provided. - Fixed: SugarSS no longer reports wrong column number in
block-no-empty. - Fixed:
configOverrideswork withplugins,extends, andprocessors. - Fixed: a bug causing inaccuracy in nested
stylelint-disableandstylelint-enablecomments. - Fixed:
function-calc-no-unspaced-operatorfalse positives for SCSS interpolation. - Fixed:
no-descending-specificitynow ignores custom property sets. - Fixed:
value-keyword-casefalse positives for some camel-case SVG keywords.
7.4.2
- Fixed: regression where using
nullto turn off a rule caused errors.
7.4.1
- Fixed: regression where using
nullfor rules that take an array for their primary option would trigger a validation warning.
7.4.0
- Added: each stylesheet looks up configuration from its own path. Different files can now use different configurations during the same linting process.
- Added: relative path extends, plugins, and processors try to load from
process.cwd()if they aren't found relative to the invoking configuration. - Added:
/* stylelint-disable-next-line */comments. - Added:
media-feature-name-blacklistrule. - Added:
media-feature-name-whitelistrule. - Added:
ignore: ["after-declaration"]option todeclaration-empty-line-before. - Added:
except: ["empty"]option tofunction-url-quotes. - Fixed:
function-linear-gradient-no-nonstandard-directionno longer warns when vendor-prefixed linear-gradient properties are used correctly. - Fixed:
no-extra-semicolonsnow ignores the semicolon that comes after the closing brace of a custom property set. - Fixed:
no-unknown-animationsno longer delivers false positives when there are multiple animation names. - Fixed:
number-*rules now ignore numbers in comments and strings. - Fixed:
value-keyword-casenow ignores system color keywords.
7.3.1
- Fixed: regression in 7.3.0 which caused a "Cannot read property 'length' of undefined" error on a certain selector.
7.3.0
- Added:
processorscan accept options objects. - Added:
ignore: ["inside-function"]option tocolor-named. - Fixed:
--ignore-pathand--report-needless-disablesno longer fails when used together. - Fixed:
block-closing-brace-newline-afterandblock-closing-brace-space-afternow allow a trailing semicolon after the closing brace of a block. - Fixed:
block-no-single-linenow ignores empty blocks. - Fixed:
declaration-block-no-ignored-propertiesnow uses the value of the last occurrence of a triggering property. - Fixed:
indentationnow correctly handles_hacks on property names. - Fixed:
property-no-unknownnow ignores SCSS nested properties.
7.2.0
- Added:
--report-needless-disablesandreportNeedlessDisablesoption. - Added:
--ignore-disablesandignoreDisablesoption. - Added:
--config-basediroption to CLI. - Added:
declaration-block-no-redundant-longhand-propertiesrule. - Added:
function-url-scheme-whitelistrule. - Added:
media-feature-name-no-unknownrule. - Added:
selector-descendant-combinator-no-non-spacerule. - Added:
value-list-max-empty-linesrule. - Added:
ignorePropertiesoption tocolor-named. - Added:
ignore: ["consecutive-duplicates-with-different-values"]option todeclaration-block-no-duplicate-properties. - Added:
ignore: ["comments"]option tomax-line-length. - Added:
ignoreAtRulesoption tomax-nesting-depth. - Added:
ignorePropertiesoption tounit-blacklistandunit-whitelist - Fixed: no longer parsing ignored files before ignoring them.
- Fixed:
configFileandconfigBasedircan now be used together. - Fixed:
max-line-lengthnow correctly handles Windows line endings. - Fixed:
no-descending-specificitytreats selectors with pseudo-elements as distinct from their counterparts without pseudo-classes, because they actually target different elements. - Fixed:
no-unknown-animationsandunit-blacklistnow handle numbers without leading zeros. - Fixed:
root-no-standard-propertiesnow handles custom property sets. - Fixed:
selector-no-typeignore: ["descendant"]option now correctly handles descendants within a selector list. - Fixed:
selector-pseudo-class-no-unknownnow understands the Shadow DOM selectors ofhostandhost-context. - Fixed:
selector-pseudo-element-no-unknownnow understands the Shadow DOM selector ofslotted.
7.1.0
- Added:
block-closing-brace-empty-line-beforerule. - Added:
comment-no-emptyrule. - Added:
custom-property-empty-line-beforerule. - Added:
declaration-empty-line-beforerule. - Added:
media-feature-name-caserule. - Added:
selector-nested-patternrule. - Added:
selector-pseudo-class-blacklistrule. - Added:
selector-pseudo-class-whitelistrule. - Added: regex support to the
ignore*secondary options of the*-no-unknownrules. - Added:
ignore: ["blockless-after-same-name-blockless"]option toat-rule-empty-line-before. - Added:
except: ["blockless-after-same-name-blockless"]option toat-rule-empty-line-before. - Added:
ignore: ["empty-lines"]option tono-eol-whitespace. - Added:
ignoreTypesoption toselector-no-typeto whitelist allowed types for selectors. - Fixed:
color-namednow ignores declarations that accept custom idents. - Fixed:
font-family-name-quotescorrectly handles numerical font weights for thefontshorthand property. - Fixed:
indentationnow correctly handles Windows line endings within parentheticals. - Fixed:
media-feature-no-missing-punctuationnow ignores media features containing complex values e.g.(min-width: ($var - 20px))and(min-width: calc(100% - 20px)). - Fixed:
no-descending-specificitymessage to correctly show which selector should come first. - Fixed:
selector-combinator-space-afterandselector-combinator-space-beforenow ignore operators within parenthetical non-standard constructs.
7.0.3
- Fixed: bug causing rules in extended configs to be merged with, rather than replaced by, the extending config.
- Fixed:
selector-class-patternnow ignores fractional keyframes selectors. - Fixed:
selector-max-specificitynow ignores selectors containing thematches()pseudo-class, and warns if the underlyingspecificitymodule cannot parse the selector. - Fixed:
selector-no-typewith secondary optionignore: ["descendant"]will now resolve nested selectors.
7.0.2
- Fixed:
at-rule-blacklist,at-rule-whitelist,comment-word-blacklist,selector-attribute-operator-blacklist,selector-attribute-operator-whitelistnow accept array as first option. - Fixed:
unit-*rules now ignore CSS hacks.
7.0.1
- Fixed: missing
known-css-propertiesdependency.
7.0.0
- Removed:
--extractandextractStyleTagsFromHtmloptions. Instead, build and use processors. - Removed: support for plugin rule names that aren't namespaced, i.e. only
your-namespace/your-rule-namerule names are supported. (If your plugin provides only a single rule or you can't think of a good namespace, you can simply useplugin/my-rule.) - Removed:
--verboseCLI flag. Use--formatter verboseinstead. - Removed: NodeJS
0.12.xsupport.4.2.1 LTSor greater is now required. - Removed:
media-query-parentheses-space-insiderule. Use the newmedia-feature-parentheses-space-insiderule instead. - Removed:
no-missing-eof-newlinerule. Use the new ruleno-missing-end-of-source-newlineinstead. - Removed:
number-zero-length-no-unitrule. Use thelength-zero-no-unitrule instead. - Removed:
property-unit-blacklistrule. Use thedeclaration-property-unit-blacklistrule instead. - Removed:
property-unit-whitelistrule. Use thedeclaration-property-unit-whitelistrule instead. - Removed:
property-value-blacklistrule. Use thedeclaration-property-value-blacklistrule instead. - Removed:
property-value-whitelistrule. Use thedeclaration-property-value-whitelistrule instead. - Removed:
"emptyLineBefore"option fordeclaration-block-properties-order. If you use this option, please consider creating a plugin for the community. - Removed:
"single-where-required","single-where-recommended","single-unless-keyword","double-where-required","double-where-recommended"and"double-unless-keyword"options forfont-family-name-quotes. Instead, use the"always-unless-keyword",always-where-recommendedoralways-where-requiredoptions together with thestring-quotesrule. - Removed:
"single","double"and"none"options forfunction-url-quotes. Instead, use the"always"or"never"options together with thestring-quotesrule. - Removed:
"hierarchicalSelectors"option forindentation. If you use this option, please consider creating a plugin for the community. - Removed:
stylelint.utils.cssWordIsVariable(). - Removed:
stylelint.utils.styleSearch(). Use the external style-search module instead. - Changed: invalid configuration sets result's
stylelintErrortotrue, which in turn causes CLI to exit with a non-zero code. - Changed: non-standard syntaxes are automatically inferred from file extensions
.scss,.less, and.sss. - Changed:
.stylelintignorenow uses.gitignoresyntax, and Stylelint looks for it inprocess.cwd(). - Changed: files matching ignore patterns no longer receive an "info"-severity message, which was always printed by the string formatter. Instead, the file's Stylelint result object receives an
ignored: trueproperty, which various formatters can use as needed. The standardstringformatter prints nothing for ignored files; but when theverboseformatter is used, ignored files are included in the filelist. - Changed: plugin arrays in extended configs are now concatenated with the main config's plugin array, instead of being overwritten by it. So plugins from the main config and from extended configs will all be loaded.
- Changed:
-vflag to display version number. - Changed:
comment-word-blacklistno longer ignores words within copyright comments. - Changed:
comment-word-blacklistwill now identify strings within comments, rather than just at the beginning of, when the string option is used. - Changed:
declaration-block-no-ignored-propertiesnow detects use ofmin-widthandmax-widthwithinline,table-row,table-row-group,table-columnandtable-column-groupelements. - Changed:
declaration-block-no-ignored-propertiesnow detects use ofoverflow,overflow-xandoverflow-ywithinlineelements. - Changed:
declaration-block-no-ignored-propertiesnow ignores the combination offloatanddisplay: inline-block | inline. - Changed:
font-family-name-quotesnow checks thefontproperty in addition to thefont-familyproperty. - Changed:
font-family-name-quotestreats-apple-*andBlinkMacSystemFontsystem fonts as keywords that should never be wrapped in quotes. - Changed:
indentationnow checks inside of parentheses by default. If you use theindentInsideParens: "once"secondary option, simply remove it from your config. If you do not want to check inside of parentheses, use the newignore: ["inside-parens"]secondary option. TheindentInsideParens: "twice"andindentInsideParens: "once-at-root-twice-in-block"secondary options are unchanged. - Changed:
keyframe-declaration-no-importantnow checks vendor prefixed@keyframesat-rules. - Changed:
selector-attribute-quotesnow checks attribute selectors with whitespace around the operator or inside the brackets. - Changed:
time-no-imperceptiblenow checks vendor prefixed properties. - Changed:
unit-*rules now check@mediavalues too. - Added: plugins can allow primary option arrays by setting
ruleFunction.primaryOptionArray = true. - Added: processors.
- Added:
media-feature-parentheses-space-insiderule. - Added:
no-missing-end-of-source-newlinerule. - Added:
property-no-unknownrule. - Fixed: Better handling quotes in selector attribute with multiple attributes.
- Fixed:
no-unknown-animationsnow classifies vendor prefixed@keyframesat-rules as known.
6.9.0
- Added:
defaultSeverityconfiguration option. - Added: invoking the CLI with no arguments and no stdin (i.e. just
stylelint) is equivalent tostylelint --help. - Added:
function-url-no-scheme-relativerule. - Added:
selector-attribute-quotesrule. - Fixed: the CLI now uses
process.exitCodewithstdOutto allow the process to exit naturally and avoid truncating output. - Fixed:
function-calc-no-unspaced-operatorcorrectly interprets negative fractional numbers without leading zeros and those wrapped in parentheses. - Fixed:
no-extra-semicolonsnow ignores semicolons after Less mixins. - Fixed:
number-max-precisionnow ignores uppercase and mixed case@importat-rules. - Fixed:
selector-max-specificityno longer crashes on selectors containing:not()pseudo-classes. - Fixed:
time-no-imperceptiblecorrectly handles negative time.
6.8.0
- Deprecated:
-eand--extractCLI flags, and theextractStyleTagsFromHtmlNode.js API option. If you use these flags or option, please consider creating a processor for the community. - Added:
at-rule-no-unknownrule. - Added:
no-empty-sourcerule. - Added:
except: ["after-single-line-comment"]option forrule-non-nested-empty-line-before. - Added:
ignoreProperties: []option fordeclaration-block-no-duplicate-properties. - Fixed: accuracy of warning positions for empty blocks when using SugarSS parser.
6.7.1
- Fixed:
block-*-brace-*-beforeCRLF (\r\n) warning positioning. - Fixed:
no-descending-specificitynow does comparison of specificity using ints, rather than strings. - Fixed:
selector-no-typeandselector-type-casenow ignore non-standard keyframe selectors (e.g. within an SCSS mixin). - Fixed:
selector-type-no-unknownno longer reports fractional keyframe selectors.
6.7.0
- Added:
ignoreFunctions: []option forfunction-name-case. - Fixed: rules using
findFontFamilyutil correctly interpret<font-size>/<line-height>values with unitless line-heights. - Fixed:
indentationbetter understands nested parentheticals that aren't just Sass maps and lists. - Fixed:
no-unsupported-browser-featuresmessage now clearly states that only fully supported features are allowed. - Fixed:
selector-max-specificityno longer reports that a selector with 11 elements or more has a higher specificity than a selector with a single classname. - Fixed:
selector-type-no-unknownno longer warns for complex keyframe selectors.
6.6.0
- Deprecated:
number-zero-length-no-unit. Uselength-zero-no-unitinstead. - Deprecated:
property-*-blacklistandproperty-*-whitelist. Usedeclaration-property-*-blacklistanddeclaration-property-*-whitelistinstead. - Deprecated:
-vand--verboseCLI flags. Use-f verboseor--formatter verboseinstead. - Deprecated:
stylelint.util.styleSearch(). Use the external module style-search instead. - Added: option
ignorePath(for JS) and--ignore-path(for CLI). - Added:
-halias for--helpCLI flag. - Added:
at-rule-blacklistrule. - Added:
at-rule-name-newline-afterrule. - Added:
at-rule-whitelistrule. - Added:
ignore: "blockless-group"option forat-rule-empty-line-before. - Added:
ignoreAtRules: []option forat-rule-empty-line-before. - Added:
function-blacklistnow accepts regular expressions. - Added:
function-whitelistnow accepts regular expressions. - Fixed: crash when tty columns is reported as zero, which happened when running Stylelint on Travis CI in OSX.
- Fixed: selector-targeting rules ignore Less mixins and extends.
- Fixed:
at-rule-name-newline-afternow correctly accepts one or more newlines. - Fixed:
declaration-block-semicolon-newline-beforenow correctly accepts one or more newlines. - Fixed:
function-url-quotesignores values containing$sassand@lessvariables. - Fixed:
function-whitespace-afterignorespostcss-simple-vars-style interpolation. - Fixed:
indentationbetter understands nested parentheticals, like nested Sass maps. - Fixed:
no-extra-semicolonsreports errors on the correct line. - Fixed:
selector-combinator-space-*rules now ignore escaped combinator-like characters. - Fixed:
selector-type-no-unknownignores non-standard usage of percentage keyframe selectors (e.g. within an SCSS mixin). - Fixed:
value-keyword-casenow ignores custom idents of propertiesanimation,font,list-style.
6.5.1
- Deprecated:
"emptyLineBefore"option fordeclaration-block-properties-order. If you use this option, please consider creating a plugin for the community. - Deprecated:
"single-where-required","single-where-recommended","single-unless-keyword","double-where-required","double-where-recommended"and"double-unless-keyword"options forfont-family-name-quotes. Instead, use the"always-unless-keyword",always-where-recommendedoralways-where-requiredoptions together with thestring-quotesrule. - Deprecated:
"single","double"and"none"options forfunction-url-quotes. Instead, use the"always"or"never"options together with thestring-quotesrule. - Deprecated:
"hierarchicalSelectors"option forindentation. If you use this option, please consider creating a plugin for the community. - Fixed: the string formatter no longer errors on non-rule errors.
- Fixed:
selector-list-comma-*rules now ignore Less mixins. - Fixed:
selector-max-compound-selectorsno longer errors on Less mixins. - Fixed:
selector-type-no-unknownnow ignores all An+B notation and linguistic pseudo-classes. - Fixed:
selector-type-no-unknownnow ignores obsolete HTML tags and<hgroup>.
6.5.0
- Added:
selector-max-compound-selectorsrule. - Fixed:
babel-polyfillremoved so it doesn't clash with other processes usingbabel-polyfill. - Fixed:
selector-type-caseandselector-type-no-unknownrules now ignore SCSS placeholder selectors.
6.4.2
- Fixed:
selector-pseudo-class-case,selector-pseudo-class-no-unknown,selector-pseudo-element-case,selector-pseudo-element-no-unknownrules now ignore SCSS variable interpolation. - Fixed:
selector-type-no-unknownnow ignores nested selectors and keyframe selectors.
6.4.1
- Fixed:
shorthand-property-no-redundant-valuesnow ignoresbackground,font,border,border-top,border-bottom,border-left,border-right,list-style,transitionproperties. - Fixed:
unit-no-unknownnow ignores hex colors.
6.4.0
- Added:
keyframe-declaration-no-importantrule. - Added:
selector-attribute-operator-blacklistrule. - Added:
selector-attribute-operator-whitelistrule. - Added:
selector-pseudo-class-no-unknownrule. - Added:
selector-type-no-unknownrule. - Fixed: string formatter no longer errors on multi-byte
message. - Fixed: catch errors thrown by
postcss-selector-parserand register them as PostCSS warnings, providing a better UX for editor plugins. - Fixed: some rules now better handle case insensitive CSS identifiers.
- Fixed:
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-afterandmedia-query-list-comma-space-beforerules now better ignore SCSS, Less variables and nonstandard at-rules. - Fixed:
no-unknown-animationsnow ignoreseasevalue. - Fixed:
unit-blacklist,unit-case,unit-no-unknown,unit-whitelistnow better accounts interpolation. - Fixed:
unit-no-unknownno longer breaks Node.js 0.12 (because we've included the Babel polyfill). - Fixed:
value-keyword-casenow ignores custom idents of propertiesanimation-name,counter-increment,font-family,grid-row,grid-column,grid-area,list-style-type. - Fixed: wrong example for
always-multi-linein ruleblock-opening-brace-newline-beforedocumentation.
6.3.3
- Fixed:
block-closing-brace-newline-beforeno longer delivers false positives for extra semicolon. - Fixed:
declaration-block-no-ignored-propertiesnow detects use ofvertical-alignwith block-level elements. - Fixed:
font-family-name-quotesis now case insensitive when hunting for font-family properties. - Fixed:
number-zero-length-no-unitnow ignoresdeg,grad,turnandradunits. - Fixed:
selector-no-typedoes a better job when ignoring descendant and compound selectors.
6.3.2
- Fixed:
shorthand-property-no-redundant-valuesnow handles uppercase values properly.
6.3.1
- Fixed:
declaration-block-no-ignored-propertiesnow longer crashes on nested rules.
6.3.0
- Deprecated: support for plugin rule names that aren't namespaced i.e. only
your-namespace/your-rule-namerule names are supported. If your plugin provides only a single rule or you can't think of a good namespace, you can simply useplugin/my-rule). - Added: support for plugins that provides an array of rules.
- Added: support for extracting and linting CSS from within HTML sources.
- Added:
--stdin-filenameoption to CLI. - Added:
at-rule-name-space-afterrule. - Added:
no-extra-semicolonsrule. - Added:
selector-attribute-operator-space-afterrule. - Added:
selector-attribute-operator-space-beforerule. - Added:
selector-max-empty-linesrule. - Added:
selector-pseudo-element-no-unknownrule. - Added: flexible support for end-of-line comments in
at-rule-semicolon-newline-after,block-opening-brace-newline-after, anddeclaration-block-semicolon-newline-after. - Fixed: string and verbose formatters no longer use an ambiguous color schemes.
- Fixed: string formatter no longer outputs an empty line if there are no problems.
- Fixed: all rules now handle case insensitive CSS identifiers.
- Fixed:
function-comma-newline-afternow allows end-of-line comments. - Fixed:
function-url-quotesnow ignores spaces withinurl(). - Fixed:
no-descending-specificitynow ignores trailing colons within selectors. - Fixed:
no-indistinguishable-colorsnow ignores keyword color names withinurl(). - Fixed:
number-max-precisionnow ignores@importat-rules andurl()functions. - Fixed:
selector-class-patternandselector-id-patternrules now ignore SCSS variable interpolation. - Fixed:
value-list-comma-*rules now ignore SCSS maps.
6.2.2
- Deprecated:
stylelint.utils.cssWordIsVariable()as non-standard syntax utils are now defensive. - Fixed:
declaration-colon-*rules now ignore SCSS lists. - Fixed:
font-weight-notationnow ignores SCSS interpolation. - Fixed:
rule-nested-empty-line-beforenow ignores Less blockless rules (mixin and extend calls).
6.2.1
- Fixed: more problems with exposed
stylelint.createRuleTester.
6.2.0
- Added:
selector-no-qualifying-typerule. - Fixed:
number-leading-zerowill not check@importat-rules. - Fixed:
selector-class-patternnow ignores non-outputting Less mixin definitions and called Less mixins. - Fixed:
value-keyword-casenow accounts for camelCase keywords (e.g.optimizeSpeed,optimizeLegibilityandgeometricPrecision) when theloweroption is used. - Fixed:
testUtilsandstylelint.createRuleTestermodule mistakes.
6.1.1
- Fixed: documentation links to
selector-pseudo-class-parentheses-space-insideandselector-attribute-brackets-space-inside.
6.1.0
- Added: support for
.stylelintignorefile. - Added: warning message in output when a file is ignored.
- Added:
comment-word-blacklistrule. - Added:
selector-attribute-brackets-space-insiderule. - Added:
selector-pseudo-class-parentheses-space-insiderule. - Added:
shorthand-property-no-redundant-valuesrule. - Added:
ignoreKeywordsoption forvalue-keyword-case. - Fixed: CRLF (
\r\n) warning positioning instring-no-newline. - Fixed: parsing problems when using
///-SassDoc-style comments. - Fixed:
max-empty-linesplaces warning at the end of the violating newlines to avoid positioning confusions.
6.0.3
- Fixed: CRLF (
\r\n) warning positioning inmax-empty-linesandfunction-max-empty-lines.
6.0.2
- Fixed:
CssSyntaxErrorsetserroredon output totrue.
6.0.1
- Fixed:
function-name-casenow accounts for camelCase function names (e.g.translateX,scaleXetc) when theloweroption is used.
6.0.0
- Changed:
CssSyntaxErroris no longer thrown but reported alongside warnings. - Added: new look for standard formatter and support for arbitrary severity names.
- Added: exposed
stylelint.utils.cssWordIsVariable(). - Added:
at-rule-name-caserule. - Added:
function-name-caserule. - Added:
property-caserule. - Added:
selector-pseudo-class-caserule. - Added:
selector-pseudo-element-caserule. - Added:
unit-caserule. - Added:
value-keyword-caserule. - Added:
indentClosingBraceoption toindentation. - Added:
indentInsideParensoption toindentation. - Added:
consecutive-duplicatesoption fordeclaration-block-no-duplicate-propertiesrule. - Fixed:
block-no-emptyno longer delivers false positives for less syntax. - Fixed:
declaration-block-trailing-semicolonbetter understands nested at-rules. - Fixed:
number-zero-length-no-unitnow work withqunit and ignoress,ms,kHz,Hz,dpcm,dppx,dpiunits
5.4.0
- Added:
unit-no-unknownrule. - Fixed:
no-descending-specificityno longer gets confused when the last part of a selector is a compound selector. - Fixed: regression causing
indentationto complain about Sass maps. - Fixed:
declaration-block-no-ignored-propertiesnow ignoreclearforposition: absoluteandposition: relativeand does not ignorefloatondisplay: table-*.
5.3.0
- Added: (experimental) support for Less syntax.
- Added: support for SugarSS syntax.
- Added: exposed
stylelint.createRuleTester(). - Added:
declaration-block-no-ignored-propertiesrule. - Added:
function-max-empty-linesrule. - Added:
function-url-data-urisrule. - Fixed:
block-closing-brace-newline-afteraccepts single-line comments immediately after the closing brace. - Fixed:
block-closing-brace-newline-afteruse of "single space", rather than "newline", in its messages. - Fixed:
font-weight-notationnow ignoresinitialvalue. - Fixed:
function-*rules should all now ignore all Sass maps and lists. - Fixed:
function-calc-no-unspaced-operatoraccepts newlines. - Fixed:
function-comma-space-after,function-comma-space-before,function-parentheses-newline-insideandfunction-parentheses-space-insidenow ignore SCSS maps. - Fixed:
max-line-lengthoptions validation. - Fixed:
no-unknown-animationsnow ignoresnone,initial,inherit,unsetvalues. - Fixed:
property-value-blacklistand-whitelistno longer error on properties without a corresponding list entry. - Fixed:
selector-class-patternnow ignores selectors with Sass interpolation. - Fixed:
selector-id-patternnow ignores selectors with Sass interpolation. - Fixed:
selector-no-idnow ignores keyframe selectors. - Fixed:
unit-blacklistandunit-whitelistnow ignoresurlfunctions.
5.2.1
- Fixed:
function-calc-no-unspaced-operatornow better ignores non-calcfunctions. - Fixed:
no-descending-specificityno longer delivers false positives after second run in Atom linter. - Fixed:
stylelint-disable-ruleimported correctly.
5.2.0
- Added:
at-rule-semicolon-newline-afterrule. - Added:
no-indistinguishable-colorsrule. - Added:
stylelint-disable-reasonrule. - Fixed:
declaration-bang-space-*understands arbitrary bang declarations (e.g.!default). - Fixed:
font-weight-notationnow ignoreinheritvalue. - Fixed:
indentationtreats@nestat-rules like regular rules with selectors. - Fixed:
no-duplicate-selectorscontextualizes selectors by all at-rules, not just media queries. - Fixed:
no-duplicate-selectorsno longer delivers false positives after second run in Atom linter. - Fixed:
no-duplicate-selectorsno longer delivers false positives with descendant combinators. - Fixed:
number-no-trailing-zerosno longer delivers false positives inurl()arguments. - Fixed:
root-no-standard-propertiesno longer delivers false positives inside the:not()pseudo-selector. - Fixed:
selector-list-comma-*rules no longer deliver false positives inside functional notation.
5.1.0
- Added:
selector-type-caserule. - Fixed: no more subtle configuration bug when using extends and plugins together in tangled ways.
5.0.1
- Fixed:
string-no-newlineno longer stumbles when there are comment-starting characters inside strings.
5.0.0
- Removed:
no-indistinguishable-colorsbecause its dependencies were unusable in Atom. (To be re-evaluated and re-added later.) - Removed:
"warn": truesecondary option. Use"severity": "warning", instead. - Removed:
color-no-namedrule. Use the newcolor-namedrule, with the"never"option instead. - Removed:
declaration-block-no-single-linerule. Use the newblock-no-single-linerule instead. - Removed:
rule-no-duplicate-propertiesrule. Use the newdeclaration-block-no-duplicate-propertiesrule instead. - Removed:
rule-no-shorthand-property-overridesrule. Use the newdeclaration-block-no-shorthand-property-overridesrule instead. - Removed:
rule-properties-orderrule. Use the newdeclaration-block-properties-orderrule instead. - Removed:
rule-trailing-semicolonrule. Use the newdeclaration-block-trailing-semicolonrule instead. - Removed
trueoption foremptyLineBeforewhen using property groups inrule-properties-order. Use the new"always"or"never"option instead. - Removed:
"always"option forfont-weight-notation. Use the newalways-where-possibleoption instead. - Added: support for overlapping
stylelint-disablecommands. - Fixed:
max-nesting-depthdoes not warn about blockless at-rules. - Fixed:
function-comma-newline-afterand 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. - Fixed:
no-indistinguishable-colorsno longer errors on color functions containing spaces e.g.rgb(0, 0, 0)-- but also removed the rule (see above). - Fixed:
declaration-block-properties-orderno longer fails when an unspecified property comes before or after a specified property in a group withemptyLineBefore: true. - Fixed:
indentationno longer has false positives when there are empty lines within multi-line values. - Fixed:
declaration-colon-*-afterno longer fail to do their job when you want a space or newline after the colon and instead there is no space at all.
4.5.1
- Fixed:
no-unsupported-browser-featuresoptions now optional. - Fixed:
no-duplicate-selectorsnow ignores keyframe selectors.
4.5.0
- Deprecated:
"warn": truesecondary option. Use"severity": "warning", instead. - Deprecated:
color-no-namedrule. Use the newcolor-namedrule, with the"never"option instead. - Deprecated:
declaration-block-no-single-linerule. Use the newblock-no-single-linerule instead. - Deprecated:
rule-no-duplicate-propertiesrule. Use the newdeclaration-block-no-duplicate-propertiesrule instead. - Deprecated:
rule-no-shorthand-property-overridesrule. Use the newdeclaration-block-no-shorthand-property-overridesrule instead. - Deprecated:
rule-properties-orderrule. Use the newdeclaration-block-properties-orderrule instead. - Deprecated:
rule-trailing-semicolonrule. Use the newdeclaration-block-trailing-semicolonrule instead. - Deprecated
trueoption foremptyLineBeforewhen using property groups inrule-properties-order. Use the new"always"or"never"option instead. - Deprecated:
"always"option forfont-weight-notation. Use the newalways-where-possibleoption instead. - Added: universal
severitysecondary option as a replacement for"warn": trueto alter a rule's severity. - Added:
block-no-single-linerule. - Added:
color-namedrule. - Added:
declaration-block-no-duplicate-propertiesrule. - Added:
declaration-block-no-shorthand-property-overridesrule. - Added:
declaration-block-properties-orderrule. - Added:
declaration-block-trailing-semicolonrule. - Added:
max-nesting-depthrule. - Added:
no-browser-hacksrule. - Added:
no-descending-specificityrule. - Added:
no-indistinguishable-colorsrule. - Added:
no-unsupported-browser-featuresrule. - Added:
selector-max-specificityrule. - Added:
string-no-newlinerule. - Added:
"always"and"never"option torule-properties-orderemptyLineBeforewhen using property groups - Added:
named-where-possibleoption tofont-weight-notation. - Added:
unspecified: "bottomAlphabetical"option to therule-properties-orderrule. - Added:
ignoreAtRules: []option to theblock-opening-brace-space-beforeandblock-closing-brace-newline-afterrules. - Added: support for using the nesting selector (
&) as a prefix inselector-no-type. - Added:
stylelint-disable-linefeature. - Added:
withinComments,withinStrings, andcheckStringsoptions tostyleSearch, andinsideStringproperty to thestyleSearchmatch object. - Added:
resolveNestedSelectorsoption to theselector-class-patternrule. - Fixed: informative errors are thrown when
stylelint-disableis misused. - Fixed:
selector-no-vendor-prefixno longer delivers two warnings on vendor-prefixed pseudo-elements with two colons, e.g.::-moz-placeholder. - Fixed:
no-duplicate-selectorsrule now resolves nested selectors. - Fixed:
font-weight-notationdoes not throw false warnings whennormalis used in certain ways. - Fixed:
selector-no-*andselector-*-patternrules now ignore custom property sets. - Fixed: nested selector handling for
no-duplicate-selectors. - Fixed:
selector-no-iddoes not warn about Sass interpolation inside an:nth-child()argument. - Fixed: handling of mixed line endings in
rule-nested-empty-line-before,rule-non-nested-empty-line-before,comment-empty-line-beforeandat-rule-empty-line-before. - Fixed:
number-leading-zero,function-comma-space-*, anddeclaration-colon-*do not throw false positives inurl()arguments.
4.4.0
- Added:
ignore: "relative"option forfont-weight-notation. - Fixed:
declaration-colon-space/newline-before/afterrules now ignore scss maps. - Fixed:
selector-list-comma-newline-afterallows//comments after the comma.
4.3.6
- Fixed: removed
console.log()s inproperty-unit-whitelist.
4.3.5
- Fixed: removed
console.log()s inrule-properties-order.
4.3.4
- Fixed: option normalization for rules with primary options that are arrays of objects, like
rule-properties-order. - Fixed: accuracy of warning positions are
//comments when using SCSS parser. - Fixed:
no-unknown-animationsignores variables. - Fixed:
no-unknown-animationsdoes not erroneously flag functions likesteps()andcubic-bezier(). - Fixed: clarified error message in
time-no-imperceptible. - Fixed:
font-family-name-quotesandfont-weight-notationignore variables. - Fixed:
media-feature-no-missing-punctuationhandles space-padded media features. - Fixed: regression causing CLI
--configrelatives paths that don't start with./to be rejected.
4.3.3
- Fixed: again removed
stylelint.utils.ruleTesterbecause its dependencies broke things.
4.3.2
- Fixed: move
tapeto dependencies to supporttestUtils.
4.3.1
- Fixed: include
testUtilsin npm package whitelist.
4.3.0
- Added:
font-family-name-quotesrule. - Added:
font-weight-notationrule. - Added:
media-feature-no-missing-punctuationrule. - Added:
no-duplicate-selectorsrule. - Added:
no-invalid-double-slash-commentsrule. - Added:
no-unknown-animationsrule. - Added:
property-value-blacklistrule. - Added:
property-value-whitelistrule. - Added:
time-no-imperceptiblerule. - Added:
ignore: "descendant"andignore: "compounded"options forselector-no-type. - Added: support for regular expression property identification in
property-blacklist,property-unit-blacklist,property-unit-whitelist,property-value-blacklist, andproperty-whitelist. - Added: better handling of vendor prefixes in
property-unit-blacklistandproperty-unit-whitelist, e.g. if you enteranimationit now also checks-webkit-animation. - Added: support for using names of modules for the CLI's
--configargument, not just paths. - Added:
codeFilenameoption to Node.js API. - Added: exposed rules at
stylelint.rulesto make Stylelint even more extensible. - Added: brought
stylelint-rule-testerinto this repo, and exposed it atstylelint.utils.ruleTester. - Fixed: bug in
rule-properties-orderempty line detection when the two newlines were separated by some other whitespace. - Fixed: option parsing bug that caused problems when using the
"alphabetical"primary option withrule-properties-order. - Fixed: regard an empty string as a valid CSS code.
- Fixed:
ignoreFileshandling of absolute paths. - Fixed:
ignoreFilesuses theconfigBasediroption to interpret relative paths.
4.2.0
- Added: support for custom messages with a
messagesecondary property on any rule. - Fixed: CLI always ignores contents of
node_modulesandbower_componentsdirectories. - Fixed: bug preventing CLI from understanding absolute paths in
--configargument. - Fixed: bug causing
indentationto stumble over declarations with semicolons on their own lines.
4.1.0
- Added: helpful option validation message when object is expected but non-object provided.
- Fixed:
selector-no-idno longer warns about Sass interpolation when multiple interpolations are used in a selector.
4.0.0
- Removed: support for legacy numbered severities.
- Added: support for extensions on
.stylelintrcfiles (by upgrading cosmiconfig). - Added:
ignore: "non-comments"option tomax-line-length. - Fixed:
function-whitespace-afterdoes not expect space between)and}, so it handles Sass interpolation better.
3.2.3
- Fixed:
selector-no-vendor-prefixnow handles custom-property-sets.
3.2.2
- Fixed:
selector-no-typeignoresnth-childpseudo-classes and@keyframesselectors.
3.2.1
- Fixed:
max-line-lengthhandlesurl()functions better. - Fixed:
block-opening-brace-newline-afteranddeclaration-block-semicolon-newline-afterhandle end-of-line comments better.
3.2.0
- Added:
legacyNumberedSeveritiesconfig property to force the legacy severity system. - Added:
selector-no-idignores Sass-style interpolation. - Fixed: bug causing extended config to override the config that extends it.
3.1.4
- Fixed: stopped hijacking
--configproperty in PostCSS and Node.js APIs. Still using it in the CLI.
3.1.3
- Fixed: bug preventing the disabling of rules analyzing the
rootnode, including:max-line-length,max-empty-lines,no-eol-whitespace,no-missing-eof-newline, andstring-quotes. - Fixed: bug causing
rule-properties-orderto get confused by properties with an unspecified order.
3.1.2
- Fixed: bug causing an error when
nullwas used on rules whose primary options are arrays.
3.1.1
- Fixed: Documentation improvements.
3.1.0
- Added:
stylelint-commandsignoreoption tocomment-empty-line-before. - Fixed: v3 regression causing bug in
rule-properties-orderand potentially other rules that accept arrays as primary options. - Fixed:
no-missing-eof-newlineno longer complains about completely empty files.
3.0.3
- Fixed: list of rules within documentation.
3.0.0-3.0.2
- Removed:
nesting-block-opening-brace-space-beforeandnesting-block-opening-brace-newline-beforerules. - Deprecated: numbered severities (0, 1, 2) and will be disabled in
4.0. - Changed: renamed
rule-single-line-max-declarationstodeclaration-block-single-line-max-declarationsand changed scope of the single-line to the declaration block. - Changed: renamed
rule-no-single-linetodeclaration-block-no-single-lineand changed scope of the single-line to the declaration block. - Changed: renamed the
function-space-afterrule tofunction-whitespace-after. - Changed: renamed the
comment-space-insiderule tocomment-whitespace-inside. - Changed: renamed the
no-multiple-empty-linesrule tomax-empty-lines(takes anintas option). - Changed:
pluginsis now an array instead of an object. And plugins should be created withstylelint.createPlugin(). - Added: cosmiconfig, which means the following:
- support for YAML
.stylelintrc - support for
stylelint.config.js - support for
stylelintproperty inpackage.json - alternate config loading system, which stops at the first config found
- support for YAML
- Added: asynchronicity to the PostCSS plugin.
- Added:
ignoreFilesoption to config. - Added:
configFileoption to Node.js API. - Fixed:
comment-whitespace-insidenow ignores copyright (/*!) and sourcemap (/*#) comments. - Fixed:
rule-no-duplicate-propertiesnow ignores thesrcproperty.
2.3.7
- Fixed:
function-calc-no-unspaced-operatorignores characters in$sassand@lessvariables. - Fixed:
rule-properties-orderallows comments at the top of groups that expect newlines before them. - Fixed:
styleSearch()and the rules it powers will not trip up on single-line (//) comments. - Fixed:
selector-combinator-space-beforenow better handles nested selectors starting with combinators. - Fixed:
rule-properties-ordernow deals property with-moz-osx-font-smoothing.
2.3.6
- Fixed: improved documentation of CLI globbing possibilities.
- Fixed:
rule-properties-ordernow accounts for property names containing multiple hyphens. - Fixed:
rule-properties-ordergrouping bug.
2.3.5
- Added: error about undefined severities blaming Stylelint for the bug.
- Fixed:
selector-pseudo-element-colon-notationtypo in rule name resulting in undefined severity.
2.3.4
- Fixed:
dist/build.
2.3.3
- Fixed:
property-whitelist,rule-no-duplicate-properties, andrule-properties-orderignore variables ($sass,@less, and--custom-property). - Fixed:
root-no-standard-propertiesignores$sassand@lessvariables. - Fixed:
comment-empty-line-beforeandcomment-space-insideno longer complain about//comments.
2.3.2
- Fixed:
number-no-trailing-zerosno longer flags at-import at-rules.
2.3.1
- Fixed:
selector-no-typeno longer flags the nesting selector (&).
2.3.0
- Added:
configFileoption to PostCSS plugin. - Fixed:
function-parentheses-newline-insideandfunction-parentheses-space-insidebug with nested functions.
2.2.0
- Added:
selector-class-patternrule. - Added:
selector-id-patternrule. - Added:
function-parentheses-newline-insiderule. - Added:
"always-single-line"and"never-single-line"options tofunction-parentheses-space-inside. - Fixed: CLI
syntaxargument bug.
2.1.0
- Added:
color-no-hexrule. - Added:
color-no-namedrule. - Added:
function-blacklistrule. - Added:
function-whitelistrule. - Added:
unit-blacklistrule. - Added:
unit-whitelistrule. - Added:
property-unit-blacklistrule. - Added:
property-unit-whitelistrule. - Added:
rule-single-line-max-declarationsrule. - Added:
max-line-lengthrule. - Added:
first-nestedexception tocomment-empty-line-before. - Added: single value options to
*-blacklist&-*whitelistrules e.g.{ "function-blacklist": "calc"} - Added: support for flexible groups to
rule-properties-order. - Added: support for an optional empty line between each group to
rule-properties-order. - Added: support for mathematical signs in front of Sass and Less variables in
function-calc-no-unspaced-operator. - Added: support for arbitrary whitespace after function in
function-space-after. - Added: support for arbitrary whitespace at the edge of comments in
comment-space-inside. - Fixed:
comment-space-insideallows any number of asterisks at the beginning and end of comments. - Fixed: bug causing
{ unspecified: "bottom }"option not to be applied withinrule-properties-order. - Fixed: bug causing
function-comma-*whitespace rules to improperly judge whether to enforce single- or multi-line options. - Fixed: bug when loading plugins from an extended config
- Fixed: indentation for function arguments, by ignoring them.
2.0.0
- Changed: plugins are now included and configured via a "locator", rather than either being
requiredor being inserted directly into the configuration object as a function. - Added: CLI.
- Added: standalone Node.js API.
- Added: quiet mode to CLI and Node.js API.
- Added: support for formatters, including custom ones, to CLI and Node.js API.
- Added:
stringandjsonformatters. - Added: support for using
.stylelintrcJSON file. - Added: support for extending existing configs using the
extendsproperty. - Added: support for SCSS syntax parsing to CLI and Node.js API.
- Added:
function-comma-newline-afterrule. - Added:
function-comma-newline-beforerule. - Added:
"always-single-line"and"never-single-line"options tofunction-comma-space-afterrule. - Added:
"always-single-line"and"never-single-line"options tofunction-comma-space-beforerule.
1.2.1
- Fixed: the
media-query-list-comma-*rules now only apply to@mediastatements.
1.2.0
- Added:
function-linear-gradient-no-nonstandard-directionrule. - Added:
rule-properties-ordernow 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. - Added:
rule-properties-ordernow looks for roots of hyphenated properties in custom arrays so each extension (e.g.padding-topas an extension ofpadding) does not need to be specified individually. - Added:
"always-single-line"option todeclaration-colon-space-after. - Added: support for declarations directly on root (e.g. Sass variable declarations).
- Fixed:
declaration-colon-newline-after"always-multi-line"warning message.
1.1.0
- Added:
declaration-colon-newline-afterrule. - Added: the
indentationrule now checks indentation of multi-line at-rule params, unless there's theexceptoption ofparam. - Added: support for end-of-line comments in
selector-list-comma-newline-after. - Added: protection against
#${sass-interpolation}in rules checking for hex colors. - Added: support for strings (translated to RegExps) in
custom-property-patternandcustom-media-pattern. - Fixed: bug preventing various rules from registering the correct rule names in their warnings, and therefore also preventing them from being disabled with comments.
- Fixed: the
color-no-invalid-hexrule no longer flags hashes inurl()arguments. - Fixed: rules using
node.raw()instead ofnode.rawsto avoid expected errors.
1.0.1
- Fixed:
postcss-selector-parserupdated to improve location accuracy forselector-no-*rules.
1.0.0
- Removed: compatibility with PostCSS
4.x. - Added: compatibility with PostCSS
5.0.2+. - Fixed: the accuracy of reported line numbers and columns.
0.8.0
- Added:
after-commentignoreoption to theat-rule-empty-line-beforerule. - Fixed: the
indentationrule now correctly handles*hacks on property names. - Fixed: the
media-feature-colon-space-afterandmedia-feature-colon-space-beforerules now only apply to@mediastatements. - Fixed: the
rule-no-shorthand-property-overridesrule message is now consistent with the other messages.
0.7.0
- Added: invalid options cause the rule to abort instead of performing meaningless checks.
- Added: special warning for missing required options from
validateOptions().
0.6.2
- Fixed: npm package no longer includes test files (reducing package size by 500KB).
0.6.1
- Fixed: the
rule-properties-orderandrule-no-duplicate-propertiesrules now correctly check inside @rules.
0.6.0
- Added:
validateOptionstostylelint.utilsfor use by authors of custom rules. - Added:
custom-media-patternrule. - Added:
number-max-precisionrule.
0.5.0
- Added: validation of all rule options.
0.4.1
- Removed:
ruleTesterfromstylelint.utilsbecause of the additional dependencies it forces.
0.4.0
- Removed:
jsescdevDependency. - Added:
rule-no-shorthand-property-overridesrule. - Added:
ruleTestertostylelint.utilsfor use by authors of custom rules.
0.3.2
- Fixed:
hierarchicalSelectorsbug inindentationrule.
0.3.1
- Fixed:
~=is no longer mistaken for combinator inselector-combinator-space-*.
0.3.0
- Added: exposure of
report,ruleMessages, andstyleSearchinstylelint.utilsfor use by external plugin rules. - Added: plugin rule support.
- Added:
hierarchicalSelectorsoption toindentationrule. - Added:
nesting-block-opening-brace-space-beforerule. - Added:
nesting-block-opening-brace-newline-beforerule. - Fixed: the
color-hex-caserule message is now consistent with thecolor-hex-lengthrule. - Fixed: the
property-blacklistrule message is now consistent with theproperty-whitelistrule. - Fixed: a typo in the
comment-space-insiderule message.
0.2.0
- Added:
color-hex-caserule. - Added:
color-hex-lengthrule. - Fixed: formalized selector-indentation-checking within the
indentationrule. - Fixed: allow for arbitrary whitespace after the newline in the
selector-list-comma-newline-*rules. - Fixed:
selector-combinator-space-*no longer checks:nth-child()arguments.
0.1.2
- Fixed: nesting support for the
block-opening-brace-newline-beforerule. - Fixed: nesting support for the
block-opening-brace-space-beforerule. - Fixed: nesting support for the
rule-trailing-semicolonrule.
0.1.1
- Fixed: nesting support for the
rule-no-duplicate-propertiesrule. - Fixed: nesting support for the
rule-properties-orderrule. - Fixed: whitespace rules accommodate Windows CR-LF line endings.
0.1.0
- Added: ability to disable rules via comments in the CSS.
- Added:
at-rule-empty-line-beforerule. - Added:
at-rule-no-vendor-prefixrule. - Added:
block-closing-brace-newline-afterrule. - Added:
block-closing-brace-newline-beforerule. - Added:
block-closing-brace-space-afterrule. - Added:
block-closing-brace-space-beforerule. - Added:
block-no-emptyrule. - Added:
block-opening-brace-newline-afterrule. - Added:
block-opening-brace-newline-beforerule. - Added:
block-opening-brace-space-afterrule. - Added:
block-opening-brace-space-beforerule. - Added:
color-no-invalid-hexrule. - Added:
comment-empty-line-beforerule. - Added:
comment-space-insiderule. - Added:
custom-property-no-outside-rootrule. - Added:
custom-property-patternrule. - Added:
declaration-bang-space-afterrule. - Added:
declaration-bang-space-beforerule. - Added:
declaration-block-semicolon-newline-afterrule. - Added:
declaration-block-semicolon-newline-beforerule. - Added:
declaration-block-semicolon-space-afterrule. - Added:
declaration-block-semicolon-space-beforerule. - Added:
declaration-colon-space-afterrule. - Added:
declaration-colon-space-beforerule. - Added:
declaration-no-importantrule. - Added:
function-calc-no-unspaced-operatorrule. - Added:
function-comma-space-afterrule. - Added:
function-comma-space-beforerule. - Added:
function-parentheses-space-insiderule. - Added:
function-space-afterrule. - Added:
function-url-quotesrule. - Added:
indentationrule. - Added:
media-feature-colon-space-afterrule. - Added:
media-feature-colon-space-beforerule. - Added:
media-feature-name-no-vendor-prefixrule. - Added:
media-feature-range-operator-space-afterrule. - Added:
media-feature-range-operator-space-beforerule. - Added:
media-query-list-comma-newline-afterrule. - Added:
media-query-list-comma-newline-beforerule. - Added:
media-query-list-comma-space-afterrule. - Added:
media-query-list-comma-space-beforerule. - Added:
media-query-parentheses-space-insiderule. - Added:
no-eol-whitespacerule. - Added:
no-missing-eof-newlinerule. - Added:
no-multiple-empty-linesrule. - Added:
number-leading-zerorule. - Added:
number-no-trailing-zerosrule. - Added:
number-zero-length-no-unitrule. - Added:
property-blacklistrule. - Added:
property-no-vendor-prefixrule. - Added:
property-whitelistrule. - Added:
root-no-standard-propertiesrule. - Added:
rule-nested-empty-line-beforerule. - Added:
rule-no-duplicate-propertiesrule. - Added:
rule-no-single-linerule. - Added:
rule-non-nested-empty-line-beforerule. - Added:
rule-properties-orderrule. - Added:
rule-trailing-semicolonrule. - Added:
selector-combinator-space-afterrule. - Added:
selector-combinator-space-beforerule. - Added:
selector-list-comma-newline-afterrule. - Added:
selector-list-comma-newline-beforerule. - Added:
selector-list-comma-space-afterrule. - Added:
selector-list-comma-space-beforerule. - Added:
selector-no-attributerule. - Added:
selector-no-combinatorrule. - Added:
selector-no-idrule. - Added:
selector-no-typerule. - Added:
selector-no-universalrule. - Added:
selector-no-vendor-prefixrule. - Added:
selector-pseudo-element-colon-notationrule. - Added:
selector-root-no-compositionrule. - Added:
string-quotesrule. - Added:
value-list-comma-newline-afterrule. - Added:
value-list-comma-newline-beforerule. - Added:
value-list-comma-space-afterrule. - Added:
value-list-comma-space-beforerule. - Added:
value-no-vendor-prefixrule.