// Theme handling function getPreferredTheme() { if (localStorage.getItem('theme') === 'dark' || (!localStorage.getItem('theme') && window.matchMedia('(prefers-color-scheme: dark)').matches)) { return 'dark'; } return 'light'; } function setTheme(theme) { if (theme === 'dark') { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } localStorage.setItem('theme', theme); } function toggleTheme() { const isDark = document.documentElement.classList.contains('dark'); setTheme(isDark ? 'light' : 'dark'); } // Initialize theme if (getPreferredTheme() === 'dark') { setTheme('dark'); } // Add click event listener document.addEventListener('DOMContentLoaded', () => { const darkModeToggle = document.getElementById('darkModeToggle'); if (darkModeToggle) { darkModeToggle.addEventListener('click', toggleTheme); } }); // Watch for system theme changes window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => { if (!localStorage.getItem('theme')) { setTheme(e.matches ? 'dark' : 'light'); } });