const themeToggle = document.querySelector('.theme-toggle'); const html = document.documentElement; function getPreferredTheme() { const savedTheme = localStorage.getItem('theme'); if (savedTheme) { return savedTheme; } const systemPreference = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; return systemPreference; } function setTheme(theme) { html.setAttribute('data-theme', theme); localStorage.setItem('theme', theme); } const initialTheme = getPreferredTheme(); setTheme(initialTheme); if (themeToggle) { themeToggle.addEventListener('click', () => { const currentTheme = html.getAttribute('data-theme'); const newTheme = currentTheme === 'dark' ? 'light' : 'dark'; setTheme(newTheme); }); } window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => { if (!localStorage.getItem('theme')) { const newTheme = e.matches ? 'dark' : 'light'; setTheme(newTheme); } });