design system
Tokens and components in one place.
A living reference of the colors, type, spacing, motion, and primitives this site is built from. Treat this page as the source of truth — if something on the site looks off, compare it here.
tokens
Color
Semantic tokens, mapped to primitives behind the scenes. Toggle the theme to see how each token shifts.
Surfaces
--background--foreground--card--card-foreground--popover--popover-foregroundBrand
--primary--primary-foreground--secondary--secondary-foregroundMuted & Accent
--muted--muted-foreground--accent--accent-foregroundSemantic
--destructiveBorders & inputs
--border--input--ringSidebar
--sidebar--sidebar-foreground--sidebar-primary--sidebar-primary-foreground--sidebar-accent--sidebar-accent-foreground--sidebar-border--sidebar-ringtokens
Typography
Inter for UI and body. Lora for headings. Monospace for code. Sizes follow a modular scale, leading scales independently.
Font families
--font-sansThe quick brown fox
--font-serifThe quick brown fox
--font-monoThe quick brown fox
Type scale
text-4xltext-3xltext-2xltext-xltext-lgtext-basetext-smtext-xsLeading
leading-tightDesigners often spend disproportionate time on color and ignore line-height — yet leading shapes how comfortable a paragraph feels at a glance.
leading-snugDesigners often spend disproportionate time on color and ignore line-height — yet leading shapes how comfortable a paragraph feels at a glance.
leading-normalDesigners often spend disproportionate time on color and ignore line-height — yet leading shapes how comfortable a paragraph feels at a glance.
leading-looseDesigners often spend disproportionate time on color and ignore line-height — yet leading shapes how comfortable a paragraph feels at a glance.
Headings
Heading one — for the page title
Heading two — for major sections
Heading three — for subsections
Heading four — for inline groupings
Body and code
Body copy at the project default — 17px, leading 1.65, Inter. Inline code picks up the mono font and a subtle muted background.
tokens
Spacing
Derived from a single 0.25rem base. Use flex + gap for siblings, only use margin for prose flow.
10.25rem20.5rem30.75rem41rem61.5rem82rem123rem164rem246rem328remtokens
Radius
All radius steps derive from a single --radius base (0.25rem). Change the base to reshape the whole UI.
rounded-smrounded-mdrounded-lgrounded-xlrounded-2xlrounded-3xlrounded-4xltokens
Shadow
Tailwind's default shadow scale. Use sparingly — this system leans flat.
shadow-2xsshadow-xsshadow-smshadow-mdshadow-lgshadow-xlshadow-2xltokens
Motion
Hover each tile to play. Durations live close together so transitions feel cohesive; easings shape the perceived character.
Duration
duration-fastduration-baseduration-slowEasing
ease-standardease-expoease-inease-outtokens
Z-index
A small, semantically named scale. Use via style={{ zIndex: 'var(--z-modal)' }} to keep stacking decisions consistent.
--z-base0Default flow--z-dropdown30Menus, popovers--z-sticky40Sticky headers--z-overlay45Dim layers--z-modal50Dialogs, sheets--z-toast60Notificationstokens
Tracking
Letter-spacing scale from Tailwind defaults. Wide and widest are reserved for kicker / uppercase labels.
tracking-tighttracking-normaltracking-widetracking-widestcomponents
UI primitives
Every shadcn primitive installed in this project, with the states the codebase relies on.
Button
6 variants, 4 sizes, plus icon sizes and loading.
Badge
Pill-shaped status markers.
Avatar
Image, fallback, badge overlay, group.
Card
Flexible container with optional header, action, and footer.
Accordion
Single-open by default; first item expanded.
Dialog
Modal surface, centered. Closes via overlay, escape, or X.
Sheet
Side-anchored drawer. Each side is a separate variant.
Tooltip
Hover the trigger to reveal.
Separator
Hairline divider for both axes.
Scroll area
Custom-styled overflow container.
Skeleton
Loading placeholders. Pulsing muted bg.
Sonner toast
Notification system, themed via popover tokens.
components
Shared primitives
Brand-flavored components that aren't generic enough to belong in ui/. These encode voice.
Kicker
Small uppercase label, used to introduce a section.
design system
tokens
components
Tag
Inline metadata pill — e.g. topic tags on writing.
ArrowLink
Forward navigation with hover-translating arrow.
Find more in the journal — read the latest
BackLink
Backward navigation with hover-translating arrow.
NowMarker
Animated icon paired with a 'now' activity.