mirror of
https://github.com/Zproger/Aurum.git
synced 2026-10-13 19:16:40 +07:00
feat: manual theme picker (light/dark/system) in Settings
Theme previously followed only the OS's prefers-color-scheme, which switches automatically on this user's Mac at sunset/sunrise. Adds an explicit override in Settings: Light/Dark/System, System being the previous (default) auto-follow-the-OS behavior. Persisted client-side in localStorage (lib/theme.ts, same pattern as language) rather than server-side like currency — it's a pure display preference, and synchronous localStorage reads are what make the anti-FOUC inline script in index.html possible. index.css already had the [data-theme] CSS variables laid in ahead of time; only the JS to actually set the attribute, and the Settings UI, were missing. Covered by 2 new Playwright specs (theme-switcher.spec.ts) run against the isolated e2e stack: explicit choice overrides a dark OS and survives reload; switching back to "system" doesn't leave a stale forced theme.
This commit is contained in:
@@ -2,10 +2,12 @@ import { AlertThresholdsCard } from "@/components/settings/AlertThresholdsCard";
|
||||
import { BackupCard } from "@/components/settings/BackupCard";
|
||||
import { CurrencyCard } from "@/components/settings/CurrencyCard";
|
||||
import { LanguageCard } from "@/components/settings/LanguageCard";
|
||||
import { ThemeCard } from "@/components/settings/ThemeCard";
|
||||
|
||||
export function SettingsPage() {
|
||||
return (
|
||||
<div className="space-y-5">
|
||||
<ThemeCard />
|
||||
<LanguageCard />
|
||||
<CurrencyCard />
|
||||
<AlertThresholdsCard />
|
||||
|
||||
Reference in New Issue
Block a user