summaryrefslogtreecommitdiff
path: root/static/js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js')
-rw-r--r--static/js/components/themeSwitcher.js2
-rw-r--r--static/js/util/setThemeBeforeRender.js10
2 files changed, 7 insertions, 5 deletions
diff --git a/static/js/components/themeSwitcher.js b/static/js/components/themeSwitcher.js
index 5f6d927..e5497f0 100644
--- a/static/js/components/themeSwitcher.js
+++ b/static/js/components/themeSwitcher.js
@@ -24,4 +24,4 @@ themeSwitcher.addEventListener("click", () =>
setTheme(flipFlopTheme(document.documentElement.getAttribute("data-theme"))),
);
-setTheme(localStorage.getItem("theme") ?? THEMES.LIGHT);
+setTheme(localStorage.getItem("theme") || THEMES.LIGHT);
diff --git a/static/js/util/setThemeBeforeRender.js b/static/js/util/setThemeBeforeRender.js
index d826193..b8f299a 100644
--- a/static/js/util/setThemeBeforeRender.js
+++ b/static/js/util/setThemeBeforeRender.js
@@ -1,6 +1,8 @@
+const preferredMode = window.matchMedia("(prefers-color-scheme: dark)").matches
+ ? "DARK"
+ : "LIGHT";
+localStorage.setItem("theme", localStorage.getItem("theme") || preferredMode);
+
// sets theme before rendering & jquery loaded to prevent flashing of uninitialized theme
// (ugly white background)
-document.documentElement.setAttribute(
- "data-theme",
- localStorage.getItem("theme"),
-);
+document.documentElement.setAttribute("data-theme", preferredMode);