/* SliTaz - Light/Dark theme toggle */ (function() { var html = document.documentElement; /* localStorage throws when storage is blocked (private browsing) */ var saved = null; try { saved = localStorage.getItem('slitaz-theme'); } catch (e) {} if (saved) html.setAttribute('data-theme', saved); })(); function toggleTheme() { var html = document.documentElement; var current = html.getAttribute('data-theme'); var isDark; if (current === 'dark') { isDark = false; } else if (current === 'light') { isDark = true; } else { isDark = !window.matchMedia('(prefers-color-scheme: dark)').matches; } var next = isDark ? 'dark' : 'light'; html.setAttribute('data-theme', next); try { localStorage.setItem('slitaz-theme', next); } catch (e) {} updateThemeIcon(isDark); } function updateThemeIcon(isDark) { var btn = document.getElementById('theme-toggle'); if (!btn) return; btn.setAttribute('aria-label', isDark ? 'Switch to light mode' : 'Switch to dark mode'); btn.innerHTML = isDark ? '' : ''; } document.addEventListener('DOMContentLoaded', function() { var btn = document.getElementById('theme-toggle'); if (!btn) return; var theme = document.documentElement.getAttribute('data-theme'); var isDark = theme === 'dark' || (!theme && window.matchMedia('(prefers-color-scheme: dark)').matches); updateThemeIcon(isDark); }); .