4-19
This commit is contained in:
parent
45ef5a1a64
commit
8efa9abcc8
4 changed files with 461 additions and 77 deletions
49
script.js
Normal file
49
script.js
Normal 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';
|
||||
}
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue