diff --git a/webui/src/lib/theme.js b/webui/src/lib/theme.js new file mode 100644 index 0000000..3606e6b --- /dev/null +++ b/webui/src/lib/theme.js @@ -0,0 +1,16 @@ +const STORAGE_KEY = "picobot-theme"; + +export function preferredTheme() { + const saved = localStorage.getItem(STORAGE_KEY); + if (saved === "light" || saved === "dark") return saved; + return matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; +} + +export function applyTheme(theme) { + document.documentElement.dataset.theme = theme; + document.documentElement.style.colorScheme = theme; + document + .querySelector('meta[name="theme-color"]') + ?.setAttribute("content", theme === "dark" ? "#0b1017" : "#eef1f5"); + localStorage.setItem(STORAGE_KEY, theme); +}