This commit is contained in:
Charlotte Croce 2025-04-19 11:25:29 -04:00
parent 45ef5a1a64
commit 8efa9abcc8
4 changed files with 461 additions and 77 deletions

49
script.js Normal file
View file

@ -0,0 +1,49 @@
// Initialize Lucide icons
lucide.createIcons();
// Update copyright year
document.getElementById('current-year').textContent = new Date().getFullYear();
// Theme toggle
const themeToggle = document.querySelector('.theme-toggle');
const moonIcon = document.getElementById('moon-icon');
const sunIcon = document.getElementById('sun-icon');
// Check for saved preference
if (localStorage.getItem('darkMode') === 'true') {
document.body.classList.add('dark-mode');
moonIcon.style.display = 'none';
sunIcon.style.display = 'block';
}
themeToggle.addEventListener('click', () => {
document.body.classList.toggle('dark-mode');
const isDark = document.body.classList.contains('dark-mode');
moonIcon.style.display = isDark ? 'none' : 'block';
sunIcon.style.display = isDark ? 'block' : 'none';
localStorage.setItem('darkMode', isDark ? 'true' : 'false');
});
// Mobile menu
const menuToggle = document.querySelector('.menu-toggle');
const navLinks = document.querySelector('.nav-links');
const menuIcon = document.getElementById('menu-icon');
const closeIcon = document.getElementById('close-icon');
menuToggle.addEventListener('click', () => {
const isExpanded = menuToggle.getAttribute('aria-expanded') === 'true';
menuToggle.setAttribute('aria-expanded', !isExpanded);
navLinks.classList.toggle('menu-open');
menuIcon.style.display = isExpanded ? 'block' : 'none';
closeIcon.style.display = isExpanded ? 'none' : 'block';
});
// Close menu when clicking outside
document.addEventListener('click', (event) => {
if (!event.target.closest('.menu-toggle') && !event.target.closest('.nav-links') && navLinks.classList.contains('menu-open')) {
navLinks.classList.remove('menu-open');
menuToggle.setAttribute('aria-expanded', 'false');
menuIcon.style.display = 'block';
closeIcon.style.display = 'none';
}
});