From aec7a3fd61ba71aed0333ddd258a9fa9d5a84f34 Mon Sep 17 00:00:00 2001 From: Marc Beninca Date: Thu, 17 Apr 2025 11:19:35 +0200 Subject: [PATCH] js --- in/script/main.js | 43 +++++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/in/script/main.js b/in/script/main.js index b065b4f..7b6582a 100644 --- a/in/script/main.js +++ b/in/script/main.js @@ -1,42 +1,37 @@ const buttons = ["item", "link", "swap"]; -// toggle buttons - for (let button of buttons) { document.getElementById(button).addEventListener("click", () => { document.body.classList.toggle(button); }); } -// theme - -const button = document.getElementById("theme"); +let theme function theme_get() { - return document.documentElement.getAttribute("data-theme"); -} -function theme_load() { - const theme = localStorage.getItem("theme"); - if (theme) { - theme_set(theme); + theme = localStorage.getItem("theme"); + if (! theme) { + if (window.matchMedia("(prefers-color-scheme: dark)").matches) { + theme = "dark"; + } else { + theme = "light"; + } } + theme_set() } -function theme_set(theme) { + +function theme_set() { document.documentElement.setAttribute("data-theme", theme); - theme_write(theme); -} -function theme_swap(theme) { - return theme === "dark" ? "light" : "dark"; -} -function theme_toggle() { - theme_set(theme_swap(theme_get())); -} -function theme_write(theme) { localStorage.setItem("theme", theme); } -button.addEventListener("click", () => { - theme_toggle(); +function theme_swap() { + theme = theme === "light" ? "dark" : "light"; + theme_set(); +} + +document.getElementById("theme").addEventListener("click", () => { + theme_swap(); }); -theme_load(); +theme_get()