Design system
tokens.css defines everything; system.css spends it.
Colour is authored in OKLCH so a ramp built by walking lightness produces
steps that look evenly spaced — and so an entire project can be
reskinned by changing one number.
Colour
Drag these. Every swatch, button, shadow and focus ring on this page is derived from the two hue values below — nothing is hardcoded.
:root { --hue-brand: 34; --hue-accent: 288; }
Type
Fraunces for anything meant to be read as a voice; Inter Tight for anything
meant to be read as an interface. Every size is a clamp(), so no
breakpoint ever touches a font size again.
Handsome is as handsome does
How vexingly quick daft zebras jump. The five boxing wizards jump quickly, and the job requires extra pluck.
Sphinx of black quartz, judge my vow. Two driven jocks help fax my big quiz, and the public never once suspected a thing about any of it.
Waltz, bad nymph, for quick jigs vex.
Section label
const limitingMagnitude = 6.7 - lightPollution * 4.6;
Components
<link rel="stylesheet" href="/css/tokens.css">
<link rel="stylesheet" href="/css/system.css">
<!-- reskin the whole project -->
<style>:root { --hue-brand: 250; --hue-accent: 180; }</style>