Design
Shared components and design tokens. Import from components/ui.
Spacing
Six-step scale from 4px to 64px. Used for gaps, padding, and margins.
Typography
System font stack. Six sizes from 10px to 64px.
Colours
Adaptive palette using light-dark() and color-mix(). Toggle the theme in the nav bar to preview.
Headings
Three visual levels. The as prop overrides the HTML element independently.
Level 1 — Section heading (24px)
Level 2 — Subsection heading (18px)
Level 3 — Minor heading (14px)
Muted secondary text for metadata and labels.
<Heading level={2}>Title</Heading><Caption>Secondary text</Caption>Card
Bordered surface container. Adapts to light and dark themes via color-mix.
<Card as="article">content</Card>Thumb
Image thumbnail with sharp corners. Default (150px) and small (112px) variants.
<Thumb size="small" src="..." alt="..." />Inputs & Controls
Form elements with consistent border, radius, and focus ring treatment.
<Input placeholder="..." /><Select variant="compact">...</Select><SegmentedToggle options={[...]} value={v} onChange={set} ariaLabel="..." />Pill
Rounded link/button for navigation and actions. Surface (filled) and ghost (transparent) variants.
<Pill href="#" variant="ghost">Link</Pill><PillButton>Action</PillButton>For <Link>: className={`${pillStyles.base} ${pillStyles.surface}`}Chart Tooltip
Accent-tinted tooltip shown on hover over chart bars/cells. Visible here for reference.
<ChartTooltip>Label · 42</ChartTooltip>Stack
Utility classes for vertical rhythm. grid + gap at each spacing level.
className={commonStyles.stack}