summaryrefslogtreecommitdiff
path: root/static
diff options
context:
space:
mode:
Diffstat (limited to 'static')
-rw-r--r--static/css/colors.css28
-rw-r--r--static/js/components/themeSwitcher.js2
-rw-r--r--static/js/util/setThemeBeforeRender.js10
3 files changed, 27 insertions, 13 deletions
diff --git a/static/css/colors.css b/static/css/colors.css
index 159a142..2535049 100644
--- a/static/css/colors.css
+++ b/static/css/colors.css
@@ -1,13 +1,25 @@
:root {
- --background-color: #f4e8e9;
- --text-color: #333;
- --link-color: #d291bc;
- --container-bg: #fff7f8;
+ --background-color-light: #f4e8e9;
+ --text-color-light: #333;
+ --link-color-light: #d291bc;
+ --container-bg-light: #fff7f8;
+
+ --background-color-dark: #333;
+ --text-color-dark: #f4e8e9;
+ --link-color-dark: #b86b77;
+ --container-bg-dark: #424242;
}
[data-theme="DARK"] {
- --background-color: #333;
- --text-color: #f4e8e9;
- --link-color: #b86b77;
- --container-bg: #424242;
+ --background-color: var(--background-color-dark);
+ --text-color: var(--text-color-dark);
+ --link-color: var(--link-color-dark);
+ --container-bg: var(--container-bg-dark);
+}
+
+[data-theme="LIGHT"] {
+ --background-color: var(--background-color-light);
+ --text-color: var(--text-color-light);
+ --link-color: var(--link-color-light);
+ --container-bg: var(--container-bg-light);
}
diff --git a/static/js/components/themeSwitcher.js b/static/js/components/themeSwitcher.js
index 5f6d927..e5497f0 100644
--- a/static/js/components/themeSwitcher.js
+++ b/static/js/components/themeSwitcher.js
@@ -24,4 +24,4 @@ themeSwitcher.addEventListener("click", () =>
setTheme(flipFlopTheme(document.documentElement.getAttribute("data-theme"))),
);
-setTheme(localStorage.getItem("theme") ?? THEMES.LIGHT);
+setTheme(localStorage.getItem("theme") || THEMES.LIGHT);
diff --git a/static/js/util/setThemeBeforeRender.js b/static/js/util/setThemeBeforeRender.js
index d826193..b8f299a 100644
--- a/static/js/util/setThemeBeforeRender.js
+++ b/static/js/util/setThemeBeforeRender.js
@@ -1,6 +1,8 @@
+const preferredMode = window.matchMedia("(prefers-color-scheme: dark)").matches
+ ? "DARK"
+ : "LIGHT";
+localStorage.setItem("theme", localStorage.getItem("theme") || preferredMode);
+
// sets theme before rendering & jquery loaded to prevent flashing of uninitialized theme
// (ugly white background)
-document.documentElement.setAttribute(
- "data-theme",
- localStorage.getItem("theme"),
-);
+document.documentElement.setAttribute("data-theme", preferredMode);