v3 Website — Design Token System + Full Migration — Design

Date: 2026-05-14 Project: Sub-project B of a two-part effort. (Sub-project A — responsive pass on all v3 pages — is complete.) Worktree: /Users/maximilianbrandstaetter/Orcha/.claude/worktrees/website-v3-mobile-responsive, branch website-v3-mobile-responsive.

Goal

The v3 website uses far too many distinct values — 39 font sizes, ~38 spacing values, ~15 border-radii, raw hex colors that duplicate existing tokens, and ~5 icon sizes. Define a constrained design-token system covering type, color, icons, spacing, and radius; codify it as CSS custom properties; and migrate the entire v3 site (shared CSS + every page's inline styles) to use it — so the site has a small, defined set of values instead of organic sprawl, with no meaningful visual change.

Audit findings (current state)

Approach

Data-driven snap. Each token scale is derived by keeping the well-used values from the existing distribution and dropping the half-pixels and one-offs. Migration replaces every raw value with its nearest token. Because the kept values are the dominant ones, the overwhelming majority of usages do not move at all; outliers shift by 1–4px at most. The site looks essentially unchanged — it just has a small defined set of values.

Rejected: a fresh modular scale (textbook-cleaner, but full migration would visibly redesign a site that was just made responsive); tokens-without-migration (the user explicitly chose full migration).

Design

1. Token architecture

2. The token scales

Values below are the proposed scales — derived from the audit distribution, optimized for minimal drift. They are the primary thing to scrutinize in the spec review.

3. Migration

Snap-to-nearest, applied site-wide, staged (mirroring sub-project A's structure):

One spec; writing-plans produces the staged plans.

4. Verification — visual-regression harness

Extend www/v3/dev/screenshot.mjs into a visual-regression tool:

This replaces the old harness's overflow-only check with a true before/after comparison, which is what a token migration needs.

Acceptance criteria

Out of scope

Risks / known tricky areas