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};