Files
carmanagement/docs/update_ux_dashboard.md
2026-06-24 03:04:01 -04:00

34 lines
2.3 KiB
Markdown

Proposed plan
Phase 1 — Design tokens & primitives
Add .glass-card as the dark-mode companion to the existing .card (light mode) — same component, theme-aware via html.dark selector, so call sites don't need to branch.
Add --bg-elevated, --border-accent, --glass-bg, glow shadows for dark; pick matching light-mode equivalents (soft shadow/border tints) so cards feel like one consistent design language in either mode, not "light mode = old style, dark mode = new style."
Add .progress-bar / .progress-fill classes with light and dark variants (the mockup's blue/orange gradient fills work in both; just need lighter track colors for light mode).
Add JetBrains Mono via next/font for metric values — works the same in both modes.
Guard pulse/glow animations behind prefers-reduced-motion (applies regardless of theme).
Phase 2 — StatCard v2
Extend StatCard.tsx with optional target, progressPercent, pulse, valueGradient props, each with explicit light/dark Tailwind variants (dark: prefixes), backward-compatible with current usage.
Update StatCard.test.ts, including a check that dark-mode classes are present.
Phase 3 — Dashboard home restructure
Reorganize (dashboard)/page.tsx into a 2/3 + 1/3 grid: bookings chart + new "Branch/Location Performance" list (left), quick stats (right) — laid out identically in both modes, only colors/surfaces change.
New metrics (utilization rate, revenue/vehicle, fulfillment rate, branch breakdown) require backend fields on /analytics/dashboard (utilizationRate, fulfillmentRate, locationBreakdown[]) — flagged as a contract change, not faked.
Drop the fixed-airport SVG map; replace with a data-driven branch list with progress bars, styled for both themes.
Phase 4 — Sidebar & TopBar polish
Sidebar: glass background in dark mode, equivalent frosted-white treatment in light mode; gradient logo badge and active-item glow tuned per theme so contrast stays good in both.
TopBar: restyled search input with light/dark variants; keep only status indicators backed by real data.
Phase 5 — i18n & RTL pass
All new strings via the dictionary for fr/en/ar.
Verify glass-cards, progress bars, and branch list mirror correctly in dir="rtl", in both light and dark.
Phase 6 — QA
Update/extend tests.
Manual visual check of every changed component in 4 combinations: light+LTR, light+RTL, dark+LTR, dark+RTL.