diff --git a/assets/js/application.js b/assets/js/application.js index dd353cacb2..9701a9b6ce 100644 --- a/assets/js/application.js +++ b/assets/js/application.js @@ -643,7 +643,8 @@ var DarkMode = { theme = document.documentElement.dataset.theme === "dark" ? "light" : "dark" } document.documentElement.dataset.theme = theme - localStorage.setItem("theme", theme); + if (prefersDarkScheme === (theme === "dark")) localStorage.removeItem("theme"); + else localStorage.setItem("theme", theme); button.attr("src", `${baseURLPrefix}images/${theme === "dark" ? "light" : "dark"}-mode.svg`); }); }, diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 3c3c442f07..721d1e636b 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -49,7 +49,8 @@

Redirecting…

if (currentTheme) { // Check dark mode preference at the OS level const prefersDarkScheme = window.matchMedia("(prefers-color-scheme: dark)").matches - if ((prefersDarkScheme && currentTheme === "light") + if (prefersDarkScheme === (currentTheme === "dark")) localStorage.removeItem("theme") + else if ((prefersDarkScheme && currentTheme === "light") || (!prefersDarkScheme && currentTheme === "dark")) { document.documentElement.dataset.theme = currentTheme }