Component lab
Storybook
Living gallery of site components. Tune the source, watch it land here.
Button
Six intents across five sizes. Hover and press states carry the elevation language.
Badge
Status pills in two sizes. Ghost and link variants inherit interactive affordances.
Card
Surface treatments over one vivid strip. Glass and muted are translucent; sunken is a pressed-in well; elevated is an emphasis layer that stacks on any surface.
Baseline surface. Elevation 1.
Translucent (78%) with backdrop blur. For sitting on imagery.
default + hover lift and primary ring.
45% muted tint. Quiet secondary content.
Pressed-in well. Opaque, darker, inner shadow.
Emphasis layer over any surface: larger radius, primary ring, elevation 2.
Input
Field anatomy: labels, placeholders, disabled, and invalid rings.
Alert
Inline messaging with optional action slot.
Stat
Numeric callouts in three containers.
Visitors
18,204
+12% vs last week
Read time
4m 32s
Median across sessions
Posts
42
Across 42 published notes
Headers
Page and section headers at every scale, plus the eyebrow.
Eyebrow label
Heading fontMono body 0123456789Sans body — the quick brown fox.Section
Compact section header
Compact scales down for dense layouts.
Section
Default section header
The default workhorse for most pages.
Section
Large section header
Large headers open major page divisions.
Page
Embedded page header
Full page headers include their own separator.
Tabs
Pill and underline treatments.
Feedback
Loading surfaces, spinners, and progress bars.
Identity
Avatars, keyboard hints, separators, and tooltips.
Layout
Page width and column primitives. Every layout on the site composes from these.
Micro-type
Mono uppercase labels. Sizes and tracking come from theme tokens; Eyebrow is a MonoLabel.
micro 0.6875rem
nano 0.625rem
pico 0.5625rem
tag 0.12em
label 0.08em
eyebrow 0.16em
muted label
primary label
inherit label
Tokens
Theme primitives every component reads from. Dial these before touching component classes.
background
card
popover
primary
secondary
muted
accent
destructive
info
success
warning
border
input
ring
surface-raised
surface-sunken
Brand palettes
hero background
hero overlay
hero-navy
hero-blue
hero text
hero-mist
hero-haze
brand orange
hero-ember
hero-light
HUD background
depths-cave
depths-panel
depths-stone
depths-shard
depths-glow
HUD text
depths-bone
HUD muted
depths-mauve
depths-slate
visual backdrop
lab-cream
accent
accent
accent
graphic frame
Missing something? Add a section in src/routes/storybook.tsx.