summaryrefslogtreecommitdiff
path: root/sysret.org/themes/tabi-lean/static/js/initializeTheme.js
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2025-09-13 15:01:06 -0600
committerAlejandro Soto <alejandro@34project.org>2025-09-13 15:01:06 -0600
commitf4fcda54638685899c730b3fa90a87d80d6dbef5 (patch)
tree0737e627cce304c3a9c4e757bc5f6571a7456091 /sysret.org/themes/tabi-lean/static/js/initializeTheme.js
parentd8b9cf1f61cc07d625f1c37ccc28adfd58918416 (diff)
parent2c13119932765c6d788f08fb53abc244407c0d80 (diff)
Merge commit '6a7d3111b31e73fc66af5360149d41f690fbcaa4'
Diffstat (limited to 'sysret.org/themes/tabi-lean/static/js/initializeTheme.js')
-rw-r--r--sysret.org/themes/tabi-lean/static/js/initializeTheme.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/sysret.org/themes/tabi-lean/static/js/initializeTheme.js b/sysret.org/themes/tabi-lean/static/js/initializeTheme.js
new file mode 100644
index 0000000..95e754c
--- /dev/null
+++ b/sysret.org/themes/tabi-lean/static/js/initializeTheme.js
@@ -0,0 +1,25 @@
+(function () {
+ // Get the default theme from the HTML data-theme attribute.
+ const defaultTheme = document.documentElement.getAttribute('data-theme');
+
+ // Set the data-default-theme attribute only if defaultTheme is not null.
+ if (defaultTheme) {
+ document.documentElement.setAttribute('data-default-theme', defaultTheme);
+ }
+
+ // Attempt to retrieve the current theme from the browser's local storage.
+ const storedTheme = localStorage.getItem('theme');
+
+ if (storedTheme) {
+ document.documentElement.setAttribute('data-theme', storedTheme);
+ } else if (defaultTheme) {
+ document.documentElement.setAttribute('data-theme', defaultTheme);
+ } else {
+ // If no theme is found in local storage and no default theme is set, use user's system preference.
+ const isSystemDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
+ document.documentElement.setAttribute(
+ 'data-theme',
+ isSystemDark ? 'dark' : 'light'
+ );
+ }
+})();