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);