# selector-max-type Limit the number of type selectors in a selector. ```css a {} /** ↑ * This type of selector */ ``` This rule resolves nested selectors before counting the number of type selectors. Each selector in a [selector list](https://www.w3.org/TR/selectors4/#selector-list) is evaluated separately. The `:not()` pseudo-class is also evaluated separately. The rule processes the argument as if it were an independent selector, and the result does not count toward the total for the entire selector. ## Options `int`: Maximum type selectors allowed. For example, with `2`: The following patterns are considered violations: ```css div a span {} ``` ```css div a { & span {} } ``` ```css div a { & > a {} } ``` The following patterns are _not_ considered violations: ```css div {} ``` ```css div a {} ``` ```css .foo div a {} ``` ```css div.foo a {} ``` ```css /* each selector in a selector list is evaluated separately */ div, a span {} ``` ```css /* `span` is inside `:not()`, so it is evaluated separately */ div a .foo:not(span) {} ``` ## Optional secondary options ### `ignore: ["child", "compounded", "descendant", "next-sibling"]` #### `"child"` Discount child type selectors. For example, with `2`: The following patterns are _not_ considered violations: ```css div span > a {} ``` ```css #bar div span > a {} ``` #### `"compounded"` Discount compounded type selectors -- i.e. type selectors chained with other selectors. For example, with `2`: The following patterns are _not_ considered violations: ```css div span a.foo {} ``` ```css div span a#bar {} ``` #### `"descendant"` Discount descendant type selectors. For example, with `2`: The following patterns are _not_ considered violations: ```css .foo div span a {} ``` ```css #bar div span a {} ``` #### `"next-sibling"` Discount next-sibling type selectors. For example, with `2`: The following patterns are _not_ considered violations: ```css div a + span {} ``` ```css #bar + div + span + a + span {} ``` ### `ignoreTypes: ["/regex/", /regex/, "string"]` Given: ``` ["/^my-/", "custom"] ``` For example, with `2`. The following patterns are _not_ considered violations: ```css div a custom {} ``` ```css div a my-type {} ``` ```css div a my-other-type {} ```