summaryrefslogtreecommitdiff
path: root/themes/tabi-lean/static/js/initializeTheme.js
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2025-09-13 14:55:15 -0600
committerAlejandro Soto <alejandro@34project.org>2025-09-13 14:55:15 -0600
commit87f85704af1fa866be83077b2b351c1fdad7c3ce (patch)
treeb49c8d49ef717e539bff6578992e692eea55d380 /themes/tabi-lean/static/js/initializeTheme.js
parent1a4c3216f027d6a6f36104547377b7b21faa5015 (diff)
parenta2ea06d513a5802964f8f0ef5795cec7e548ed7b (diff)
Merge commit 'a2ea06d513a5802964f8f0ef5795cec7e548ed7b' as 'themes/tabi-lean'
Diffstat (limited to 'themes/tabi-lean/static/js/initializeTheme.js')
-rw-r--r--themes/tabi-lean/static/js/initializeTheme.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/themes/tabi-lean/static/js/initializeTheme.js b/themes/tabi-lean/static/js/initializeTheme.js
new file mode 100644
index 0000000..95e754c
--- /dev/null
+++ b/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'
+ );
+ }
+})();