Rules — overview
Plumb’s rules are the catalog of design-system checks the engine runs against each page snapshot. Every rule has:
- A stable id, slash-separated (
<category>/<id>). - A default severity (
info,warning,error). - A docs page — the one you get from
plumb explain <id>.
Built-in rules
a11y/touch-target— flags interactive elements smaller thana11y.touch_target.baseline/rhythm— flags text whose typographic baselines miss the configured vertical-rhythm grid.color/contrast-aa— flags text whose foreground/background contrast misses WCAG 2.1 AA.color/palette-conformance— flags element colors that aren’t members of the configured palette.edge/near-alignment— flags element edges that almost-but-not-quite line up with sibling edges.opacity/scale-conformance— flags opacity values that aren’t members ofopacity.scale.radius/scale-conformance— flags border-radius values that aren’t members ofradius.scale.shadow/scale-conformance— flags box-shadow values that aren’t inshadow.scale.sibling/height-consistency— flags sibling elements in the same visual row whose heights drift from the row’s median.sibling/padding-consistency— flags sibling elements whose padding drifts from the group median.spacing/grid-conformance— flags spacing values that aren’t multiples ofspacing.base_unit.spacing/scale-conformance— flags spacing values that aren’t members ofspacing.scale.type/family-conformance— flagsfont-familyvalues that aren’t intype.families.type/scale-conformance— flagsfont-sizevalues that aren’t members oftype.scale.type/weight-conformance— flagsfont-weightvalues that aren’t intype.weights.z/scale-conformance— flags z-index values that aren’t inz_index.scale.