# Theme Demo Komponenten ## 📋 Übersicht Die Theme-Demo-Seite wurde in wiederverwendbare Livewire-Komponenten unterteilt, um bessere Wartbarkeit und Übersichtlichkeit zu gewährleisten. ## 🧩 Komponenten-Struktur ### 1. **ThemeInfo** (`app/Livewire/Web/Components/ThemeInfo.php`) - **Zweck:** Zeigt aktuelle Domain-Konfiguration und Theme-Details - **Features:** - Domain-Name und Theme-Informationen - Primär- und Sekundärfarben mit Farbvorschau - Schriftarten-Informationen - URL-Konfiguration ### 2. **LogoDemo** (`app/Livewire/Web/Components/LogoDemo.php`) - **Zweck:** Demonstriert Logo-Varianten für das aktuelle Theme - **Features:** - Positives Logo auf hellem Hintergrund - Negatives Logo auf dunklem Hintergrund - Automatische Logo-Auswahl basierend auf Theme ### 3. **ColorDemo** (`app/Livewire/Web/Components/ColorDemo.php`) - **Zweck:** Zeigt die Hauptfarben des aktuellen Themes - **Features:** - Primary-Farbe mit Hex-Code - Secondary-Farbe mit Hex-Code - Accent-Farbe (immer Neutral) - Farbvorschau-Karten ### 4. **ButtonDemo** (`app/Livewire/Web/Components/ButtonDemo.php`) - **Zweck:** Demonstriert Button-Styles und Hover-Effekte - **Features:** - Primary, Secondary und Accent Buttons - Hover-Effekte mit Übergängen - Theme-spezifische Farbwechsel ### 5. **ThemeSwitcher** (`app/Livewire/Web/Components/ThemeSwitcher.php`) - **Zweck:** Bietet verschiedene Wege zum Theme-Switching - **Features:** - Domain-basierte Links - URL-Parameter-Links - Pfad-basierte Links für lokale Entwicklung ### 6. **DemoSection** (`app/Livewire/Web/Components/DemoSection.php`) - **Zweck:** Wiederverwendbarer Container für Demo-Bereiche - **Features:** - Einheitliches Layout - Titel und Beschreibung - Flexible Inhalte ## 🎯 Verwendung ### Haupt-Theme-Demo-View ```blade @extends('web.layouts.web-master') @section('content')
@endsection ``` ### Einzelne Komponenten verwenden ```blade ``` ## 🔧 Wartbarkeit ### Vorteile der Komponenten-Struktur: 1. **Modularität:** Jede Komponente hat einen spezifischen Zweck 2. **Wiederverwendbarkeit:** Komponenten können in anderen Views verwendet werden 3. **Wartbarkeit:** Änderungen an einer Komponente betreffen nur diese 4. **Testbarkeit:** Jede Komponente kann einzeln getestet werden 5. **Übersichtlichkeit:** Haupt-View ist sehr sauber und lesbar ### Datei-Struktur: ``` app/Livewire/Web/Components/ ├── ThemeInfo.php ├── LogoDemo.php ├── ColorDemo.php ├── ButtonDemo.php ├── ThemeSwitcher.php └── DemoSection.php resources/views/livewire/web/components/ ├── theme-info.blade.php ├── logo-demo.blade.php ├── color-demo.blade.php ├── button-demo.blade.php ├── theme-switcher.blade.php └── demo-section.blade.php ``` ## 🚀 Erweiterungen ### Neue Demo-Komponenten hinzufügen: 1. **Komponente erstellen:** ```php // app/Livewire/Web/Components/NewDemo.php

Neue Demo

``` 3. **In Haupt-View einbinden:** ```blade ``` ### DemoSection verwenden: ```blade ``` ## 📝 Best Practices 1. **Einheitliche Struktur:** Alle Demo-Komponenten folgen dem gleichen Layout-Pattern 2. **Responsive Design:** Alle Komponenten sind mobile-optimiert 3. **Accessibility:** Semantische HTML-Struktur und ARIA-Labels 4. **Performance:** Minimale JavaScript-Dependencies 5. **Theme-Konsistenz:** Verwendung der Theme-Helper für dynamische Inhalte ## 🔍 Debugging ### Komponenten einzeln testen: ```bash # Spezifische Komponente testen php artisan livewire:make ComponentName # Komponenten-Status prüfen php artisan livewire:list ``` ### Theme-Helper testen: ```php // In tinker php artisan tinker >>> \App\Helpers\ThemeHelper::getPrimaryColor() >>> \App\Helpers\ThemeHelper::getLogoPath('positive') ```