Base layer

Element defaults in @layer porchlight.base — bare HTML gets a sensible, on-token appearance before any component class is applied. All rules are :where() (zero specificity), so they are trivially overridable. Color and type come from the token layers; theme/density/ forced-colors come from 03-themes.

What the base layer does

Type scale (fluid)

Each size uses clamp() with viewport-inline units — resize the window to see them flex.

--pl-text-xs
Porchlight xs
--pl-text-sm
Porchlight sm
--pl-text-md
Porchlight md
--pl-text-lg
Porchlight lg
--pl-text-xl
Porchlight xl

Elements

Heading level 3

A paragraph with a link, some inline code, and a kbd keycap. Try selecting this text to see the accent-tinted ::selection.