Strong, not loud
Use near-black, heavy headlines and lime sparingly. One clear primary action is more powerful than several competing accents.
A practical source of truth for the colors, typography, controls, cards, states, and responsive formatting that make Trophy feel focused, energetic, and unmistakably its own.
Trophy pairs the confidence of editorial-scale typography with the usability of a training tool. The interface should feel decisive, calm, and physical—not decorative or gamified.
Use near-black, heavy headlines and lime sparingly. One clear primary action is more powerful than several competing accents.
Warm paper and ivory surfaces replace pure gray and white. Shadows carry a subtle olive tint so the system stays human.
Large touch targets, obvious state changes, and compact metadata support use mid-workout, when attention and dexterity are limited.
These are the computed values from the deployed app. Click any hex value to copy it. Favor semantic token names in code; raw values belong only in the token layer.
Primary text, icons, dark panels
Primary action, active navigation
Application background
Cards, inputs, sidebar
Grouped content, neutral controls
Soft separators and outlines
Secondary copy and metadata
Selected rows and positive wash
--blue alias currently resolves to ink; new code should use --timer instead.Trophy uses the native system stack: San Francisco on Apple devices, Segoe UI on Windows, then the platform sans-serif. Headlines are very heavy with tight tracking; body copy stays neutral and highly legible.
Use sentence case. Keep paragraphs short, direct, and useful during a workout. Secondary copy uses muted ink, never low-opacity black.
−.065em−.052em−.035em−.025emnormalnormal+.13em−.045emThe app uses a flexible 4px rhythm with practical intermediate values. Compact controls feel athletic; workout groups use larger radii to signal hierarchy.
Core values: 4, 8, 12, 16, 20, 24, 32, 40, 48, 64.
Choose by component scale, not decoration.
Borders establish structure; shadows support—not replace—them.
Controls prioritize confident taps and clear status. Default control height is 46px; workout-critical actions may reach 58px. Never use color alone to communicate an outcome.
Surface hierarchy is communicated with fill, border, radius, and a single accent edge. Avoid stacking multiple shadows or bright fills in the same region.
2 exercises · started 18 minutes ago
Heaviest set · Oct 31
Desktop uses a fixed 248px sidebar and a centered content canvas up to 1180px. At 760px and below, navigation becomes a fixed bottom bar and content uses 15px page gutters.
Start every Trophy surface with these semantic tokens. Component styles should consume the tokens; they should not introduce near-duplicate colors or one-off shadows.
:root {
--ink: #10110f;
--muted: #6e726b;
--paper: #f8f7f2;
--surface: #fffef9;
--quiet-fill: #f0f1eb;
--line: #dedfd8;
--line-strong: #d2d5cc;
--lime: #baff2f;
--lime-strong: #9de515;
--lime-border: #79b20a;
--quiet-accent: #e8ffd1;
--success: #55d58b;
--success-strong: #197543;
--danger: #d73f34;
--danger-strong: #a42e27;
--danger-border: #d5aaa6;
--timer: #4398ff;
--timer-ink: #06111e;
--font-modern: -apple-system, BlinkMacSystemFont,
"Segoe UI", system-ui, sans-serif;
--shadow: 0 14px 36px rgb(28 33 23 / 8%);
--focus: rgb(86 117 0 / 38%);
--radius-control: 14px;
--radius-card: 20px;
--radius-group: 29px;
}
A design token change is a product change. Treat this file as the human-readable contract and the application token file as its executable twin.