5.1 KiB
5.1 KiB
DESIGN.md — MotorSignal Hybrid v1 Canonical Tokens & Components
1. Visual Language & Principles
- Theme Name: MotorSignal Precision Telemetry & Community (Hybrid v1)
- Visual Direction: Conventional cockpit layout clarity, high-contrast anti-glare data hierarchy, restrained cyan branding accents, and strict zero-clutter riding ergonomics.
- Static Recording Discipline: Active recording indicators (
REC • LIVE) must remain 100% static (no pulsating, flashing, or shifting animations) to eliminate rider distraction during high-speed operation. - Physical Touch Enforcement: Strict minimum
48×48 CSS px(48×48dp) touch boundaries across all buttons, segmented toggles, navigation tabs, and modal triggers. Primary riding controls enforce56dpminimum height. - Platform Inset Rules: Dynamic runtime safe-area clearance (
SafeArea/MediaQuery.of(context).paddingin Flutter;env(safe-area-inset-*)in Web/PWA). - Accessibility & Runtime Verification: Accessibility scaling (200% text scale) and runtime performance claims are treated as unverified targets until proven via emulator/device test execution.
2. Canonical Token Set (Synchronized Day & Night Modes)
[!NOTE] Canonical Canvas Token Reconciliation:
#0B1326is the canonical night canvas background. Hex variants like#081326or#0B111Eappearing in intermediate drafts are reconciled to canonical#0B1326.
{
"theme": "MotorSignal Hybrid v1",
"modes": {
"night": {
"surface_canvas": "#0B1326",
"surface_card_primary": "#111C38",
"surface_card_secondary": "#17223B",
"surface_card_lowest": "#060E20",
"surface_border": "#1E293B",
"surface_border_subtle": "#24324D",
"text_primary": "#DAE2FD",
"text_muted": "#869397",
"brand_cyan": "#06B6D4",
"brand_cyan_bright": "#22D3EE",
"brand_cyan_container": "#00424F",
"rec_static_green": "#10B981",
"rec_static_green_bg": "#064E3B",
"caution_amber": "#F59E0B",
"danger_red": "#EF4444"
},
"day": {
"surface_canvas": "#F8FAFC",
"surface_card_primary": "#FFFFFF",
"surface_card_secondary": "#F1F5F9",
"surface_card_lowest": "#E2E8F0",
"surface_border": "#CBD5E1",
"surface_border_subtle": "#E2E8F0",
"text_primary": "#0F172A",
"text_muted": "#64748B",
"brand_cyan": "#0284C7",
"brand_cyan_bright": "#0EA5E9",
"brand_cyan_container": "#E0F2FE",
"rec_static_green": "#10B981",
"rec_static_green_bg": "#D1FAE5",
"caution_amber": "#D97706",
"danger_red": "#DC2626"
}
},
"typography": {
"font_primary": "Inter, -apple-system, BlinkMacSystemFont, sans-serif",
"font_telemetry": "JetBrains Mono, monospace",
"scale": {
"display_speed": "58px–72px (font-black / tabular)",
"telemetry_primary": "24px–28px (font-bold / tabular)",
"telemetry_unit": "10px–12px (uppercase, tracking-wider)",
"headline_lg": "24px–28px (font-bold)",
"headline_md": "18px–20px (font-semibold)",
"body_regular": "14px (line-height: 20px)",
"label_nav": "10px–11px (font-medium / bold)"
}
},
"touch_targets": {
"standard_minimum": "48px × 48px",
"primary_riding_cta": "56px height",
"nav_bar_height": "72px"
}
}
3. Reusable Component Guidelines
-
Persistent 6-Destination Bottom Nav:
- Items:
Dash(1),Map(2),Activity(3),Garage(4),Social(5),Settings(6). - Target bounding box:
≥48×48dpper tab icon & label.
- Items:
-
Riding Dashboard Telemetry Cards:
- Speed Hero: High-contrast large numeral with instant unit label (
mphorkm/h). - Secondary Telemetry: Distance, Elapsed Time, Lean Dynamics (neutral max lean styling, live lean in cyan), Elevation Gain, and Braking G.
- Pinned Action Bar:
Pause Ride(Amber, min 56dp) andFinish Ride(Dark/Slate with Cyan/Green accent, min 56dp), pinned to screen base with scrollable telemetry above in accessibility text scales. - Non-pulsing
REC • LIVEstatus badge.
- Speed Hero: High-contrast large numeral with instant unit label (
-
Group Ride Cards & Hub:
- Decoupled Logistics: Date, time, and staging location placed on a dedicated full-width row with clock icon to avoid button/text truncation.
- Hitboxes: Segmented switcher (Feed vs Hub) and ride card buttons (
Manage Ride,Open Hub,Ride Details,Leave Pack) sized to minimum48dpheight. - Visibility & Join Policies: Strict preservation of existing permissions, host/organizer badges, and join policies.
-
Replay HUD:
- Dedicated map controls locked to Top-Right quadrant, isolated from scrub timeline and lower telemetry gauges.
- Telemetry loading/status reflects real storage retrieval (e.g. SQLite database cache or cloud bundle retrieval), replacing speculative "100% buffered in-memory" labels.
- Scoped deletion options (Local Device Cache Only vs Cloud & Local Records). Never preselected.
-
Account & System Status:
- Reflects actual device sensors (Internal Phone IMU at authoritative 20Hz pipeline). Discards unsupported 100Hz claims and invalid Pro restrictions on basic telemetry acquisition.