color-scheme toggle
js
CSS
function toggleColorScheme() {
let cs = getComputedStyle(document.querySelector(":root")).getPropertyValue("color-scheme")
switch (cs) {
case "light": // light => dark
document.querySelector(":root").style.setProperty("color-scheme", "dark");
break;
case "dark": // dark => light
document.querySelector(":root").style.setProperty("color-scheme", "light");
break;
default: // normal or other
if (window.matchMedia) {
if(window.matchMedia("(prefers-color-scheme: dark)").matches) { // normal (probably light) => dark
document.querySelector(":root").style.setProperty("color-scheme", "dark");
} else { // light => dark
document.querySelector(":root").style.setProperty("color-scheme", "dark");
}
} else { // default (probably light) => dark
document.querySelector(":root").style.setProperty("color-scheme", "dark");
}
}
}