Playground

Token System & Components

Everything on this site is built on a three-tier CSS custom property system. Open DevTools and inspect any element — you'll see the token architecture directly in the inspector. Toggle dark mode to watch the semantic tokens update in real time.

Semantic Color Tokens

Light mode values shown. Semantic tokens resolve to different primitives in dark mode.

--color-bg-baseBackground Base#ffffff
--color-bg-subtleBackground Subtle#f9f9f9
--color-bg-mutedBackground Muted#f0f0f0
--color-text-primaryText Primary#1a1a1a
--color-text-secondaryText Secondary#525252
--color-text-tertiaryText Tertiary#a8a8a8
--color-border-defaultBorder Default#e4e4e4
--color-accent-defaultAccent Default#2563eb
--color-accent-greenAccent Green#16a34a
--color-accent-amberAccent Amber#d97706

Type Scale

Major Third ratio (1.25×) from a 16px base. Nine steps, all defined as CSS custom properties.

--text-xs12px

Caption text, token labels, metadata

--text-sm14px

Secondary body copy, nav links, tags

--text-base16px

Primary body copy

--text-md18px

Lead paragraph, intro text

--text-lg20px

Section tagline, subheading

--text-xl24px

Card title, section heading

--text-2xl30px

Page subheading

--text-3xl36px

Page heading

--text-4xl48px

Hero heading

--text-5xl60px

Display / name


Spacing Scale

Base-4 system (4px increments). Named semantic aliases — --space-section, --space-gutter — are what components actually use.

--space-14px / 0.25rem
--space-28px / 0.5rem
--space-312px / 0.75rem
--space-416px / 1rem
--space-520px / 1.25rem
--space-624px / 1.5rem
--space-832px / 2rem
--space-1040px / 2.5rem
--space-1248px / 3rem
--space-1664px / 4rem
--space-2080px / 5rem
--space-2496px / 6rem

Components

Each component defines its own component-level tokens that reference semantic tokens. No component ever reaches for a primitive value directly.

Button — variant

Button — size

Button — state

Tag — color

DefaultBlueGreenAmber

Tag — size

SmallMedium

Theme Toggle

Toggles the entire page theme