From 0142ba740fa8a777b3f3afdae5769628c73f51aa Mon Sep 17 00:00:00 2001 From: Exteban08 Date: Tue, 3 Feb 2026 11:58:10 +0000 Subject: [PATCH] Add dark mode support for tables and data pages - Add CSS overrides for MaterialTable in dark mode - Update page containers with dark:bg-zinc-950 - Update sidebars with dark mode (MetersSidebar, ConcentratorsSidebar) - Update tables in AuditoriaPage, UsersPage, RolesPage - Update ConsumptionPage with dark gradient background - Update search inputs, select elements, and modals - Add dark borders for card separation Affected pages: - MeterPage, ConcentratorsPage, ProjectsPage - UsersPage, RolesPage, AuditoriaPage - ConsumptionPage Co-Authored-By: Claude Opus 4.5 --- src/index.css | 96 ++++++++++++++++++ src/pages/AuditoriaPage.tsx | 98 +++++++++---------- src/pages/RolesPage.tsx | 28 +++--- src/pages/UsersPage.tsx | 30 +++--- src/pages/concentrators/ConcentratorsPage.tsx | 4 +- .../concentrators/ConcentratorsSidebar.tsx | 50 +++++----- src/pages/consumption/ConsumptionPage.tsx | 22 ++--- src/pages/meters/MeterPage.tsx | 4 +- src/pages/meters/MetersSidebar.tsx | 48 ++++----- src/pages/projects/ProjectsPage.tsx | 4 +- 10 files changed, 240 insertions(+), 144 deletions(-) diff --git a/src/index.css b/src/index.css index 66f22d3..05ebc01 100644 --- a/src/index.css +++ b/src/index.css @@ -20,4 +20,100 @@ body { .dark body, body:where(.dark *) { @apply bg-zinc-950 text-zinc-100; +} + +/* MaterialTable Dark Mode Overrides */ +.dark .MuiPaper-root { + background-color: #18181b !important; /* zinc-900 */ + color: #fafafa !important; /* zinc-50 */ +} + +.dark .MuiTableCell-root { + color: #e4e4e7 !important; /* zinc-200 */ + border-bottom-color: #3f3f46 !important; /* zinc-700 */ +} + +.dark .MuiTableCell-head { + background-color: #18181b !important; /* zinc-900 */ + color: #fafafa !important; /* zinc-50 */ +} + +.dark .MuiTableRow-root:hover { + background-color: #27272a !important; /* zinc-800 */ +} + +.dark .MuiTableRow-root.Mui-selected, +.dark .MuiTableRow-root.Mui-selected:hover { + background-color: #3f3f46 !important; /* zinc-700 */ +} + +.dark .MuiToolbar-root { + background-color: #18181b !important; /* zinc-900 */ + color: #fafafa !important; /* zinc-50 */ +} + +.dark .MuiTypography-root { + color: #fafafa !important; /* zinc-50 */ +} + +.dark .MuiTablePagination-root { + color: #a1a1aa !important; /* zinc-400 */ +} + +.dark .MuiTablePagination-selectIcon { + color: #a1a1aa !important; /* zinc-400 */ +} + +.dark .MuiIconButton-root { + color: #a1a1aa !important; /* zinc-400 */ +} + +.dark .MuiIconButton-root:hover { + background-color: #3f3f46 !important; /* zinc-700 */ +} + +.dark .MuiIconButton-root.Mui-disabled { + color: #52525b !important; /* zinc-600 */ +} + +.dark .MuiInputBase-root { + color: #e4e4e7 !important; /* zinc-200 */ +} + +.dark .MuiInput-underline:before { + border-bottom-color: #3f3f46 !important; /* zinc-700 */ +} + +.dark .MuiSelect-icon { + color: #a1a1aa !important; /* zinc-400 */ +} + +.dark .MuiTableSortLabel-root { + color: #fafafa !important; /* zinc-50 */ +} + +.dark .MuiTableSortLabel-root:hover { + color: #ffffff !important; +} + +.dark .MuiTableSortLabel-root.Mui-active { + color: #60a5fa !important; /* blue-400 */ +} + +.dark .MuiTableSortLabel-icon { + color: #60a5fa !important; /* blue-400 */ +} + +/* Dark mode for table row active/selected state */ +.dark .MuiTableBody-root .MuiTableRow-root[style*="background-color: rgb(238, 242, 255)"], +.dark .MuiTableBody-root .MuiTableRow-root[style*="#EEF2FF"] { + background-color: #3f3f46 !important; /* zinc-700 */ +} + +/* Fix for inline styles - override white backgrounds */ +.dark [style*="background-color: rgb(255, 255, 255)"], +.dark [style*="background-color: #FFFFFF"], +.dark [style*="background-color: #fff"], +.dark [style*="backgroundColor: rgb(255, 255, 255)"] { + background-color: #18181b !important; /* zinc-900 */ } \ No newline at end of file diff --git a/src/pages/AuditoriaPage.tsx b/src/pages/AuditoriaPage.tsx index ec709d0..b514475 100644 --- a/src/pages/AuditoriaPage.tsx +++ b/src/pages/AuditoriaPage.tsx @@ -114,20 +114,20 @@ export default function AuditoriaPage() { const uniqueTables = Array.from(new Set(logs.map((log) => log.table_name))); return ( -
+
{/* Sidebar */} -