From a05a5b2704eec66e84c4fc3045127e354cf38e1a Mon Sep 17 00:00:00 2001 From: Ole Mussmann Date: Thu, 20 Feb 2025 20:59:17 +0100 Subject: move inline JS to its own file --- layouts/_default/baseof.html | 36 ++---------------------------------- static/js/theme-switch.js | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 34 deletions(-) create mode 100644 static/js/theme-switch.js diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 52a6767..7a5579d 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -34,38 +34,6 @@ - - + - \ No newline at end of file + 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(); -- cgit v1.2.3