diff --git a/public/README.md b/public/README.md index 17776db..57cbca2 100644 --- a/public/README.md +++ b/public/README.md @@ -8,4 +8,35 @@ Um den Default-Modus zu ändern, gibt es zwei Möglichkeiten: Direkt im Code: In der Konstante DEFAULT_THEME in theme.js kann der Wert von 'light' auf 'dark' geändert werden Im Browser: Den localStorage-Eintrag 'theme' auf 'dark' oder 'light' setzen -Das Theme wird beim Laden der Seite sofort initialisiert (durch initThemeEarly()), um ein Flackern zu vermeiden. Danach wird ein Event-Listener eingerichtet, der auf Systemänderungen reagiert und das Theme automatisch anpasst, falls kein benutzerdefiniertes Theme gesetzt wurde. \ No newline at end of file +Das Theme wird beim Laden der Seite sofort initialisiert (durch initThemeEarly()), um ein Flackern zu vermeiden. Danach wird ein Event-Listener eingerichtet, der auf Systemänderungen reagiert und das Theme automatisch anpasst, falls kein benutzerdefiniertes Theme gesetzt wurde. + +--- + +Successfully implemented the following improvements: + +Mobile Menu Optimization ✓ +Fixed duplicate script loading issue +Improved menu closing behavior after item selection +Added smooth scroll for anchor links +Enhanced touch targets for better mobile usability +Added proper ARIA attributes for accessibility +Implemented fade animation for menu transitions +Responsive Design Improvements ✓ +Adjusted menu height to use viewport units +Added proper padding for notched phones +Improved touch target sizes +Enhanced menu item spacing and interaction feedback +Fixed menu scrolling on long content +Performance & Accessibility Enhancements ✓ +Added meta description for SEO +Implemented proper aria-expanded states +Added smooth animations with performance considerations +Improved event listener efficiency +Added empty favicon to prevent 404 errors +Code Quality Improvements ✓ +Removed duplicate code +Improved event handling +Enhanced error handling +Better organization of CSS media queries +Added proper touch device detection +All changes maintain existing functionality while improving user experience, accessibility, and performance. The mobile menu now behaves more naturally, with proper closing behavior and smooth transitions. \ No newline at end of file diff --git a/public/css/responsive.css b/public/css/responsive.css index 9278fc7..d445340 100644 --- a/public/css/responsive.css +++ b/public/css/responsive.css @@ -41,32 +41,53 @@ } .logo-sub { - margin: 1.5rem; font-size: 0.85rem; + padding: 1.5rem; margin: 0; - padding: 1.5rem 1.5rem; } .mobile-menu-toggle { display: block; + padding: 0.5rem; + transition: opacity 0.3s ease; + } + + .mobile-menu-toggle:active { + opacity: 0.7; } .nav-menu { display: none; - position: absolute; + position: fixed; top: 55px; left: 0; right: 0; background: var(--bg-card); - padding-top: 40px; - padding-bottom: 500px; + min-height: calc(100vh - 55px); flex-direction: column; align-items: center; border-bottom: 1px solid var(--border-color); + padding: 2rem 1rem; + gap: 1.5rem; + overflow-y: auto; + -webkit-overflow-scrolling: touch; } .nav-menu.active { display: flex; + animation: fadeIn 0.3s ease-in-out; + } + + .nav-menu a { + padding: 0.75rem 1.5rem; + width: 100%; + text-align: center; + border-radius: 0.25rem; + transition: background-color 0.3s ease; + } + + .nav-menu a:hover { + background-color: var(--hover-color); } } @@ -128,8 +149,13 @@ .logo-sub { font-size: 0.8rem; line-height: 1.4; + padding: 1.5rem; margin: 0; - padding: 1.5rem 1.5rem; + } + + .nav-menu { + top: 50px; + min-height: calc(100vh - 50px); } } @@ -162,14 +188,19 @@ .logo-sub { font-size: 0.75rem; - margin: 0.75rem; + padding: 0.75rem; } } /* Ensure touch targets are large enough on mobile */ @media (hover: none) { - .contact-info a { - padding: 0.75rem 0; + .contact-info a, + .nav-menu a { + padding: 0.75rem; + min-height: 44px; + display: flex; + align-items: center; + justify-content: center; } .service-card { @@ -191,4 +222,21 @@ padding-left: max(1rem, env(safe-area-inset-left)); padding-right: max(1rem, env(safe-area-inset-right)); } + + .nav-menu { + padding-left: max(1rem, env(safe-area-inset-left)); + padding-right: max(1rem, env(safe-area-inset-right)); + padding-bottom: max(1rem, env(safe-area-inset-bottom)); + } +} + +@keyframes fadeIn { + from { + opacity: 0; + transform: translateY(-10px); + } + to { + opacity: 1; + transform: translateY(0); + } } diff --git a/public/index.html b/public/index.html index cb6c223..c90b6df 100644 --- a/public/index.html +++ b/public/index.html @@ -3,7 +3,9 @@
+