diff options
author | Ole Mussmann <gitlab+account@ole.mn> | 2025-02-20 20:59:17 +0100 |
---|---|---|
committer | Ole Mussmann <gitlab+account@ole.mn> | 2025-02-20 20:59:17 +0100 |
commit | a05a5b2704eec66e84c4fc3045127e354cf38e1a (patch) | |
tree | b4b0981b35911d7ec54f790c3e933f9a99a6250a /static/js | |
parent | 27d124b7f403030ebf996954bf271a06286508e3 (diff) |
move inline JS to its own file
Diffstat (limited to 'static/js')
-rw-r--r-- | static/js/theme-switch.js | 28 |
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(); |