From db541b414768c0e3f63ebb2be09a5cf288335d00 Mon Sep 17 00:00:00 2001 From: Christian Hood Date: Thu, 19 Mar 2026 19:47:34 -0400 Subject: [PATCH] Add modern UI with light/dark mode - CSS custom properties design system with full light/dark themes - ThemeContext with localStorage persistence and system preference detection - Theme toggle button in nav (moon/sun icon) - Modern Inter font, card-based layout, sticky nav - All pages restyled with CSS classes instead of inline styles Co-Authored-By: Claude Sonnet 4.6 --- client/src/App.jsx | 30 +- client/src/ThemeContext.jsx | 30 ++ client/src/index.css | 784 ++++++++++++++++++++++++++++ client/src/main.jsx | 6 +- client/src/pages/AnnualOverview.jsx | 225 +++----- client/src/pages/Bills.jsx | 354 +++---------- client/src/pages/MonthlySummary.jsx | 243 ++------- client/src/pages/PaycheckView.jsx | 677 +++++++----------------- client/src/pages/Settings.jsx | 218 +++----- 9 files changed, 1293 insertions(+), 1274 deletions(-) create mode 100644 client/src/ThemeContext.jsx create mode 100644 client/src/index.css diff --git a/client/src/App.jsx b/client/src/App.jsx index f0edc5e..1c62d9d 100644 --- a/client/src/App.jsx +++ b/client/src/App.jsx @@ -1,4 +1,5 @@ import { Routes, Route, NavLink } from 'react-router-dom'; +import { useTheme } from './ThemeContext.jsx'; import PaycheckView from './pages/PaycheckView.jsx'; import Bills from './pages/Bills.jsx'; import Settings from './pages/Settings.jsx'; @@ -6,17 +7,30 @@ import MonthlySummary from './pages/MonthlySummary.jsx'; import AnnualOverview from './pages/AnnualOverview.jsx'; function App() { + const { theme, toggle } = useTheme(); + return ( -
-