From dcc60006f519249641295a3846ccee5a101f5415 Mon Sep 17 00:00:00 2001 From: neon <18559658+neonsolstice@users.noreply.github.com> Date: Tue, 10 Mar 2026 04:15:33 -0600 Subject: [PATCH] feat: expand accent palette and replace ThemeToggle with ThemePicker - add 16 pastel accent colors (coral, peach, butter, lemon, celadon, sage, mint, seafoam, powder, mist, periwinkle, wisteria, lavender, orchid, blush, grey) - replace ThemeToggle icon button with ThemePicker segmented light/dark control - wire ThemePicker into AppHeader alongside existing accent/radius/background pickers - update AccentPicker, BackgroundPicker, RadiusPicker to reflect new palette structure - update theme store with ACCENT_VIVID/ACCENT_PASTEL split and full type union --- client/src/assets/theme/accents.css | 555 ++++++++++++++++++--- client/src/assets/theme/tokens.css | 91 ++-- client/src/components/AccentPicker.vue | 4 +- client/src/components/AppHeader.vue | 18 +- client/src/components/BackgroundPicker.vue | 35 +- client/src/components/RadiusPicker.vue | 12 +- client/src/components/ThemePicker.vue | 25 + client/src/components/ThemeToggle.vue | 23 - client/src/stores/theme.ts | 4 + 9 files changed, 604 insertions(+), 163 deletions(-) create mode 100644 client/src/components/ThemePicker.vue delete mode 100644 client/src/components/ThemeToggle.vue diff --git a/client/src/assets/theme/accents.css b/client/src/assets/theme/accents.css index be76460d9..848f55692 100644 --- a/client/src/assets/theme/accents.css +++ b/client/src/assets/theme/accents.css @@ -5,97 +5,528 @@ Amber/yellow/lime/butter/lemon use dark foreground text. ────────────────────────────────────────────────────────────── */ -/* Vivid — 15 colors, rainbow order */ +/* Vivid — 17 colors, neutral + rainbow order */ -html.accent-rose { --tint-h: 15; --primary: oklch(0.57 0.24 15); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.57 0.24 15); --sidebar-primary: oklch(0.57 0.24 15); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-rose.dark { --primary: oklch(0.73 0.2 15); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.73 0.2 15); --sidebar-primary: oklch(0.73 0.2 15); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-white { + --tint-h: 0; + --tint-c: 0; + --primary: oklch(0.2 0 0); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.2 0 0); + --sidebar: oklch(0.985 0 0); + --sidebar-primary: oklch(0.2 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-white.dark { + --tint-h: 0; + --tint-c: 0; + --primary: oklch(0.985 0 0); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.985 0 0); + --sidebar: oklch(0.205 0 0); + --sidebar-primary: oklch(0.985 0 0); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-orange { --tint-h: 42; --primary: oklch(0.64 0.22 42); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.64 0.22 42); --sidebar-primary: oklch(0.64 0.22 42); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-orange.dark { --primary: oklch(0.78 0.18 42); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.78 0.18 42); --sidebar-primary: oklch(0.78 0.18 42); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-grey { + --tint-h: 0; + --tint-c: 0; + --primary: oklch(0.55 0 0); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.55 0 0); + --sidebar: oklch(0.96 0 0); + --sidebar-primary: oklch(0.55 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-grey.dark { + --tint-h: 0; + --tint-c: 0; + --primary: oklch(0.75 0 0); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.75 0 0); + --sidebar: oklch(0.22 0 0); + --sidebar-primary: oklch(0.75 0 0); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-amber { --tint-h: 70; --primary: oklch(0.72 0.17 70); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.72 0.17 70); --sidebar-primary: oklch(0.72 0.17 70); --sidebar-primary-foreground: oklch(0.145 0 0); } -html.accent-amber.dark { --primary: oklch(0.82 0.17 70); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.82 0.17 70); --sidebar-primary: oklch(0.82 0.17 70); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-rose { + --tint-h: 15; + --primary: oklch(0.57 0.24 15); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.57 0.24 15); + --sidebar-primary: oklch(0.57 0.24 15); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-rose.dark { + --primary: oklch(0.73 0.2 15); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.73 0.2 15); + --sidebar-primary: oklch(0.73 0.2 15); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-yellow { --tint-h: 95; --primary: oklch(0.75 0.18 95); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.75 0.18 95); --sidebar-primary: oklch(0.75 0.18 95); --sidebar-primary-foreground: oklch(0.145 0 0); } -html.accent-yellow.dark { --primary: oklch(0.84 0.16 95); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.84 0.16 95); --sidebar-primary: oklch(0.84 0.16 95); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-orange { + --tint-h: 42; + --primary: oklch(0.64 0.22 42); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.64 0.22 42); + --sidebar-primary: oklch(0.64 0.22 42); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-orange.dark { + --primary: oklch(0.78 0.18 42); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.78 0.18 42); + --sidebar-primary: oklch(0.78 0.18 42); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-lime { --tint-h: 118; --primary: oklch(0.64 0.2 118); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.64 0.2 118); --sidebar-primary: oklch(0.64 0.2 118); --sidebar-primary-foreground: oklch(0.145 0 0); } -html.accent-lime.dark { --primary: oklch(0.77 0.18 118); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.77 0.18 118); --sidebar-primary: oklch(0.77 0.18 118); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-amber { + --tint-h: 70; + --primary: oklch(0.72 0.17 70); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.72 0.17 70); + --sidebar-primary: oklch(0.72 0.17 70); + --sidebar-primary-foreground: oklch(0.145 0 0); +} +html.accent-amber.dark { + --primary: oklch(0.82 0.17 70); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.82 0.17 70); + --sidebar-primary: oklch(0.82 0.17 70); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-green { --tint-h: 142; --primary: oklch(0.527 0.18 142); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.527 0.18 142); --sidebar-primary: oklch(0.527 0.18 142); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-green.dark { --primary: oklch(0.72 0.18 142); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.72 0.18 142); --sidebar-primary: oklch(0.72 0.18 142); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-yellow { + --tint-h: 95; + --primary: oklch(0.75 0.18 95); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.75 0.18 95); + --sidebar-primary: oklch(0.75 0.18 95); + --sidebar-primary-foreground: oklch(0.145 0 0); +} +html.accent-yellow.dark { + --primary: oklch(0.84 0.16 95); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.84 0.16 95); + --sidebar-primary: oklch(0.84 0.16 95); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-emerald { --tint-h: 162; --primary: oklch(0.52 0.17 162); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.52 0.17 162); --sidebar-primary: oklch(0.52 0.17 162); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-emerald.dark { --primary: oklch(0.72 0.15 162); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.72 0.15 162); --sidebar-primary: oklch(0.72 0.15 162); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-lime { + --tint-h: 118; + --primary: oklch(0.64 0.2 118); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.64 0.2 118); + --sidebar-primary: oklch(0.64 0.2 118); + --sidebar-primary-foreground: oklch(0.145 0 0); +} +html.accent-lime.dark { + --primary: oklch(0.77 0.18 118); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.77 0.18 118); + --sidebar-primary: oklch(0.77 0.18 118); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-teal { --tint-h: 180; --primary: oklch(0.52 0.18 180); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.52 0.18 180); --sidebar-primary: oklch(0.52 0.18 180); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-teal.dark { --primary: oklch(0.74 0.16 180); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.74 0.16 180); --sidebar-primary: oklch(0.74 0.16 180); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-green { + --tint-h: 142; + --primary: oklch(0.527 0.18 142); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.527 0.18 142); + --sidebar-primary: oklch(0.527 0.18 142); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-green.dark { + --primary: oklch(0.72 0.18 142); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.72 0.18 142); + --sidebar-primary: oklch(0.72 0.18 142); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-cyan { --tint-h: 197; --primary: oklch(0.52 0.2 197); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.52 0.2 197); --sidebar-primary: oklch(0.52 0.2 197); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-cyan.dark { --primary: oklch(0.75 0.17 197); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.75 0.17 197); --sidebar-primary: oklch(0.75 0.17 197); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-emerald { + --tint-h: 162; + --primary: oklch(0.52 0.17 162); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.52 0.17 162); + --sidebar-primary: oklch(0.52 0.17 162); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-emerald.dark { + --primary: oklch(0.72 0.15 162); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.72 0.15 162); + --sidebar-primary: oklch(0.72 0.15 162); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-sky { --tint-h: 213; --primary: oklch(0.54 0.21 213); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.54 0.21 213); --sidebar-primary: oklch(0.54 0.21 213); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-sky.dark { --primary: oklch(0.75 0.18 213); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.75 0.18 213); --sidebar-primary: oklch(0.75 0.18 213); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-teal { + --tint-h: 180; + --primary: oklch(0.52 0.18 180); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.52 0.18 180); + --sidebar-primary: oklch(0.52 0.18 180); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-teal.dark { + --primary: oklch(0.74 0.16 180); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.74 0.16 180); + --sidebar-primary: oklch(0.74 0.16 180); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-blue { --tint-h: 263; --primary: oklch(0.487 0.25 263); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.487 0.25 263); --sidebar-primary: oklch(0.487 0.25 263); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-blue.dark { --primary: oklch(0.72 0.2 263); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.72 0.2 263); --sidebar-primary: oklch(0.72 0.2 263); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-cyan { + --tint-h: 197; + --primary: oklch(0.52 0.2 197); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.52 0.2 197); + --sidebar-primary: oklch(0.52 0.2 197); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-cyan.dark { + --primary: oklch(0.75 0.17 197); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.75 0.17 197); + --sidebar-primary: oklch(0.75 0.17 197); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-indigo { --tint-h: 276; --primary: oklch(0.51 0.26 276); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.51 0.26 276); --sidebar-primary: oklch(0.51 0.26 276); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-indigo.dark { --primary: oklch(0.72 0.22 276); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.72 0.22 276); --sidebar-primary: oklch(0.72 0.22 276); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-sky { + --tint-h: 213; + --primary: oklch(0.54 0.21 213); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.54 0.21 213); + --sidebar-primary: oklch(0.54 0.21 213); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-sky.dark { + --primary: oklch(0.75 0.18 213); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.75 0.18 213); + --sidebar-primary: oklch(0.75 0.18 213); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-violet { --tint-h: 292; --primary: oklch(0.491 0.27 292); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.491 0.27 292); --sidebar-primary: oklch(0.491 0.27 292); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-violet.dark { --primary: oklch(0.72 0.23 292); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.72 0.23 292); --sidebar-primary: oklch(0.72 0.23 292); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-blue { + --tint-h: 263; + --primary: oklch(0.487 0.25 263); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.487 0.25 263); + --sidebar-primary: oklch(0.487 0.25 263); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-blue.dark { + --primary: oklch(0.72 0.2 263); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.72 0.2 263); + --sidebar-primary: oklch(0.72 0.2 263); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-fuchsia { --tint-h: 312; --primary: oklch(0.56 0.27 312); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.56 0.27 312); --sidebar-primary: oklch(0.56 0.27 312); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-fuchsia.dark { --primary: oklch(0.75 0.22 312); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.75 0.22 312); --sidebar-primary: oklch(0.75 0.22 312); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-indigo { + --tint-h: 276; + --primary: oklch(0.51 0.26 276); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.51 0.26 276); + --sidebar-primary: oklch(0.51 0.26 276); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-indigo.dark { + --primary: oklch(0.72 0.22 276); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.72 0.22 276); + --sidebar-primary: oklch(0.72 0.22 276); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-pink { --tint-h: 328; --primary: oklch(0.56 0.26 328); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.56 0.26 328); --sidebar-primary: oklch(0.56 0.26 328); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-pink.dark { --primary: oklch(0.75 0.22 328); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.75 0.22 328); --sidebar-primary: oklch(0.75 0.22 328); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-violet { + --tint-h: 292; + --primary: oklch(0.491 0.27 292); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.491 0.27 292); + --sidebar-primary: oklch(0.491 0.27 292); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-violet.dark { + --primary: oklch(0.72 0.23 292); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.72 0.23 292); + --sidebar-primary: oklch(0.72 0.23 292); + --sidebar-primary-foreground: oklch(0.145 0 0); +} + +html.accent-fuchsia { + --tint-h: 312; + --primary: oklch(0.56 0.27 312); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.56 0.27 312); + --sidebar-primary: oklch(0.56 0.27 312); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-fuchsia.dark { + --primary: oklch(0.75 0.22 312); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.75 0.22 312); + --sidebar-primary: oklch(0.75 0.22 312); + --sidebar-primary-foreground: oklch(0.145 0 0); +} + +html.accent-pink { + --tint-h: 328; + --primary: oklch(0.56 0.26 328); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.56 0.26 328); + --sidebar-primary: oklch(0.56 0.26 328); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-pink.dark { + --primary: oklch(0.75 0.22 328); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.75 0.22 328); + --sidebar-primary: oklch(0.75 0.22 328); + --sidebar-primary-foreground: oklch(0.145 0 0); +} /* Pastel — 15 colors, rainbow order */ -html.accent-coral { --tint-h: 25; --primary: oklch(0.6 0.12 25); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.6 0.12 25); --sidebar-primary: oklch(0.6 0.12 25); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-coral.dark { --primary: oklch(0.76 0.1 25); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.76 0.1 25); --sidebar-primary: oklch(0.76 0.1 25); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-coral { + --tint-h: 25; + --primary: oklch(0.6 0.12 25); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.6 0.12 25); + --sidebar-primary: oklch(0.6 0.12 25); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-coral.dark { + --primary: oklch(0.76 0.1 25); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.76 0.1 25); + --sidebar-primary: oklch(0.76 0.1 25); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-peach { --tint-h: 38; --primary: oklch(0.63 0.11 38); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.63 0.11 38); --sidebar-primary: oklch(0.63 0.11 38); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-peach.dark { --primary: oklch(0.78 0.09 38); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.78 0.09 38); --sidebar-primary: oklch(0.78 0.09 38); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-peach { + --tint-h: 38; + --primary: oklch(0.63 0.11 38); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.63 0.11 38); + --sidebar-primary: oklch(0.63 0.11 38); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-peach.dark { + --primary: oklch(0.78 0.09 38); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.78 0.09 38); + --sidebar-primary: oklch(0.78 0.09 38); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-butter { --tint-h: 80; --primary: oklch(0.66 0.13 80); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.66 0.13 80); --sidebar-primary: oklch(0.66 0.13 80); --sidebar-primary-foreground: oklch(0.145 0 0); } -html.accent-butter.dark { --primary: oklch(0.8 0.11 80); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.8 0.11 80); --sidebar-primary: oklch(0.8 0.11 80); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-butter { + --tint-h: 80; + --primary: oklch(0.66 0.13 80); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.66 0.13 80); + --sidebar-primary: oklch(0.66 0.13 80); + --sidebar-primary-foreground: oklch(0.145 0 0); +} +html.accent-butter.dark { + --primary: oklch(0.8 0.11 80); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.8 0.11 80); + --sidebar-primary: oklch(0.8 0.11 80); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-lemon { --tint-h: 100; --primary: oklch(0.7 0.12 100); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.7 0.12 100); --sidebar-primary: oklch(0.7 0.12 100); --sidebar-primary-foreground: oklch(0.145 0 0); } -html.accent-lemon.dark { --primary: oklch(0.82 0.1 100); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.82 0.1 100); --sidebar-primary: oklch(0.82 0.1 100); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-lemon { + --tint-h: 100; + --primary: oklch(0.7 0.12 100); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.7 0.12 100); + --sidebar-primary: oklch(0.7 0.12 100); + --sidebar-primary-foreground: oklch(0.145 0 0); +} +html.accent-lemon.dark { + --primary: oklch(0.82 0.1 100); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.82 0.1 100); + --sidebar-primary: oklch(0.82 0.1 100); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-celadon { --tint-h: 122; --primary: oklch(0.61 0.1 122); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.61 0.1 122); --sidebar-primary: oklch(0.61 0.1 122); --sidebar-primary-foreground: oklch(0.145 0 0); } -html.accent-celadon.dark { --primary: oklch(0.76 0.08 122); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.76 0.08 122); --sidebar-primary: oklch(0.76 0.08 122); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-celadon { + --tint-h: 122; + --primary: oklch(0.61 0.1 122); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.61 0.1 122); + --sidebar-primary: oklch(0.61 0.1 122); + --sidebar-primary-foreground: oklch(0.145 0 0); +} +html.accent-celadon.dark { + --primary: oklch(0.76 0.08 122); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.76 0.08 122); + --sidebar-primary: oklch(0.76 0.08 122); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-sage { --tint-h: 142; --primary: oklch(0.52 0.1 142); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.52 0.1 142); --sidebar-primary: oklch(0.52 0.1 142); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-sage.dark { --primary: oklch(0.72 0.09 142); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.72 0.09 142); --sidebar-primary: oklch(0.72 0.09 142); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-sage { + --tint-h: 142; + --primary: oklch(0.52 0.1 142); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.52 0.1 142); + --sidebar-primary: oklch(0.52 0.1 142); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-sage.dark { + --primary: oklch(0.72 0.09 142); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.72 0.09 142); + --sidebar-primary: oklch(0.72 0.09 142); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-mint { --tint-h: 158; --primary: oklch(0.6 0.1 158); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.6 0.1 158); --sidebar-primary: oklch(0.6 0.1 158); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-mint.dark { --primary: oklch(0.75 0.09 158); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.75 0.09 158); --sidebar-primary: oklch(0.75 0.09 158); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-mint { + --tint-h: 158; + --primary: oklch(0.6 0.1 158); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.6 0.1 158); + --sidebar-primary: oklch(0.6 0.1 158); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-mint.dark { + --primary: oklch(0.75 0.09 158); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.75 0.09 158); + --sidebar-primary: oklch(0.75 0.09 158); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-seafoam { --tint-h: 178; --primary: oklch(0.61 0.09 178); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.61 0.09 178); --sidebar-primary: oklch(0.61 0.09 178); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-seafoam.dark { --primary: oklch(0.76 0.08 178); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.76 0.08 178); --sidebar-primary: oklch(0.76 0.08 178); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-seafoam { + --tint-h: 178; + --primary: oklch(0.61 0.09 178); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.61 0.09 178); + --sidebar-primary: oklch(0.61 0.09 178); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-seafoam.dark { + --primary: oklch(0.76 0.08 178); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.76 0.08 178); + --sidebar-primary: oklch(0.76 0.08 178); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-powder { --tint-h: 205; --primary: oklch(0.59 0.1 205); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.59 0.1 205); --sidebar-primary: oklch(0.59 0.1 205); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-powder.dark { --primary: oklch(0.75 0.09 205); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.75 0.09 205); --sidebar-primary: oklch(0.75 0.09 205); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-powder { + --tint-h: 205; + --primary: oklch(0.59 0.1 205); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.59 0.1 205); + --sidebar-primary: oklch(0.59 0.1 205); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-powder.dark { + --primary: oklch(0.75 0.09 205); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.75 0.09 205); + --sidebar-primary: oklch(0.75 0.09 205); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-mist { --tint-h: 218; --primary: oklch(0.56 0.1 218); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.56 0.1 218); --sidebar-primary: oklch(0.56 0.1 218); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-mist.dark { --primary: oklch(0.74 0.09 218); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.74 0.09 218); --sidebar-primary: oklch(0.74 0.09 218); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-mist { + --tint-h: 218; + --primary: oklch(0.56 0.1 218); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.56 0.1 218); + --sidebar-primary: oklch(0.56 0.1 218); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-mist.dark { + --primary: oklch(0.74 0.09 218); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.74 0.09 218); + --sidebar-primary: oklch(0.74 0.09 218); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-periwinkle { --tint-h: 265; --primary: oklch(0.54 0.11 265); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.54 0.11 265); --sidebar-primary: oklch(0.54 0.11 265); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-periwinkle.dark { --primary: oklch(0.73 0.1 265); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.73 0.1 265); --sidebar-primary: oklch(0.73 0.1 265); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-periwinkle { + --tint-h: 265; + --primary: oklch(0.54 0.11 265); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.54 0.11 265); + --sidebar-primary: oklch(0.54 0.11 265); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-periwinkle.dark { + --primary: oklch(0.73 0.1 265); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.73 0.1 265); + --sidebar-primary: oklch(0.73 0.1 265); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-wisteria { --tint-h: 285; --primary: oklch(0.55 0.1 285); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.55 0.1 285); --sidebar-primary: oklch(0.55 0.1 285); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-wisteria.dark { --primary: oklch(0.73 0.09 285); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.73 0.09 285); --sidebar-primary: oklch(0.73 0.09 285); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-wisteria { + --tint-h: 285; + --primary: oklch(0.55 0.1 285); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.55 0.1 285); + --sidebar-primary: oklch(0.55 0.1 285); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-wisteria.dark { + --primary: oklch(0.73 0.09 285); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.73 0.09 285); + --sidebar-primary: oklch(0.73 0.09 285); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-lavender { --tint-h: 300; --primary: oklch(0.55 0.11 300); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.55 0.11 300); --sidebar-primary: oklch(0.55 0.11 300); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-lavender.dark { --primary: oklch(0.73 0.1 300); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.73 0.1 300); --sidebar-primary: oklch(0.73 0.1 300); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-lavender { + --tint-h: 300; + --primary: oklch(0.55 0.11 300); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.55 0.11 300); + --sidebar-primary: oklch(0.55 0.11 300); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-lavender.dark { + --primary: oklch(0.73 0.1 300); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.73 0.1 300); + --sidebar-primary: oklch(0.73 0.1 300); + --sidebar-primary-foreground: oklch(0.145 0 0); +} -html.accent-orchid { --tint-h: 315; --primary: oklch(0.56 0.11 315); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.56 0.11 315); --sidebar-primary: oklch(0.56 0.11 315); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-orchid.dark { --primary: oklch(0.74 0.1 315); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.74 0.1 315); --sidebar-primary: oklch(0.74 0.1 315); --sidebar-primary-foreground: oklch(0.145 0 0); } - -html.accent-blush { --tint-h: 345; --primary: oklch(0.54 0.11 345); --primary-foreground: oklch(0.985 0 0); --ring: oklch(0.54 0.11 345); --sidebar-primary: oklch(0.54 0.11 345); --sidebar-primary-foreground: oklch(0.985 0 0); } -html.accent-blush.dark { --primary: oklch(0.73 0.1 345); --primary-foreground: oklch(0.145 0 0); --ring: oklch(0.73 0.1 345); --sidebar-primary: oklch(0.73 0.1 345); --sidebar-primary-foreground: oklch(0.145 0 0); } +html.accent-orchid { + --tint-h: 315; + --primary: oklch(0.56 0.11 315); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.56 0.11 315); + --sidebar-primary: oklch(0.56 0.11 315); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-orchid.dark { + --primary: oklch(0.74 0.1 315); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.74 0.1 315); + --sidebar-primary: oklch(0.74 0.1 315); + --sidebar-primary-foreground: oklch(0.145 0 0); +} +html.accent-blush { + --tint-h: 345; + --primary: oklch(0.54 0.11 345); + --primary-foreground: oklch(0.985 0 0); + --ring: oklch(0.54 0.11 345); + --sidebar-primary: oklch(0.54 0.11 345); + --sidebar-primary-foreground: oklch(0.985 0 0); +} +html.accent-blush.dark { + --primary: oklch(0.73 0.1 345); + --primary-foreground: oklch(0.145 0 0); + --ring: oklch(0.73 0.1 345); + --sidebar-primary: oklch(0.73 0.1 345); + --sidebar-primary-foreground: oklch(0.145 0 0); +} diff --git a/client/src/assets/theme/tokens.css b/client/src/assets/theme/tokens.css index ff2a39013..9e1c76851 100644 --- a/client/src/assets/theme/tokens.css +++ b/client/src/assets/theme/tokens.css @@ -12,44 +12,45 @@ /* Tint controls — warm amber base */ --tint-h: 80; --tint-c: 0.006; + --tint-c-surface: var(--tint-c); /* Colour roles */ - --background: oklch(0.99 var(--tint-c) var(--tint-h)); - --foreground: oklch(0.145 0.015 var(--tint-h)); + --background: oklch(0.99 var(--tint-c-surface) var(--tint-h)); + --foreground: oklch(0.145 var(--tint-c-surface) var(--tint-h)); - --card: oklch(0.975 var(--tint-c) var(--tint-h)); - --card-foreground: oklch(0.145 0.015 var(--tint-h)); + --card: oklch(0.975 var(--tint-c-surface) var(--tint-h)); + --card-foreground: oklch(0.145 var(--tint-c-surface) var(--tint-h)); - --popover: oklch(0.975 var(--tint-c) var(--tint-h)); - --popover-foreground: oklch(0.145 0.015 var(--tint-h)); + --popover: oklch(0.975 var(--tint-c-surface) var(--tint-h)); + --popover-foreground: oklch(0.145 var(--tint-c-surface) var(--tint-h)); - --primary: oklch(0.21 0.015 var(--tint-h)); + --primary: oklch(0.21 var(--tint-c-surface) var(--tint-h)); --primary-foreground: oklch(0.985 0.004 var(--tint-h)); - --secondary: oklch(0.955 var(--tint-c) var(--tint-h)); - --secondary-foreground: oklch(0.21 0.015 var(--tint-h)); + --secondary: oklch(0.955 var(--tint-c-surface) var(--tint-h)); + --secondary-foreground: oklch(0.21 var(--tint-c-surface) var(--tint-h)); - --muted: oklch(0.955 var(--tint-c) var(--tint-h)); + --muted: oklch(0.955 var(--tint-c-surface) var(--tint-h)); --muted-foreground: oklch(0.52 0.008 var(--tint-h)); - --accent: oklch(0.955 var(--tint-c) var(--tint-h)); - --accent-foreground: oklch(0.21 0.015 var(--tint-h)); + --accent: oklch(0.955 var(--tint-c-surface) var(--tint-h)); + --accent-foreground: oklch(0.21 var(--tint-c-surface) var(--tint-h)); --destructive: oklch(0.577 0.245 27.325); --destructive-foreground: oklch(0.985 0 0); - --border: oklch(0.878 0.01 var(--tint-h)); - --input: oklch(0.878 0.01 var(--tint-h)); - --ring: oklch(0.65 0.01 var(--tint-h)); + --border: oklch(0.878 var(--tint-c-surface) var(--tint-h)); + --input: oklch(0.878 var(--tint-c-surface) var(--tint-h)); + --ring: oklch(0.65 var(--tint-c-surface) var(--tint-h)); - --sidebar: oklch(0.965 var(--tint-c) var(--tint-h)); - --sidebar-foreground: oklch(0.145 0.015 var(--tint-h)); - --sidebar-primary: oklch(0.21 0.015 var(--tint-h)); + --sidebar: oklch(0.965 var(--tint-c-surface) var(--tint-h)); + --sidebar-foreground: oklch(0.145 var(--tint-c-surface) var(--tint-h)); + --sidebar-primary: oklch(0.21 var(--tint-c-surface) var(--tint-h)); --sidebar-primary-foreground: oklch(0.985 0.004 var(--tint-h)); - --sidebar-accent: oklch(0.955 var(--tint-c) var(--tint-h)); - --sidebar-accent-foreground: oklch(0.21 0.015 var(--tint-h)); - --sidebar-border: oklch(0.878 0.01 var(--tint-h)); - --sidebar-ring: oklch(0.65 0.01 var(--tint-h)); + --sidebar-accent: oklch(0.955 var(--tint-c-surface) var(--tint-h)); + --sidebar-accent-foreground: oklch(0.21 var(--tint-c-surface) var(--tint-h)); + --sidebar-border: oklch(0.878 var(--tint-c-surface) var(--tint-h)); + --sidebar-ring: oklch(0.65 var(--tint-c-surface) var(--tint-h)); --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); @@ -58,10 +59,10 @@ --chart-5: oklch(0.769 0.188 70.08); /* Elevation surfaces */ - --surface-1: oklch(0.975 var(--tint-c) var(--tint-h)); - --surface-2: oklch(0.955 var(--tint-c) var(--tint-h)); - --surface-3: oklch(0.93 0.01 var(--tint-h)); - --surface-4: oklch(0.91 0.012 var(--tint-h)); + --surface-1: oklch(0.975 var(--tint-c-surface) var(--tint-h)); + --surface-2: oklch(0.955 var(--tint-c-surface) var(--tint-h)); + --surface-3: oklch(0.93 var(--tint-c-surface) var(--tint-h)); + --surface-4: oklch(0.91 var(--tint-c-surface) var(--tint-h)); /* Shadows */ --elevation-xs: 0 1px 2px oklch(0 0 0 / 0.05); @@ -74,32 +75,33 @@ /* Shape */ --radius: 0.625rem; - --dot-color: oklch(0.82 0.01 var(--tint-h)); + --dot-color: oklch(0.82 var(--tint-c-surface) var(--tint-h)); } .dark { --tint-c: 0.01; + --tint-c-surface: var(--tint-c); --bg-lift: 0; - --background: oklch(calc(0.145 + var(--bg-lift)) var(--tint-c) var(--tint-h)); + --background: oklch(calc(0.145 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); --foreground: oklch(0.985 0.004 var(--tint-h)); - --card: oklch(calc(0.205 + var(--bg-lift)) 0.012 var(--tint-h)); + --card: oklch(calc(0.205 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); --card-foreground: oklch(0.985 0.004 var(--tint-h)); - --popover: oklch(calc(0.205 + var(--bg-lift)) 0.012 var(--tint-h)); + --popover: oklch(calc(0.205 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); --popover-foreground: oklch(0.985 0.004 var(--tint-h)); - --primary: oklch(0.91 var(--tint-c) var(--tint-h)); - --primary-foreground: oklch(0.205 0.012 var(--tint-h)); + --primary: oklch(0.91 var(--tint-c-surface) var(--tint-h)); + --primary-foreground: oklch(0.205 var(--tint-c-surface) var(--tint-h)); - --secondary: oklch(calc(0.265 + var(--bg-lift)) 0.012 var(--tint-h)); + --secondary: oklch(calc(0.265 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); --secondary-foreground: oklch(0.985 0.004 var(--tint-h)); - --muted: oklch(calc(0.265 + var(--bg-lift)) 0.012 var(--tint-h)); + --muted: oklch(calc(0.265 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); --muted-foreground: oklch(0.68 0.008 var(--tint-h)); - --accent: oklch(calc(0.265 + var(--bg-lift)) 0.012 var(--tint-h)); + --accent: oklch(calc(0.265 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); --accent-foreground: oklch(0.985 0.004 var(--tint-h)); --destructive: oklch(0.704 0.191 22.216); @@ -109,11 +111,11 @@ --input: oklch(1 0 0 / 15%); --ring: oklch(0.52 0.008 var(--tint-h)); - --sidebar: oklch(calc(0.205 + var(--bg-lift)) 0.012 var(--tint-h)); + --sidebar: oklch(calc(0.205 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); --sidebar-foreground: oklch(0.985 0.004 var(--tint-h)); - --sidebar-primary: oklch(0.91 var(--tint-c) var(--tint-h)); - --sidebar-primary-foreground: oklch(0.205 0.012 var(--tint-h)); - --sidebar-accent: oklch(calc(0.265 + var(--bg-lift)) 0.012 var(--tint-h)); + --sidebar-primary: oklch(0.91 var(--tint-c-surface) var(--tint-h)); + --sidebar-primary-foreground: oklch(0.205 var(--tint-c-surface) var(--tint-h)); + --sidebar-accent: oklch(calc(0.265 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); --sidebar-accent-foreground: oklch(0.985 0.004 var(--tint-h)); --sidebar-border: oklch(1 0 0 / 10%); --sidebar-ring: oklch(0.52 0.008 var(--tint-h)); @@ -125,10 +127,10 @@ --chart-5: oklch(0.645 0.246 16.439); /* Elevation surfaces */ - --surface-1: oklch(calc(0.205 + var(--bg-lift)) 0.012 var(--tint-h)); - --surface-2: oklch(calc(0.235 + var(--bg-lift)) 0.012 var(--tint-h)); - --surface-3: oklch(calc(0.265 + var(--bg-lift)) 0.012 var(--tint-h)); - --surface-4: oklch(calc(0.295 + var(--bg-lift)) 0.012 var(--tint-h)); + --surface-1: oklch(calc(0.205 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); + --surface-2: oklch(calc(0.235 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); + --surface-3: oklch(calc(0.265 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); + --surface-4: oklch(calc(0.295 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); /* Shadows */ --elevation-xs: 0 1px 2px oklch(0 0 0 / 0.4); @@ -138,6 +140,5 @@ --elevation-xl: 0 20px 30px -5px oklch(0 0 0 / 0.6), 0 8px 12px -6px oklch(0 0 0 / 0.4); --elevation-2xl: 0 25px 50px -12px oklch(0 0 0 / 0.7); - --dot-color: oklch(calc(0.3 + var(--bg-lift)) 0.01 var(--tint-h)); + --dot-color: oklch(calc(0.3 + var(--bg-lift)) var(--tint-c-surface) var(--tint-h)); } - diff --git a/client/src/components/AccentPicker.vue b/client/src/components/AccentPicker.vue index 7b654d7e2..162d982ad 100644 --- a/client/src/components/AccentPicker.vue +++ b/client/src/components/AccentPicker.vue @@ -7,7 +7,7 @@ const themeStore = useThemeStore()