npm.io
1.2.0 • Published 15h ago

stylelint-config-plus

Licence
MIT
Version
1.2.0
Deps
5
Size
80 kB
Vulns
0
Weekly
0
Stars
1

stylelint-config-plus

Install

npm i stylelint-config-plus -D

Usage

ESM
// stylelint.config.js
export default {
    extends: ['stylelint-config-plus']
};
CommonJS
// stylelint.config.cjs
module.exports = {
    extends: ['stylelint-config-plus']
};

Rules

Base on stylelint@17.14.1 (8/22/2026)

Rules Count
All rules 214
Defined in plus 154 72.0%
Undefined 60 28.0%
Recommended + Standard 82 38.3%
Fixable 106 49.5%
Stylistic 65 30.4%

Details

Rules Type Enabled Value
1 alpha-value-notation
Details["percentage",{"exceptProperties":["opacity","fill-opacity","flood-opacity","stop-opacity","stroke-opacity"]}]
2 annotation-no-unknown true
3 at-rule-allowed-list
4 at-rule-descriptor-no-unknown true
5 at-rule-descriptor-value-no-unknown true
6 at-rule-disallowed-list
7 at-rule-empty-line-before
Details["always",{"except":["blockless-after-same-name-blockless","first-nested"],"ignore":["after-comment"]}]
8 at-rule-no-deprecated true
9 at-rule-no-unknown
Details[true,{"ignoreAtRules":["at-root","content","debug","each","else","else if","error","extend","for","forward","function","if","import","include","media","mixin","return","use","warn","while"]}]
10 at-rule-no-vendor-prefix true
11 at-rule-prelude-no-invalid [true,{"ignoreAtRules":["media"]}]
12 at-rule-property-required-list
13 block-no-empty true
14 block-no-redundant-nested-style-rules true
15 color-function-alias-notation "without-alpha"
16 color-function-notation "modern"
17 color-hex-alpha
18 color-hex-length "short"
19 color-named
20 color-no-hex
21 color-no-invalid-hex
22 comment-empty-line-before
Details["always",{"except":["first-nested"],"ignore":["stylelint-commands"]}]
23 comment-no-empty true
24 comment-pattern
25 comment-whitespace-inside "always"
26 comment-word-disallowed-list
27 container-name-pattern
Details["^(--)?([a-z][a-z0-9]*)(-[a-z0-9]+)*$",{"message":"(name) => \"Expected container name \"${name}\" to be kebab-case\""}]
28 custom-media-pattern
Details["^([a-z][a-z0-9]*)(-[a-z0-9]+)*$",{"message":"(name) => \"Expected custom media query name \"${name}\" to be kebab-case\""}]
29 custom-property-empty-line-before
Details["always",{"except":["after-custom-property","first-nested"],"ignore":["after-comment","inside-single-line-block"]}]
30 custom-property-no-missing-var-function true
31 custom-property-pattern
Details["^([a-z][a-z0-9]*)(-[a-z0-9]+)*$",{"message":"(name) => \"Expected custom property name \"${name}\" to be kebab-case\""}]
32 declaration-block-no-duplicate-custom-properties true
33 declaration-block-no-duplicate-properties
Details[true,{"ignore":["consecutive-duplicates-with-different-syntaxes"]}]
34 declaration-block-no-redundant-longhand-properties true
35 declaration-block-no-shorthand-property-overrides true
36 declaration-block-single-line-max-declarations 1
37 declaration-empty-line-before
Details["always",{"except":["after-declaration","first-nested"],"ignore":["after-comment","inside-single-line-block"]}]
38 declaration-no-important
39 declaration-property-max-values
40 declaration-property-unit-allowed-list
41 declaration-property-unit-disallowed-list
42 declaration-property-value-allowed-list
43 declaration-property-value-disallowed-list
44 declaration-property-value-keyword-no-deprecated true
45 declaration-property-value-no-unknown true
46 display-notation undefined
47 font-family-name-quotes "always-where-recommended"
48 font-family-no-duplicate-names true
49 font-family-no-missing-generic-family-keyword null
50 font-weight-notation undefined
51 function-allowed-list
52 function-calc-no-unspaced-operator true
53 function-disallowed-list
54 function-linear-gradient-no-nonstandard-direction
55 function-name-case "lower"
56 function-no-unknown
57 function-url-no-scheme-relative
58 function-url-quotes "always"
59 function-url-scheme-allowed-list
60 function-url-scheme-disallowed-list
61 hue-degree-notation "angle"
62 import-notation "url"
63 keyframe-block-no-duplicate-selectors true
64 keyframe-declaration-no-important true
65 keyframe-selector-notation
Details"percentage-unless-within-keyword-only-block"
66 keyframes-name-pattern
Details["^([a-z][a-z0-9]*)(-[a-z0-9]+)*$",{"message":"(name) => \"Expected keyframe name \"${name}\" to be kebab-case\""}]
67 layer-name-pattern
Details["^([a-z][a-z0-9]*)([.-][a-z0-9]+)*$",{"message":"(name) => \"Expected layer name \"${name}\" to be kebab-case\""}]
68 length-zero-no-unit
Details[true,{"ignore":["custom-properties"]}]
69 lightness-notation "percentage"
70 max-nesting-depth
71 media-feature-name-allowed-list
72 media-feature-name-disallowed-list
73 media-feature-name-no-unknown true
74 media-feature-name-no-vendor-prefix true
75 media-feature-name-unit-allowed-list
76 media-feature-name-value-allowed-list
77 media-feature-name-value-no-unknown true
78 media-feature-range-notation "context"
79 media-query-no-invalid true
80 media-type-no-deprecated true
81 named-grid-areas-no-invalid true
82 nesting-selector-no-missing-scoping-root true
83 no-descending-specificity true
84 no-duplicate-at-import-rules true
85 no-duplicate-selectors true
86 no-empty-source true
87 no-invalid-double-slash-comments true
88 no-invalid-position-at-import-rule true
89 no-invalid-position-declaration true
90 no-irregular-whitespace true
91 no-unknown-animations
92 no-unknown-custom-media
93 no-unknown-custom-properties
94 number-max-precision 4
95 property-allowed-list
96 property-disallowed-list
97 property-layout-mappings undefined
98 property-no-deprecated true
99 property-no-unknown true
100 property-no-vendor-prefix true
101 relative-selector-nesting-notation undefined
102 rule-empty-line-before
Details["always-multi-line",{"except":["first-nested"],"ignore":["after-comment"]}]
103 rule-nesting-at-rule-required-list
104 rule-selector-property-disallowed-list
105 selector-anb-no-unmatchable true
106 selector-attribute-name-disallowed-list
107 selector-attribute-operator-allowed-list
108 selector-attribute-operator-disallowed-list
109 selector-attribute-quotes "always"
110 selector-class-pattern
Details["^([a-z][a-z0-9]*)(-[a-z0-9]+)*$",{"message":"(selector) => \"Expected class selector \"${selector}\" to be kebab-case\""}]
111 selector-combinator-allowed-list
112 selector-combinator-disallowed-list
113 selector-disallowed-list
114 selector-id-pattern
Details["^([a-z][a-z0-9]*)(-[a-z0-9]+)*$",{"message":"(selector) => \"Expected id selector \"${selector}\" to be kebab-case\""}]
115 selector-max-attribute
116 selector-max-class
117 selector-max-combinators
118 selector-max-compound-selectors
119 selector-max-id
120 selector-max-pseudo-class
121 selector-max-specificity
122 selector-max-type
123 selector-max-universal
124 selector-nested-pattern
125 selector-no-deprecated undefined
126 selector-no-invalid
127 selector-no-qualifying-type
128 selector-no-vendor-prefix true
129 selector-not-notation "complex"
130 selector-pseudo-class-allowed-list
131 selector-pseudo-class-disallowed-list
132 selector-pseudo-class-no-unknown
Details[true,{"ignorePseudoClasses":["deep","global"]}]
133 selector-pseudo-element-allowed-list
134 selector-pseudo-element-colon-notation "double"
135 selector-pseudo-element-disallowed-list
136 selector-pseudo-element-no-unknown true
137 selector-type-case "lower"
138 selector-type-no-unknown
Details[true,{"ignore":["custom-elements"]}]
139 shorthand-property-no-redundant-values true
140 string-no-newline
Details[true,{"ignore":["at-rule-preludes","declaration-values"]}]
141 syntax-string-no-invalid true
142 time-min-milliseconds
143 unit-allowed-list
144 unit-disallowed-list
145 unit-layout-mappings undefined
146 unit-no-unknown
147 value-keyword-case "lower"
148 value-keyword-layout-mappings undefined
149 value-no-vendor-prefix
Details[true,{"ignoreValues":["box","inline-box"]}]
150 @stylistic/at-rule-name-case "lower"
151 @stylistic/at-rule-name-space-after "always-single-line"
152 @stylistic/at-rule-semicolon-newline-after "always"
153 @stylistic/block-closing-brace-empty-line-before "never"
154 @stylistic/block-closing-brace-newline-after "always"
155 @stylistic/block-closing-brace-newline-before "always-multi-line"
156 @stylistic/block-closing-brace-space-before "always-single-line"
157 @stylistic/block-opening-brace-newline-after "always-multi-line"
158 @stylistic/block-opening-brace-space-after "always-single-line"
159 @stylistic/block-opening-brace-space-before "always"
160 @stylistic/color-hex-case "lower"
161 @stylistic/declaration-bang-space-after "never"
162 @stylistic/declaration-bang-space-before "always"
163 @stylistic/declaration-block-semicolon-newline-after "always"
164 @stylistic/declaration-block-semicolon-space-after "always-single-line"
165 @stylistic/declaration-block-semicolon-space-before "never"
166 @stylistic/declaration-block-trailing-semicolon "always"
167 @stylistic/declaration-colon-newline-after "always-multi-line"
168 @stylistic/declaration-colon-space-after "always-single-line"
169 @stylistic/declaration-colon-space-before "never"
170 @stylistic/function-comma-newline-after "always-multi-line"
171 @stylistic/function-comma-space-after "always-single-line"
172 @stylistic/function-comma-space-before "never"
173 @stylistic/function-max-empty-lines 0
174 @stylistic/function-parentheses-newline-inside "always-multi-line"
175 @stylistic/function-parentheses-space-inside "never-single-line"
176 @stylistic/function-whitespace-after "always"
177 @stylistic/indentation 4
178 @stylistic/max-empty-lines 1
179 @stylistic/max-line-length 120
180 @stylistic/media-feature-colon-space-after "always"
181 @stylistic/media-feature-colon-space-before "never"
182 @stylistic/media-feature-name-case "lower"
183 @stylistic/media-feature-parentheses-space-inside "never"
184 @stylistic/media-feature-range-operator-space-after "always"
185 @stylistic/media-feature-range-operator-space-before "always"
186 @stylistic/media-query-list-comma-newline-after "always-multi-line"
187 @stylistic/media-query-list-comma-space-after "always-single-line"
188 @stylistic/media-query-list-comma-space-before "never"
189 @stylistic/no-empty-first-line true
190 @stylistic/no-eol-whitespace true
191 @stylistic/no-extra-semicolons true
192 @stylistic/no-missing-end-of-source-newline true
193 @stylistic/no-multiple-whitespaces true
194 @stylistic/number-leading-zero "always"
195 @stylistic/number-no-trailing-zeros true
196 @stylistic/property-case "lower"
197 @stylistic/selector-attribute-brackets-space-inside "never"
198 @stylistic/selector-attribute-operator-space-after "never"
199 @stylistic/selector-attribute-operator-space-before "never"
200 @stylistic/selector-combinator-space-after "always"
201 @stylistic/selector-combinator-space-before "always"
202 @stylistic/selector-descendant-combinator-no-non-space true
203 @stylistic/selector-list-comma-newline-after "always"
204 @stylistic/selector-list-comma-space-before "never"
205 @stylistic/selector-max-empty-lines 0
206 @stylistic/selector-pseudo-class-case "lower"
207 @stylistic/selector-pseudo-class-parentheses-space-inside "never"
208 @stylistic/selector-pseudo-element-case "lower"
209 @stylistic/string-quotes "double"
210 @stylistic/unit-case "lower"
211 @stylistic/value-list-comma-newline-after "always-multi-line"
212 @stylistic/value-list-comma-space-after "always-single-line"
213 @stylistic/value-list-comma-space-before "never"
214 @stylistic/value-list-max-empty-lines 0

Changelog

CHANGELOG.md