# 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. The [`message` secondary option](../../../docs/user-guide/configure.md#message) can accept the arguments of this rule. ## Options `int`: Maximum type selectors allowed. For example, with `2`: The following patterns are considered problems: ```css div a span {} ``` ```css div a { & span {} } ``` ```css div a { & > a {} } ``` The following patterns are _not_ considered problems: ```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", "custom-elements", "descendant", "next-sibling"]` #### `"child"` Discount child type selectors. For example, with `2`: The following patterns are _not_ considered problems: ```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 problems: ```css div span a.foo {} ``` ```css div span a#bar {} ``` #### `"custom-elements"` Discount custom elements. For example, with `2`: The following pattern is _not_ considered a problem: ```css div a foo-bar {} ``` #### `"descendant"` Discount descendant type selectors. For example, with `2`: The following patterns are _not_ considered problems: ```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 problems: ```css div a + span {} ``` ```css #bar + div + span + a + span {} ``` ### `ignoreTypes: ["/regex/", /regex/, "non-regex"]` Given: ```json ["/^my-/", "custom"] ``` For example, with `2`. The following patterns are _not_ considered problems: ```css div a custom {} ``` ```css div a my-type {} ``` ```css div a my-other-type {} ```