File manager - Edit - /var/www/html/transparencia/public/js/darkMode.js
Back
/* ===================================================== TEMA NOTURNO - PORTAL DA TRANSPARÊNCIA Alterna entre tema claro (padrão) e tema escuro. - Persiste a escolha em localStorage - Aplica o tema antes do DOMContentLoaded para evitar o "flash" do tema errado - Atualiza o botão (Lua <-> Sol) com acessibilidade ===================================================== */ (function () { "use strict"; var STORAGE_KEY = "transparencia-theme"; var THEME_DARK = "dark"; var THEME_LIGHT = "light"; function getStoredTheme() { try { return window.localStorage.getItem(STORAGE_KEY); } catch (e) { return null; } } function storeTheme(theme) { try { window.localStorage.setItem(STORAGE_KEY, theme); } catch (e) { // Silencioso: navegador pode bloquear storage (ex.: modo privado) } } function applyTheme(theme) { var root = document.documentElement; if (theme === THEME_DARK) { root.setAttribute("data-theme", "dark"); root.setAttribute("data-bs-theme", "dark"); } else { root.removeAttribute("data-theme"); root.removeAttribute("data-bs-theme"); } } function currentTheme() { return document.documentElement.getAttribute("data-theme") === "dark" ? THEME_DARK : THEME_LIGHT; } function updateToggleButton() { var btn = document.getElementById("themeToggle"); if (!btn) { return; } var isDark = currentTheme() === THEME_DARK; var labelToDark = btn.getAttribute("data-label-to-dark") || "Ativar tema escuro"; var labelToLight = btn.getAttribute("data-label-to-light") || "Voltar ao tema claro"; var label = isDark ? labelToLight : labelToDark; btn.setAttribute("title", label); btn.setAttribute("aria-label", label); btn.setAttribute("aria-pressed", isDark ? "true" : "false"); } var initialTheme = getStoredTheme() === THEME_DARK ? THEME_DARK : THEME_LIGHT; applyTheme(initialTheme); function bindToggle() { var btn = document.getElementById("themeToggle"); if (!btn) { return; } updateToggleButton(); btn.addEventListener("click", function (event) { event.preventDefault(); var next = currentTheme() === THEME_DARK ? THEME_LIGHT : THEME_DARK; applyTheme(next); storeTheme(next); updateToggleButton(); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", bindToggle); } else { bindToggle(); } })();
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.01 |
proxy
|
phpinfo
|
Settings