Reset
The porchlight.reset layer is minimal browser normalization —
no normalize.css, no opinionated defaults. :where() keeps
every rule at zero specificity so it is trivially overridable.
What it normalizes
box-sizing: border-boxon everything.color-scheme: light darkand 100% text-size adjust onhtml.margin: 0andmin-block-size: 100dvbonbody.- Replaced elements (
img,svg,video) are block and width-constrained. - Form controls inherit font and color.
touch-action: manipulationon interactive controls (no 300ms tap delay).tableuses separated borders with zero spacing.[hidden]is forcibly removed from the render tree.
Raw sample
A handful of unstyled elements, to confirm the reset loads cleanly:
| Column | Column |
|---|---|
| Cell | Cell |
Layer order
Declared in 00-layer-order.css; only reset is populated yet.
-
resetMinimal browser normalization -
tokensPrimitive and semantic design tokens -
themesTheme, brand, density, contrast, mode overrides -
baseHTML element defaults -
layoutLayout primitives and page/app shells -
componentsComponent classes -
utilitiesSmall single-purpose helpers -
enhancementsProgressive @supports-gated features -
printPrint behavior