Spaces:
Running
Running
File size: 1,462 Bytes
8d0c931 50fc523 8d0c931 50fc523 8d0c931 50fc523 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
document.addEventListener('DOMContentLoaded', () => {
// Initialize theme from localStorage or prefer-color-scheme
const storedTheme = localStorage.getItem('theme') ||
(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
document.documentElement.classList.add(storedTheme);
// Apply theme to body for better transitions
document.body.style.transition = 'background-color 0.3s ease';
// Initialize navbar collapsed state
const navbar = document.querySelector('custom-navbar');
if (navbar) {
const isCollapsed = localStorage.getItem('navbarCollapsed') === 'true';
const mainContent = document.querySelector('main');
if (mainContent) {
mainContent.style.marginLeft = isCollapsed ? '80px' : '250px';
}
}
});
// Watch for theme changes
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', e => {
const newTheme = e.matches ? 'dark' : 'light';
document.documentElement.classList.remove('dark', 'light');
document.documentElement.classList.add(newTheme);
localStorage.setItem('theme', newTheme);
});
// Smooth scroll for navigation items
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
document.querySelector(this.getAttribute('href')).scrollIntoView({
behavior: 'smooth'
});
});
}); |