ADR-0100 The instrument treatment on components
#Context
ADR-0098 set the palette and ADR-0099 the faces. The approved component sheet also changes how components draw: near-square corners, the alert as a strip with a rule, a hard offset shadow on overlays only, titles in the display face, and figures in mono. The maintainer left three details to the author (ADR-0098).
#Decision
- Corners take the smallest step, and keep their meaning. ADR-0045 made
a turned corner mean "this accepts input", and that rule stays: nothing that cannot be acted on turns a corner. What changes is the step. Both densities now select radius-control step 0 (0.125rem), so the set reads square at a glance, as the sheet shows, and a control still carries its cue.
- The alert's edge is a rule across the top. Its weight still climbs
with the level. The box perimeter becomes the instrument's strip.
- Only an overlay casts a shadow. The modal sheet casts a hard offset in
its own mark, twice its edge, with no blur. The popover stays shadowless, because ADR-0013 defines the raised context as "never a shadow".
- Titles take the display role, set in caps: the page header title, the
shell header name and the modal lead. The page header title and shell header name move from the body size to the lead size (1.563rem), to meet the display floor of 24px. Section headings stay in the body face. Setting them in caps in the field themes only needs theme-conditional styling, which is follow-up work.
- Figures that line up take the mono role: the meter reading, the SLA
countdown, staleness elapsed time, the pagination range and the number input. The code snippet is excluded, because its body is a content region the budget exempts, and the component tier does not style what the budget exempts.
- Components read type through their own tier. A new
familysource
aliases a role into the component tier, and --wr-<component>-<part>-family resolves to --wr-family-<role> with no fallback. The raw-family check accepts those aliases, and section 7 checks each one against a declared role.
#Consequences
- Fixtures render in the engine's metric face, and they load no family
stylesheet, so a family alias leaves the face inherited. The caps and the size changes still move values. No scene's declared verdict changed in either set. Both baselines are re-recorded.
- The proof app does not load the family stylesheet yet. Its captures would
inline font URLs that no fixture can resolve, which would make the measurement depend on machine fonts.
#Rejected
- Fully square controls. They would retire ADR-0045's cue, and an
oversight screen benefits from knowing what can be acted on.
- A shadow on the popover. ADR-0013 rules it out for the raised context.
- Mono on the code snippet body. It is budget-exempt content.