Design system

The tokens, type, surfaces, motion and components this site is built from — every example below is the real thing, not a picture of it.

Colour

20 tokens

Monochrome in two themes, with one green accent (blue on the heatmap). Each chip shows light on the left, dark on the right.

  • --bg

    #fcfcfb / #08080a

  • --fg

    #111111 / #f0f0f0

  • --muted

    #555555 / #a0a0a0

  • --soft

    #8a8a8a / #6b6b6b

  • --line

    rgb(0 0 0 / 0.1) / rgb(255 255 255 / 0.1)

  • --stripe

    rgb(0 0 0 / 0.055) / rgb(255 255 255 / 0.055)

  • --hover

    rgb(0 0 0 / 0.03) / rgb(255 255 255 / 0.04)

  • --card

    #ffffff / #0f0f10

  • --chip

    #f4f4f5 / #161617

  • --tooltip

    #1e1e20

  • --tooltip-fg

    #f0f0f0

  • --tooltip-muted

    #8a8a8a

  • --accent

    #16a34a / #4ade80

  • --accent [data-heat="blue"]

    #2563eb / #60a5fa

  • --glass

    rgb(255 255 255 / 0.3) / rgb(24 24 27 / 0.3)

  • --glass-rim

    rgb(255 255 255 / 0.9) / rgb(255 255 255 / 0.28)

  • --glass-edge

    rgb(0 0 0 / 0.08) / rgb(255 255 255 / 0.06)

  • --glass-glow

    rgb(255 255 255 / 0.7) / rgb(255 255 255 / 0.12)

  • --grid-line

    rgb(0 0 0 / 0.07) / rgb(255 255 255 / 0.07)

  • --grid-cell

    rgb(0 0 0 / 0.045) / rgb(255 255 255 / 0.05)

Type

3 families

Instrument Serif for headings, Hanken Grotesk for reading, Fragment Mono for data.

  • Aa

    Display

    serif 4xl

  • Aa

    Heading

    serif 2xl

  • Aa

    Title

    sans sm medium

  • Aa

    Body

    sans 15px relaxed

  • Aa

    Meta

    sans 13px

  • Aa

    Label

    11px caps 0.14em

  • Aa

    Mono

    Fragment Mono xs

Surfaces

12 tokens

Flat by default. Depth comes from borders, glass and the odd shadow.

  • xs

    2px

  • md

    6px

  • lg

    8px

  • xl

    12px

  • 2xl

    16px

  • full

    9999px

  • card

    bg-card border-line

  • shadow-art

    --art-shadow

  • stripes

    315° hatch, 7px

  • glass

    blur 16px, saturate 190%

  • glass-frost

    blur 8px, 35% card

  • holo-foil

    3s rainbow sweep

Motion

Hover to play

Fast, eased out, never bouncy. Everything stops under reduced motion.

  • ease-out-quint

    cubic-bezier(0.22, 1, 0.36, 1)

  • 150ms

    duration-150

  • 200ms

    duration-200

  • 300ms

    duration-300

  • cell-in

    450ms ease-out-quint

  • heart

    1200ms ease-out

Components

Live

The real atoms and molecules, imported straight from the site. Hover and focus them.

Icons

30 glyphs

Lucide line icons at 1.75 stroke, plus brand marks from Simple Icons. Always 16px unless a component says otherwise.

Esc
↑↓Move↵Select⌘KToggle