diff --git a/public/README.md b/public/README.md index 3c05b09..15fd274 100644 --- a/public/README.md +++ b/public/README.md @@ -1,99 +1,84 @@ -Der Default-Theme-Modus wird durch zwei Faktoren bestimmt: +# 7SYS Website -Wenn ein Theme bereits im localStorage gespeichert wurde (unter dem Key 'theme'), wird dieses verwendet -Ansonsten wird das System-Theme des Betriebssystems verwendet: -Wenn das System auf "Dark Mode" eingestellt ist, wird Dark Mode aktiviert -Wenn das System auf "Light Mode" eingestellt ist, wird Light Mode aktiviert -Um den Default-Modus zu ändern, gibt es zwei Möglichkeiten: +Eine professionelle Website für IT-Lösungen und digitale Souveränität. -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. +## Projektbeschreibung ---- +Diese Website dient als digitale Präsenz von 7SYS, einem spezialisierten IT-Dienstleister mit Fokus auf maßgeschneiderte IT-Lösungen und digitale Souveränität. Die Plattform präsentiert das Leistungsportfolio und die Expertise im Bereich IT-Infrastruktur, Systemadministration und Automatisierung. -Successfully implemented the following improvements: +## Hauptfunktionen -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. +- Responsive Single-Page Design +- Dynamisches Theme-System (Hell/Dunkel) +- Interaktive Service-Cards mit detaillierten Informationen +- Modulare Komponenten-Architektur +- Optimierte Performance durch CSS-Animationen +- Barrierefreie Benutzeroberfläche ---- +## Technologien -Current Implementation Analysis: +- **Frontend:** + - HTML5 + - CSS3 (modulare Struktur mit separaten Dateien für bessere Wartbarkeit) + - Vanilla JavaScript (components.js, theme.js) + - Font Awesome Icons + - Google Fonts (Montserrat, Open Sans) -Theme System Architecture -CSS Variables (variables.css): ✓ Well-structured light/dark theme variables ✓ Logical separation of common tokens ✓ Clear naming conventions ✓ Efficient use of CSS custom properties -Theme Switching (theme.js): -Robust Implementation: ✓ IIFE for encapsulation ✓ Early initialization prevents FOUC ✓ System theme preference detection ✓ Local storage persistence ✓ Comprehensive error handling -CSS Structure: -Modular Organization: ✓ Separate files for different concerns ✓ Clean inheritance patterns ✓ Proper cascade management ✓ Efficient variable usage -Integration: -Clean Component Integration: ✓ Theme toggle properly placed in header ✓ Smooth transitions between themes ✓ Proper script/style loading order -Strengths to Preserve: +- **Architektur:** + - Komponenten-basierte Struktur + - Modulares CSS-System + - Responsive Design mit CSS Variables + - Progressive Enhancement -The modular CSS architecture -The CSS variables-based theming approach -The early theme initialization -The system preference detection -Minor Optimization Suggestions: +## Setup/Installation -Theme Switching Performance: +1. Repository klonen: +```bash +git clone [repository-url] +``` -/* Add to variables.css */ -:root { - /* Add GPU acceleration for theme transitions */ - --theme-transition: color var(--transition-speed) ease, - background-color var(--transition-speed) ease; - --gpu-accelerated: translate3d(0, 0, 0); -} -Theme Toggle Accessibility: +2. Projektverzeichnis öffnen: +```bash +cd web7syspub +``` -/* Add to header.css */ -.theme-toggle:focus-visible { - outline: 2px solid var(--primary); - outline-offset: 2px; - border-radius: var(--border-radius); -} -Theme Persistence Enhancement: +3. Einen lokalen Webserver starten, zum Beispiel mit Python: +```bash +# Python 3 +python -m http.server 8000 +``` -// Add to theme.js persistTheme function -function persistTheme() { - try { - const currentTheme = getCurrentTheme(); - localStorage.setItem(THEME_STORAGE_KEY, currentTheme); - // Add theme to body for better SSR support - document.body.dataset.theme = currentTheme; - } catch (error) { - console.warn('Theme persistence error:', error); - } -} -These suggestions maintain the existing architecture while adding: +4. Website im Browser öffnen: +``` +http://localhost:8000/public +``` -Improved performance through GPU acceleration -Enhanced accessibility -Better server-side rendering support -The current implementation is well-structured and follows best practices. The suggested optimizations are minimal and non-invasive, preserving the existing functionality while making subtle improvements to performance and accessibility. \ No newline at end of file +## Projektstruktur + +``` +public/ +├── components/ # Wiederverwendbare HTML-Komponenten +├── css/ # Modulare CSS-Dateien +│ ├── animations.css +│ ├── base.css +│ ├── components.css +│ ├── layout.css +│ └── variables.css +├── js/ # JavaScript-Module +│ ├── components.js +│ └── theme.js +└── index.html # Hauptseite +``` + +## Features im Detail + +- **Responsive Design:** Optimierte Darstellung auf allen Geräten +- **Themensystem:** Automatische Anpassung an Systemeinstellungen +- **Modulare CSS-Struktur:** Verbesserte Wartbarkeit und Performance +- **Barrierefreiheit:** Semantische HTML-Struktur und ARIA-Attribute +- **Performance:** Optimierte Ladezeiten durch modulare Ressourcen + +## Kontakt + +- E-Mail: info@7sys.de +- Signal: Verfügbar über Website-Link diff --git a/public/css/components.css b/public/css/components.css index e0af408..f9c01c1 100644 --- a/public/css/components.css +++ b/public/css/components.css @@ -8,10 +8,6 @@ border-color var(--transition-speed) ease; } -.card-base:hover { - border-color: var(--primary); -} - /* Mission Vision Cards */ .mission-vision { display: grid; @@ -20,69 +16,56 @@ margin: var(--spacing-xl) 0; } -.mission-vision .tooltip-container { +.tooltip-container { background: var(--bg-card); padding: var(--spacing-xl); border-radius: var(--border-radius); border: 1px solid var(--border-color); - text-align: center; - position: relative; cursor: pointer; - transition: transform var(--transition-speed) ease, - border-color var(--transition-speed) ease; + transition: border-color 0.3s ease; } -.mission-vision .tooltip-container:hover { - transform: translateY(-5px); +.tooltip-container:hover { border-color: var(--primary); } -.mission-vision h3 { +.tooltip-container h3 { color: var(--primary); margin-bottom: var(--spacing-md); } -/* Tooltip Styles */ -.tooltip-container { +.tooltip-header { position: relative; + padding-right: 30px; } -.tooltip { - visibility: hidden; +.tooltip-header::after { + content: '▼'; + position: absolute; + right: 0; + top: 0; + color: var(--primary); + transition: transform 0.3s ease; +} + +.tooltip-container.active .tooltip-header::after { + transform: rotate(180deg); +} + +.tooltip-content { + max-height: 0; + overflow: hidden; opacity: 0; - position: absolute; - bottom: 120%; - left: 50%; - transform: translateX(-50%); - background: var(--bg-card); - color: var(--text); - padding: var(--spacing-lg); - border-radius: var(--border-radius); - width: 300px; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); - border: 1px solid var(--border-color); - font-size: 0.9rem; - line-height: 1.5; - text-align: left; - z-index: 100; - transition: opacity var(--transition-speed) ease, - visibility var(--transition-speed) ease; + transition: max-height 0.3s ease-out, opacity 0.3s ease-out, margin 0.3s ease-out; + margin-top: 0; } -.tooltip::after { - content: ''; - position: absolute; - bottom: -10px; - left: 50%; - transform: translateX(-50%); - border-width: 10px 10px 0; - border-style: solid; - border-color: var(--bg-card) transparent transparent transparent; -} - -.tooltip-container:hover .tooltip { - visibility: visible; +.tooltip-container.active .tooltip-content { + max-height: 500px; opacity: 1; + margin-top: var(--spacing-lg); + padding-top: var(--spacing-lg); + border-top: 1px solid var(--border-color); } /* Service Cards */ @@ -92,14 +75,11 @@ border-radius: var(--border-radius); border: 1px solid var(--border-color); margin: var(--spacing-lg) 0; - transition: transform var(--transition-speed) ease, - border-color var(--transition-speed) ease; + transition: border-color 0.3s ease; } .service-card:hover { border-color: var(--primary); - box-shadow: 0 10px 20px rgba(0,0,0,0.1); - transition: all 0.3s ease; } .service-card h3 { @@ -107,6 +87,20 @@ margin-bottom: var(--spacing-md); } +.service-card li { + list-style: none; + margin-bottom: var(--spacing-sm); + position: relative; + padding-left: 1.5em; +} + +.service-card li::before { + content: '•'; + position: absolute; + left: 0; + color: var(--primary); +} + /* Contact Info Card */ .contact-info { background: var(--bg-card); @@ -115,11 +109,11 @@ border: 1px solid var(--border-color); margin: var(--spacing-xl) 0; text-align: center; + transition: border-color 0.3s ease; } .contact-info:hover { border-color: var(--primary); - transition: all 0.3s ease; } .contact-info p { @@ -149,7 +143,6 @@ .contact-link:hover { color: var(--primary) !important; border-color: var(--primary); - opacity: 1; } .contact-link i { @@ -164,62 +157,13 @@ height: 1.2em; } -.contact-link:hover .signal-icon { - color: var(--primary); -} - /* Quote Styles */ -.quote { - font-size: 1.2rem; - line-height: 1.6; - padding: var(--spacing-xl); - margin: var(--spacing-xl) 0; - background: var(--bg-card); - border-left: 4px solid var(--primary); - border-radius: 0 var(--border-radius) var(--border-radius) 0; - color: var(--text); - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); -} - -.hero-quote { - font-size: 1.3rem; - line-height: 1.7; - color: var(--text); - max-width: 900px; - margin: var(--spacing-xl) auto; - padding: var(--spacing-md) 0; - position: relative; - font-weight: 300; - opacity: 0.9; -} - -.hero-quote::before { - content: '"'; - position: absolute; - top: -30px; - left: -10px; - font-size: 3rem; - color: var(--primary); - opacity: 0.3; -} - .welcome-quote { font-size: 1.1rem; text-align: center; padding: var(--spacing-xl); } -.welcome-quote:before { - content: '°'; - position: absolute; - top: -10px; - left: 0; - font-size: 1rem; - color: var(--primary); - opacity: 0.2; -} - -/* Logo Sub Text */ .logo-sub { display: block; text-align: center; @@ -230,3 +174,19 @@ line-height: 1.4; font-style: italic; } + +/* Mobile Optimizations */ +@media (max-width: 768px) { + .tooltip-container { + padding: var(--spacing-lg); + } + + .tooltip-content { + font-size: 1rem; + line-height: 1.6; + } + + .service-card { + padding: var(--spacing-lg); + } +} diff --git a/public/index.html b/public/index.html index f30ad05..8a57486 100644 --- a/public/index.html +++ b/public/index.html @@ -31,19 +31,21 @@ Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better. - Edsger Wybe Dijkstra (1930–2002)
Digitale Souveränität
-Digitale Souveränität
+Sichere und nachhaltige IT-Lösungen
-Sichere und nachhaltige IT-Lösungen
+Professionelle Verwaltung und Wartung Ihrer IT-Systeme
+