From 6320fb389c7d73c229fb15a724dd8fab1bb248ef Mon Sep 17 00:00:00 2001 From: DJP Date: Sun, 17 May 2026 22:28:41 -0400 Subject: [PATCH] style: dark slate theme matching the original SPA's look MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pure styling sweep — no behaviour changes, no new dependencies, all data-tutorial-id selectors preserved. typecheck / lint / build clean. Main entry 16.36 KB gz (was 12.85), recharts unchanged at 154.57 KB gz. Foundations: - body bg-slate-950 text-slate-100, color-scheme:dark, Apple-system font. - .btn-primary indigo, .btn-secondary slate-700, .card slate-900 + slate-800 border, .input slate-800/600, .label slate-400 uppercase. Top chrome: - Navbar rewritten as a two-row header: title row with brand + dynamic subtitle (filename + row count once a timelog is loaded), then the three coloured upload pills inline, then user identity + Sign-out text link. Tab row hangs off `border-b border-slate-800` with the original's rounded-top "tab" look — active `bg-slate-800 text-white border-t border-x border-slate-700`, inactive `text-slate-400`. - HeaderUploads now matches the original: indigo Time Log pill, emerald Deliverable when loaded, violet Project Summary when loaded; neutral slate-700 surfaces when empty. Re-uploading replaces (no Clear button). Errors collapse to a small ⚠ marker so the header height doesn't jump. - StatsBar: bg-slate-900/50 strip below the navbar with five stacked stats (label slate-400 / value white). Filter rail: - bg-slate-900/30 strip with stacked-label fields and slate-800/600 inputs. Native