Respect system dark-mode setting #81

Merged
sijisu merged 5 commits from sijisu/respect-system-dark-mode into master 2021-08-05 09:13:06 +00:00
Showing only changes of commit 266d996237 - Show all commits
+11 -5
View File
@@ -1,6 +1,12 @@
function restoreDarkmode() {
const prefersDarkMode = window.matchMedia("(prefers-color-scheme: dark)");
const elem = document.getElementById("content");
if (elem && document.cookie.includes("dark-mode=true")) {
if(!document.cookie.includes("dark-mode=")) {
if (prefersDarkMode.matches) {
elem.classList.add("dark-mode");
}
}
if (elem && document.cookie.includes("dark-mode=on")) {
elem.classList.add("dark-mode");
}
}
@@ -8,13 +14,13 @@ function restoreDarkmode() {
function toggleDarkmode() {
const elem = document.getElementById("content");
if (elem) {
const state = elem.classList.toggle("dark-mode");
const state = elem.classList.toggle('dark-mode');
if (state) {
// 31536000 = 1 year; not setting max-age would make it session bound
document.cookie = "dark-mode=true; path=/; max-age=31536000; secure; samesite=strict";
document.cookie = 'dark-mode=on; path=/; max-age=31536000; secure; samesite=strict';
} else {
// Delete the cookie by immediately expiring it
document.cookie = "dark-mode=; path=/; max-age=0; secure; samesite=strict";
// We have to set the off preference as well, so it can override the OS setting
document.cookie = 'dark-mode=off; path=/; max-age=31536000; secure; samesite=strict';
}
}
}