theme/persist

This commit is contained in:
Marc Beninca 2025-02-17 01:51:01 +01:00
parent b32a5b260e
commit 2e7410265f
Signed by: marc.beninca
GPG key ID: 9C7613450C80C24F

View file

@ -1,17 +1,35 @@
const button = document.getElementById("theme"); const button = document.getElementById("theme");
const classes = document.documentElement.classList; const classes = document.documentElement.classList;
function refresh() { function button_refresh() {
button.innerHTML = theme(); button.innerHTML = theme_get();
} }
function theme_get() {
function theme() {
return classes.contains("dark")?"dark":"light"; return classes.contains("dark")?"dark":"light";
} }
function theme_read() {
const theme = localStorage.getItem("theme");
if (theme) {
theme_set(theme);
}
}
function theme_set(theme) {
if (theme == "dark") {
classes.add("dark");
}
button_refresh();
}
function theme_toggle() {
classes.toggle("dark");
button_refresh();
theme_write();
}
function theme_write() {
localStorage.setItem("theme", theme_get());
}
button.addEventListener("click", () => { button.addEventListener("click", () => {
classes.toggle("dark"); theme_toggle();
refresh();
}); });
refresh(); theme_read();