docs: import TRM design handoff + defer adoption to phase 3.8
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.
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
function SideNav({ active, onNav }) {
|
||||
const items = [
|
||||
{ id: 'events', icon: 'calendar', label: 'Events', badge: '12' },
|
||||
{ id: 'live', icon: 'radio', label: 'Race control', badge: '1' },
|
||||
{ id: 'results', icon: 'trophy', label: 'Results' },
|
||||
{ id: 'participants', icon: 'users', label: 'Participants' },
|
||||
{ id: 'mats', icon: 'route', label: 'Timing mats' },
|
||||
{ id: 'reports', icon: 'bar-chart-3', label: 'Reports' },
|
||||
];
|
||||
const settings = [
|
||||
{ id: 'team', icon: 'user-cog', label: 'Team' },
|
||||
{ id: 'billing', icon: 'credit-card', label: 'Billing' },
|
||||
{ id: 'settings', icon: 'settings', label: 'Settings' },
|
||||
];
|
||||
return (
|
||||
<aside className="kit-side">
|
||||
<div className="kit-side-section">Operations</div>
|
||||
{items.map(it => (
|
||||
<div key={it.id} className={'kit-nav-item' + (active === it.id ? ' active' : '')} onClick={() => onNav(it.id)}>
|
||||
<i data-lucide={it.icon}></i>
|
||||
<span>{it.label}</span>
|
||||
{it.badge && <span className="badge">{it.badge}</span>}
|
||||
</div>
|
||||
))}
|
||||
<div className="kit-side-section">Account</div>
|
||||
{settings.map(it => (
|
||||
<div key={it.id} className={'kit-nav-item' + (active === it.id ? ' active' : '')} onClick={() => onNav(it.id)}>
|
||||
<i data-lucide={it.icon}></i>
|
||||
<span>{it.label}</span>
|
||||
</div>
|
||||
))}
|
||||
<div style={{ flex: 1 }}></div>
|
||||
<div style={{ padding: 14, borderTop: '1px solid var(--hairline)', fontFamily: 'var(--font-mono)', fontSize: 10, color: 'var(--ink-4)', letterSpacing: '0.06em', textTransform: 'uppercase' }}>
|
||||
v3.18.0 · build 2741
|
||||
</div>
|
||||
</aside>
|
||||
);
|
||||
}
|
||||
window.SideNav = SideNav;
|
||||
Reference in New Issue
Block a user