CSS Doctor / Rule reference 1.0.0
Active diagnostic rules
Read what each of the 21 rules detects, the evidence it uses, its patch safety, and where manual review remains necessary.
Open CSS DoctorSpecificity conflict
Multiple declarations match the same element and property, and a stronger or later rule wins.
HYBRID · v1.0.0Duplicate declaration
The same property appears more than once in one rule, so the later value overrides the earlier value.
STATIC · v1.0.0Unscoped global selector
A bare element selector affects every matching element on the page.
STATIC · v1.0.0Document horizontal overflow
The preview has a scroll width larger than its viewport.
RUNTIME · v1.0.0Element outside the viewport
An element boundary extends beyond the current viewport.
RUNTIME · v1.0.0Fixed width exceeds its container
A fixed pixel width or minimum width can exceed the selected viewport.
HYBRID · v1.0.0Flex item cannot shrink
A flex item keeps its automatic minimum size and cannot shrink around long content.
HYBRID · v1.0.0Unbreakable content overflow
A long URL or unbroken string exceeds its content box.
RUNTIME · v1.0.0Intrinsic media overflow
Media is wider than its container and lacks a maximum-width constraint.
HYBRID · v1.0.0Sticky element has no inset
The element uses position: sticky without an inset such as top.
HYBRID · v1.0.0Overflow ancestor constrains sticky
An ancestor with overflow auto, scroll, or hidden changes the sticky container.
RUNTIME · v1.0.0Sticky element has no scroll range
The sticky container is not taller than the sticky element, leaving no travel range.
RUNTIME · v1.0.0Element is trapped in a stacking context
A high z-index remains constrained by an ancestor stacking context.
RUNTIME · v1.0.0z-index has no effect
The element has z-index but is neither positioned nor a flex/grid item.
HYBRID · v1.0.0Mobile 100vh risk
A lone 100vh height can misalign with dynamic mobile browser chrome.
HYBRID · v1.0.0Keyboard focus is not visible
Focusing an interactive element produces no observable visual indicator.
RUNTIME · v1.0.0Duplicate HTML ID
The same ID appears more than once, making labels and anchors ambiguous.
STATIC · v1.0.0Reduced-motion alternative is missing
Animation is present without a prefers-reduced-motion alternative.
STATIC · v1.0.0Leading dot in Gutenberg class field
Enter the class without a dot in Gutenberg and use the dot only in CSS.
STATIC · v1.0.0Unscoped WordPress block override
A bare .wp-block-* selector affects every matching core block.
STATIC · v1.0.0WordPress theme CSS collision
A WordPress selector or important declaration wins over the custom rule.
HYBRID · v1.0.0