(function () { var STORAGE_KEY = "zhihua-theme-mode"; var MODES = ["auto", "light", "dark"]; function normalize(mode) { return MODES.indexOf(mode) >= 0 ? mode : "auto"; } function readMode() { try { return normalize(localStorage.getItem(STORAGE_KEY)); } catch (error) { return "auto"; } } function applyMode(mode) { var normalized = normalize(mode); document.documentElement.setAttribute("data-theme", normalized); try { localStorage.setItem(STORAGE_KEY, normalized); } catch (error) { /* ignore */ } updateButtons(normalized); } function updateButtons(mode) { document.querySelectorAll("[data-theme-mode]").forEach(function (button) { var active = button.getAttribute("data-theme-mode") === mode; button.classList.toggle("active", active); button.setAttribute("aria-pressed", active ? "true" : "false"); }); } function bindControls() { document.querySelectorAll("[data-theme-mode]").forEach(function (button) { button.addEventListener("click", function () { applyMode(button.getAttribute("data-theme-mode")); }); }); } applyMode(readMode()); document.addEventListener("DOMContentLoaded", bindControls); })();