Skip to content

Commit e80411f

Browse files
committed
Don't save theme by default
1 parent 72201ef commit e80411f

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

src/_includes/layouts/nav.njk

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,24 @@ function toggleSidebar() {
1616
}
1717
{% endjs %}
1818
<script>
19-
function setTheme(dark) {
20-
const html = document.documentElement;
21-
const toggleIcon = document.getElementById("theme-toggle-icon")
22-
if (dark) {
23-
html.setAttribute("data-theme", "dark");
24-
toggleIcon.textContent = "🌙";
25-
localStorage.setItem("theme", "dark");
26-
} else {
27-
html.setAttribute("data-theme", "light");
28-
toggleIcon.textContent = "☀️";
29-
localStorage.setItem("theme", "light");
19+
function setTheme(dark, save) {
20+
const theme = dark ? "dark" : "light";
21+
22+
document.documentElement.setAttribute("data-theme", theme);
23+
document.getElementById("theme-toggle-icon").textContent = dark ? "🌙" : "☀️";
24+
25+
if (save) {
26+
localStorage.setItem("theme", theme);
3027
}
3128
}
3229
3330
function toggleTheme() {
34-
setTheme(document.documentElement.getAttribute("data-theme") !== "dark");
31+
setTheme(document.documentElement.getAttribute("data-theme") !== "dark", true);
32+
}
33+
34+
function fromMedia(prefersDark) {
35+
const saved = localStorage.getItem("theme");
36+
setTheme(saved === "dark" || (!saved && prefersDark), false);
3537
}
3638
</script>
3739

@@ -52,8 +54,9 @@ function toggleTheme() {
5254

5355
<script>
5456
try {
55-
var saved = localStorage.getItem("theme");
56-
var prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
57-
setTheme(saved === "dark" || (!saved && prefersDark))
57+
fromMedia(window.matchMedia("(prefers-color-scheme: dark)").matches);
58+
window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", event => {
59+
fromMedia(event.matches);
60+
});
5861
} catch(e) {}
5962
</script>

0 commit comments

Comments
 (0)