// Theme Toggle const themeToggle = document.getElementById('themeToggle'); const body = document.body; const themeIcon = themeToggle.querySelector('i'); // Check for saved theme preference or default to light const currentTheme = localStorage.getItem('theme') || 'light'; if (currentTheme === 'dark') { body.setAttribute('data-theme', 'dark'); themeIcon.classList.remove('fa-moon'); themeIcon.classList.add('fa-sun'); } themeToggle.addEventListener('click', () => { if (body.getAttribute('data-theme') === 'dark') { body.removeAttribute('data-theme'); themeIcon.classList.remove('fa-sun'); themeIcon.classList.add('fa-moon'); localStorage.setItem('theme', 'light'); } else { body.setAttribute('data-theme', 'dark'); themeIcon.classList.remove('fa-moon'); themeIcon.classList.add('fa-sun'); localStorage.setItem('theme', 'dark'); } }); // Progress Bar window.addEventListener('scroll', () => { const winScroll = document.body.scrollTop || document.documentElement.scrollTop; const height = document.documentElement.scrollHeight - document.documentElement.clientHeight; const scrolled = (winScroll / height) * 100; const progressBar = document.getElementById('progressBar'); if (progressBar) { document.getElementById('progressBar').style.width = scrolled + '%'; } }); // Smooth scrolling for navigation links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function(e) { e.preventDefault(); const targetId = this.getAttribute('href'); if (targetId !== '#') { const targetElement = document.querySelector(targetId); if (targetElement) { window.scrollTo({ top: targetElement.offsetTop - 80, behavior: 'smooth' }); } } }); });