#selector-max-id

Limit the number of ID selectors in a selector.

    #foo {}
/** ↑
 * This type of selector */

This rule resolves nested selectors before counting the number of ID selectors. Each selector in a 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 universal selectors allowed.

For example, with 2:

The following patterns are considered violations:

#foo #bar #baz {}
#foo #bar {
  & #baz {}
}
#foo #bar {
  & > #bar {}
}

The following patterns are not considered violations:

#foo {}
#foo #bar {}
.foo #foo {}
#foo.foo #bar {}
/* each selector in a selector list is evaluated separately */
#foo,
#baz #quux {}
/* `#bar` is inside `:not()`, so it is evaluated separately */
#foo #bar:not(#baz) {}