document.addEventListener('DOMContentLoaded', function() { const themeToggle = document.getElementById('theme-toggle'); const htmlElement = document.documentElement; // Check for saved theme preference or use device preference const savedTheme = localStorage.getItem('theme') || (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); // Apply saved theme htmlElement.setAttribute('data-theme', savedTheme); updateToggleIcon(savedTheme); // Toggle theme when button is clicked themeToggle.addEventListener('click', function() { const currentTheme = htmlElement.getAttribute('data-theme'); const newTheme = currentTheme === 'dark' ? 'light' : 'dark'; htmlElement.setAttribute('data-theme', newTheme); localStorage.setItem('theme', newTheme); updateToggleIcon(newTheme); }); // Update toggle icon based on current theme function updateToggleIcon(theme) { if (theme === 'dark') { themeToggle.innerHTML = ''; themeToggle.title = 'Switch to light mode'; } else { themeToggle.innerHTML = ''; themeToggle.title = 'Switch to dark mode'; } } // Initialize tooltips initializeTooltips(); }); function initializeTooltips() { const tooltipElements = document.querySelectorAll('[data-tooltip]'); tooltipElements.forEach(element => { const tooltipText = element.getAttribute('data-tooltip'); const tooltipSpan = document.createElement('span'); tooltipSpan.className = 'tooltiptext'; tooltipSpan.textContent = tooltipText; element.classList.add('tooltip'); element.appendChild(tooltipSpan); }); }