.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / stylelint / lib / rules / selector-max-specificity / README.md
1 # selector-max-specificity
2
3 Limit the specificity of selectors.
4
5 ```css
6     .foo, #bar.baz span, #hoo { color: pink; }
7 /** ↑     ↑              ↑
8  * Each of these selectors */
9 ```
10
11 Visit the [Specificity Calculator](https://specificity.keegan.st) for visual representation of selector specificity.
12
13 This rule ignores selectors with variable interpolation (`#{$var}`, `@{var}`, `$(var)`).
14
15 This rule resolves nested selectors before calculating the specificity of a selector.
16
17 ## Options
18
19 `string`: Maximum specificity allowed.
20
21 Format is `"id,class,type"`, as laid out in the [W3C selector spec](https://drafts.csswg.org/selectors/#specificity-rules).
22
23 For example, with `"0,2,0"`:
24
25 The following patterns are considered violations:
26
27 ```css
28 #foo {}
29 ```
30
31 ```css
32 .foo .baz .bar {}
33 ```
34
35 ```css
36 .foo .baz {
37   & .bar {}
38 }
39 ```
40
41 ```css
42 .foo {
43   color: red;
44   @nest .baz .bar & {
45     color: blue;
46   }
47 }
48 ```
49
50 The following patterns are *not* considered violations:
51
52 ```css
53 div {}
54 ```
55
56 ```css
57 .foo div {}
58 ```
59
60 ```css
61 .foo div {
62   & div a {}
63 }
64 ```
65
66 ```css
67 .foo {
68   & .baz {}
69 }
70 ```
71
72 ```css
73 .foo {
74   color: red;
75   @nest .baz & {
76     color: blue;
77   }
78 }
79 ```
80
81 ## Optional secondary options
82
83 ### `ignoreSelectors: ["/regex/", "string"]`
84
85 Given:
86
87 ```js
88 ["0,2,0", {
89   ignoreSelectors: [":global", ":local", "/my-/"]
90 }];
91 ```
92
93 The following patterns are *not* considered violations:
94
95 ```css
96 :global(.foo) .bar {}
97 ```
98
99 ```css
100 :local(.foo.bar)
101 ```
102
103 ```css
104 :local(.foo, :global(.bar).baz)
105 ```
106
107 The following patterns are considered violations:
108
109 ```css
110 :global(.foo) .bar.baz {}
111 ```
112
113 ```css
114 :local(.foo.bar.baz)
115 ```
116
117 ```css
118 :local(.foo, :global(.bar), .foo.bar.baz)
119 ```