diff --git a/web/templates/base.html b/web/templates/base.html index 7afa700a9..b95c3db79 100644 --- a/web/templates/base.html +++ b/web/templates/base.html @@ -69,20 +69,38 @@ function updateDarkModeIcon() { const isDark = document.documentElement.classList.contains('dark'); const icon = document.getElementById('darkModeIcon'); + const label = document.getElementById('darkModeLabel'); log(`Updating icon. Dark mode is: ${isDark}`); if (icon) { - icon.className = isDark ? 'fas fa-sun' : 'fas fa-moon'; + icon.className = 'fas w-5 text-teal-500 ' + (isDark ? 'fa-sun' : 'fa-moon'); icon.title = isDark ? 'Switch to Light Mode' : 'Switch to Dark Mode'; log('Icon updated successfully'); - } else { - log('Warning: Dark mode icon element not found'); + } + if (label) { + label.textContent = isDark ? 'Light mode' : 'Dark mode'; } } // Initialize dark mode immediately and after DOM content loads initializeDarkMode(); document.addEventListener('DOMContentLoaded', initializeDarkMode); + + // Navbar scroll effect: backdrop blur + shadow on scroll + function updateNavbarOnScroll() { + const header = document.getElementById('main-header'); + if (!header) return; + const scrollClasses = ['bg-teal-600/95', 'dark:bg-teal-800/95', 'backdrop-blur-md', 'shadow-lg']; + if (window.scrollY > 10) { + scrollClasses.forEach(c => header.classList.add(c)); + } else { + scrollClasses.forEach(c => header.classList.remove(c)); + } + } + window.addEventListener('scroll', updateNavbarOnScroll, { + passive: true + }); + document.addEventListener('DOMContentLoaded', updateNavbarOnScroll);