-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
26 lines (23 loc) · 884 Bytes
/
script.js
File metadata and controls
26 lines (23 loc) · 884 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// Dark mode toggle
const themeToggle = document.querySelector(".theme-toggle");
const prefersDarkScheme = window.matchMedia("(prefers-color-scheme: dark)");
function initTheme() {
if (
localStorage.theme === "dark" ||
(!localStorage.theme && prefersDarkScheme.matches)
) {
document.documentElement.setAttribute("data-theme", "dark");
themeToggle.textContent = "☀️";
} else {
document.documentElement.setAttribute("data-theme", "light");
themeToggle.textContent = "🌙";
}
}
themeToggle.addEventListener("click", () => {
const currentTheme = document.documentElement.getAttribute("data-theme");
const newTheme = currentTheme === "dark" ? "light" : "dark";
document.documentElement.setAttribute("data-theme", newTheme);
localStorage.theme = newTheme;
themeToggle.textContent = newTheme === "dark" ? "☀️" : "🌙";
});
initTheme();