8223a566e4
A design handoff bundle generated by Claude Design (claude.ai/design) on 2026-05-02. Defines the Bloomberg/F1-pit-wall aesthetic for TRM: - ink-on-paper base + race-flag red accent (#E8412B) - square-edged everything, sharp printed offset shadows - mono numerics (JetBrains Mono) for any changing value - Goldplay (real licensed font, three weights in bundle fonts/) - four surfaces designed: dashboard / leaderboard / mobile / marketing (SPA scope is the first two) The bundle is committed in-tree at TRM_Design_System-handoff/ so 3.8 has the full source material when it picks the work up. Includes: - Top-level + project READMEs (the design spec) - chats/chat1.md (intent + iteration history) - colors_and_type.css (token set, drop-in for Tailwind 4 @theme) - fonts/ (Goldplay regular/semibold/bold) - ui_kits/ (HTML prototypes per surface) - preview/ (per-token visual reference cards) Updated phase-3-dogfood-readiness/README.md task 3.8 row to point at the bundle and document the recommended approach (retheme shadcn via CSS variable overrides + Tailwind 4 @theme, not replace). Why deferred: foundational tokens are non-blocking for Phase 1 (login + placeholder home) and Phase 2 (live map without chrome). Applying them now would either delay dogfood-blocking work or land partial styling that gets reworked when 3.8 lands the full pass.
40 lines
1.8 KiB
HTML
40 lines
1.8 KiB
HTML
<!doctype html><html><head><meta charset="utf-8">
|
|
<link rel="stylesheet" href="../colors_and_type.css">
|
|
<link rel="stylesheet" href="_card.css">
|
|
<style>
|
|
body { padding: 24px; }
|
|
.row { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
|
|
.btn {
|
|
font-family: var(--font-display); font-weight: 600; font-size: 14px;
|
|
border: 1px solid var(--ink); background: var(--paper); color: var(--ink);
|
|
padding: 0 16px; height: 36px; cursor: pointer; display: inline-flex;
|
|
align-items: center; gap: 8px; box-shadow: 2px 2px 0 0 var(--ink);
|
|
transition: transform 120ms var(--ease-snap), box-shadow 120ms var(--ease-snap);
|
|
border-radius: 0;
|
|
}
|
|
.btn.primary { background: var(--ink); color: var(--paper); }
|
|
.btn.flag { background: var(--flag); color: #fff; border-color: var(--ink); }
|
|
.btn.ghost { box-shadow: none; }
|
|
.btn.sm { height: 28px; padding: 0 12px; font-size: 12px; }
|
|
.btn.lg { height: 44px; padding: 0 22px; font-size: 15px; }
|
|
.btn.disabled { opacity: 0.4; cursor: not-allowed; }
|
|
.lbl { font-family: var(--font-mono); font-size: 10px; color: var(--ink-3); width: 100%; margin-top: 6px; }
|
|
</style></head>
|
|
<body>
|
|
<div class="overline" style="margin-bottom:14px;">Buttons</div>
|
|
<div class="row">
|
|
<button class="btn primary">Start race</button>
|
|
<button class="btn flag">⏺ Go live</button>
|
|
<button class="btn">Export results</button>
|
|
<button class="btn ghost">Cancel</button>
|
|
<button class="btn disabled" disabled>Disabled</button>
|
|
</div>
|
|
<div class="lbl">Default · primary (ink) · flag (live) · ghost · disabled</div>
|
|
<div class="row" style="margin-top:18px;">
|
|
<button class="btn sm">Small</button>
|
|
<button class="btn">Default</button>
|
|
<button class="btn lg primary">Large primary</button>
|
|
</div>
|
|
<div class="lbl">Sizes — sm 28 · md 36 · lg 44</div>
|
|
</body></html>
|