// Prerender to reduce worker bundle export const prerender = true; ONE Design System Skip to main content

Typography Architecture

A typographic system rooted in humanist forms and consistent rhythm. Use the documented scale—never improvise.

Type scale
Each tier pairs size, line-height, tracking, and usage. Apply the token that matches the message weight.
Display text-5xl md:text-6xl

56px / 3.5rem · line-height 1.1 · Hero statements

Headline text-4xl

40px / 2.5rem · line-height 1.2 · Section titles

Title text-2xl

28px / 1.75rem · line-height 1.3 · Card titles

Subtitle text-xl

20px / 1.25rem · line-height 1.5 · Supporting copy

Body text-base leading-7

16px / 1rem · line-height 1.7 · Paragraphs

Caption text-sm

14px / 0.875rem · line-height 1.6 · Metadata & labels

Best practices
Typography communicates voice. These guardrails keep it legible, deliberate, and premium.

Use `max-w-prose` for copy blocks. Avoid center-aligned paragraphs longer than two lines.

Headlines use tight leading (`leading-tight`). Body copy uses `leading-7`. Increase letter-spacing for uppercase.

Mix weight sparingly: bold for emphasis, medium for actionable labels, regular for long-form reading.

Always include smart quotes, en/em dashes, and proper apostrophes in editorial content.

Layout & Spacing

Grid systems, gutters, and container rules keep experiences aligned and effortless to scan.

Spacing rhythm
Combine spacing tokens deliberately: inside components use 2–6; between sections use 8–12.
space-2
8px · 0.5rem
space-3
12px · 0.75rem
space-4
16px · 1rem
space-6
24px · 1.5rem
space-8
32px · 2rem
space-12
48px · 3rem
Container rules
Choose the container that matches the story density. Always align to the 12-column grid.

Content

max-w-3xl · 48px section padding

Articles, docs, knowledge

Application

max-w-5xl · 64px section padding

Dashboards & workflows

Wide

max-w-6xl · responsive gutters

Data dense screens

Fluid

full width · clamp(24px, 5vw, 80px)

Marketing & storytelling

Grid Example

Each column aligns to 72px at desktop with 24px gutters. Collapse to two columns on tablet, one on mobile.

Component Language

Components combine tokens, layout, and interaction rules. Build new experiences by composing, not reinventing.

Design principles
Consistent experiences emerge when every component honors the same playbook.

Atomic → Pattern → Experience

Compose experiences from documented atoms. Never duplicate markup when a primitive exists.

Statefulness Baked In

Every component ships with hover, focus, active, loading, and disabled states out of the box.

Content-Aware Layouts

Components adapt to variable content through flexible spacing, min/max widths, and responsive typography.

Living examples
Ship with defaults: size, density, icon placement, and states. Extend via props, not overrides.

Button Variants

Primary (blue), Secondary (gray-blue), Tertiary (green) use brand colors · Outline/Ghost are neutral

Card anatomy

Status Overview
Snapshot of platform health, updated in real-time.
Active creators 128
Pending mandates 12

Interaction & Accessibility

Every interaction respects purpose, speed, and inclusivity. Design emotionally confident interfaces that everyone can use.

Interaction rules
Micro-interactions reinforce trust. Try these interactive demos.

Visible Focus

Focus states use a 2px outline with primary color and 2px offset. Never remove focus for aesthetics.

Purposeful Motion

Pair animations with motion tokens and respect `prefers-reduced-motion`. Motion should communicate spatial change.

Hover over me

Immediate Feedback

Hover within 80ms, active within 40ms, and show result states or loaders within 200ms.

Try hovering and clicking - feedback is instant (150ms transition)

Accessibility checklist
Ship quality by making inclusion non-negotiable. Validate every screen before release.

Contrast AA+

Maintain 4.5:1 contrast for body text and 3:1 for large headings. Validate all token combinations.

Readable Typography

Limit line length to 60–70 characters, set body copy to leading-7, and avoid center-aligned paragraphs over 3 lines.

Motion Preferences

Wrap transitions in `motion-safe` classes and provide alternatives like color or elevation for motion-reduced users.

Document contrast and focus results in PR descriptions. Accessibility is a release-blocker.

Workflow

Design and engineering stay in lockstep through shared tooling, documentation, and QA rituals.

Workflow
Keep tokens and components in sync across codebases, packages, and design files.

Step 1

Tokens as Source of Truth

Update Tailwind config and CSS variables first. UI code must consume tokens—not hard coded values.

Step 2

Composable Primitives

Extend components via props and slots. If structure diverges, create a new primitive and document it here.

Step 3

Design QA Loop

Pair every UI change with screenshots, contrast checks, and accessibility notes before merging.

Token snippet
Reference implementation in `src/styles/tokens.css`. Update here and regenerate types.
:root {
  --color-primary: 216 55% 25%;
  --color-primary-foreground: 36 8% 96%;
  --color-surface: 36 8% 88%;
  --color-accent: 105 22% 25%;
  --space-2: 0.5rem;
  --space-4: 1rem;
  --radius-md: 12px;
  --shadow-md: 0 14px 32px -18px hsl(216 55% 25% / 0.32);
  --ease-snappy: cubic-bezier(0.4, 0, 0.2, 1);
}
            

Tokens sync to Tailwind via `theme.extend`. Run `pnpm lint && pnpm test` before release.

Design governs ONE experience.

Ship with intention. Every commit should strengthen clarity, trust, and velocity. When in doubt, return to the tokens, principles, and checklists above—or propose updates so the system evolves together.