at main 915 B view raw
1function setDarkMode(dark, preference) { 2 if (dark) { 3 preference !== "dark" 4 ? localStorage.setItem("theme", "dark") 5 : localStorage.removeItem("theme"); 6 document.documentElement.classList.add("dark"); 7 } else if (!dark) { 8 preference !== "light" 9 ? localStorage.setItem("theme", "light") 10 : localStorage.removeItem("theme"); 11 document.documentElement.classList.remove("dark"); 12 } 13} 14 15const preference = window.matchMedia("(prefers-color-scheme: dark)").matches 16 ? "dark" 17 : "light"; 18if ( 19 localStorage.getItem("theme") === "dark" || 20 (!("theme" in localStorage) && preference === "dark") 21) { 22 setDarkMode(true, preference); 23} 24window.onload = function () { 25 document 26 .getElementById("button-dark-mode") 27 .addEventListener("click", function () { 28 setDarkMode( 29 !document.documentElement.classList.contains("dark"), 30 preference, 31 ); 32 }); 33};