feat: Themes added, 4 themes available (3 dark, 1 light)

This commit is contained in:
2026-07-06 09:08:47 +02:00
parent fafa0c22ab
commit 06183bd5d4
43 changed files with 982 additions and 457 deletions
+30
View File
@@ -0,0 +1,30 @@
import { themeQuartz } from 'ag-grid-community';
// Shared AG-Grid theme for every logbook table (Recent QSOs, Worked-before,
// Cluster, Net, QSL Manager). Colours are wired to the app's semantic CSS
// variables (see style.css) instead of hardcoded hex, so the grids follow the
// active theme (light-warm / dark-warm / graphite / high-contrast) at runtime —
// flipping <html data-theme> re-resolves these var() references with no
// re-render. Keep this the single source of truth; per-grid tweaks (e.g. row
// height) chain a `.withParams({...})` on top.
export const hamlogGridTheme = themeQuartz.withParams({
fontFamily: 'inherit',
fontSize: 12.5,
backgroundColor: 'var(--card)',
foregroundColor: 'var(--foreground)',
headerBackgroundColor: 'var(--muted)',
headerTextColor: 'var(--muted-foreground)',
headerFontWeight: 600,
oddRowBackgroundColor: 'color-mix(in srgb, var(--muted) 40%, var(--card))',
rowHoverColor: 'color-mix(in srgb, var(--accent) 55%, var(--card))',
selectedRowBackgroundColor: 'var(--accent)',
borderColor: 'var(--border)',
rowBorder: { color: 'var(--border)', width: 1 },
columnBorder: { color: 'var(--border)', width: 1 },
cellHorizontalPadding: 10,
rowHeight: 30,
headerHeight: 32,
spacing: 4,
accentColor: 'var(--primary)',
iconSize: 12,
});