// ======================================== // Mobile Navigation Toggle // ======================================== document.addEventListener('DOMContentLoaded', function() { const navToggle = document.querySelector('.nav-toggle'); const navMenu = document.querySelector('.nav-menu'); if (navToggle) { navToggle.addEventListener('click', function() { navMenu.classList.toggle('active'); // Animate hamburger icon const spans = this.querySelectorAll('span'); if (navMenu.classList.contains('active')) { spans[0].style.transform = 'rotate(45deg) translate(6px, 6px)'; spans[1].style.opacity = '0'; spans[2].style.transform = 'rotate(-45deg) translate(6px, -6px)'; } else { spans[0].style.transform = 'none'; spans[1].style.opacity = '1'; spans[2].style.transform = 'none'; } }); // Close menu when clicking on a link const navLinks = document.querySelectorAll('.nav-menu a'); navLinks.forEach(link => { link.addEventListener('click', () => { navMenu.classList.remove('active'); const spans = navToggle.querySelectorAll('span'); spans[0].style.transform = 'none'; spans[1].style.opacity = '1'; spans[2].style.transform = 'none'; }); }); } // Initialize theme initTheme(); }); // ======================================== // Theme Toggle // ======================================== function initTheme() { // Check for saved theme preference or default to 'dark' mode const currentTheme = localStorage.getItem('theme') || 'dark'; document.documentElement.setAttribute('data-theme', currentTheme); updateThemeIcon(currentTheme); // Add click listener to theme toggle button const themeToggle = document.querySelector('.theme-toggle'); if (themeToggle) { themeToggle.addEventListener('click', toggleTheme); } } function toggleTheme() { const currentTheme = document.documentElement.getAttribute('data-theme'); const newTheme = currentTheme === 'light' ? 'dark' : 'light'; document.documentElement.setAttribute('data-theme', newTheme); localStorage.setItem('theme', newTheme); updateThemeIcon(newTheme); } function updateThemeIcon(theme) { const lightIcon = document.querySelector('.theme-toggle .light-icon'); const darkIcon = document.querySelector('.theme-toggle .dark-icon'); if (lightIcon && darkIcon) { if (theme === 'dark') { // When dark theme is active, show sun icon (to switch TO light) lightIcon.classList.add('active'); darkIcon.classList.remove('active'); } else { // When light theme is active, show moon icon (to switch TO dark) lightIcon.classList.remove('active'); darkIcon.classList.add('active'); } } } // ======================================== // Smooth Scroll // ======================================== document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector(this.getAttribute('href')); if (target) { target.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); });