summaryrefslogtreecommitdiff
path: root/static/js/theme-switch.js
diff options
context:
space:
mode:
authorOle Mussmann <gitlab+account@ole.mn>2025-02-20 20:59:17 +0100
committerOle Mussmann <gitlab+account@ole.mn>2025-02-20 20:59:17 +0100
commita05a5b2704eec66e84c4fc3045127e354cf38e1a (patch)
treeb4b0981b35911d7ec54f790c3e933f9a99a6250a /static/js/theme-switch.js
parent27d124b7f403030ebf996954bf271a06286508e3 (diff)
move inline JS to its own file
Diffstat (limited to 'static/js/theme-switch.js')
-rw-r--r--static/js/theme-switch.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/static/js/theme-switch.js b/static/js/theme-switch.js
new file mode 100644
index 0000000..a617fda
--- /dev/null
+++ b/static/js/theme-switch.js
@@ -0,0 +1,28 @@
+function isAuto() {
+ return document.body.classList.contains("auto");
+}
+
+function setTheme() {
+ if (!isAuto()) {
+ return
+ }
+
+ document.body.classList.remove("auto");
+ let cls = "light";
+ if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
+ cls = "dark";
+ }
+
+ document.body.classList.add(cls);
+}
+
+function invertBody() {
+ document.body.classList.toggle("dark");
+ document.body.classList.toggle("light");
+}
+
+if (isAuto()) {
+ window.matchMedia('(prefers-color-scheme: dark)').addListener(invertBody);
+}
+
+setTheme();