# Komponenten-Dokumentation
Diese Dokumentation beschreibt alle wiederverwendbaren Blade-Komponenten für die Presseecho und Businessportal24 Themes.
## Inhaltsverzeichnis
1. [Layout-Komponenten](#layout-komponenten)
2. [Navigation-Komponenten](#navigation-komponenten)
3. [Content-Komponenten](#content-komponenten)
4. [Card-Komponenten](#card-komponenten)
5. [Verwendungsbeispiele](#verwendungsbeispiele)
---
## Layout-Komponenten
### Content-Layout
**Pfad:** `resources/views/components/web/content-layout.blade.php`
Hauptlayout für Unterseiten mit optionaler Sidebar.
**Props:**
- `$sidebar` (slot): Sidebar-Inhalt (optional)
- `$sidebarPosition` (string): Position der Sidebar - `'left'` oder `'right'` (default: `'right'`)
**Beispiel ohne Sidebar:**
```blade
```
**Beispiel mit Sidebar:**
```blade
```
### Page Header
**Pfad:** `resources/views/components/web/page-header.blade.php`
Header für Unterseiten mit Titel, Subtitle und optionalem Bild.
**Props:**
- `$title` (string, required): Hauptüberschrift
- `$subtitle` (string, optional): Untertitel
- `$meta` (slot, optional): Meta-Informationen (Badges, Datum, etc.)
- `$image` (string, optional): URL für Header-Bild
- `$compact` (bool): Kompakte Version (default: `false`)
**Beispiel:**
```blade
Exklusiv-Interview
17. Oktober 2024
```
---
## Navigation-Komponenten
### Main Navigation
**Pfad:** `resources/views/components/web/main-navigation.blade.php`
Sticky Navigation für verschiedene Themes.
**Props:**
- `$theme` (string): Theme-Name - `'presseecho'` oder `'businessportal24'` (default: `'presseecho'`)
- `$items` (array, optional): Custom Navigation-Items
**Beispiel Standard:**
```blade
```
**Beispiel Custom Items:**
```blade
```
### Breadcrumb
**Pfad:** `resources/views/components/web/breadcrumb.blade.php`
Breadcrumb-Navigation für Unterseiten.
**Props:**
- `$items` (array, required): Array von Breadcrumb-Items
**Beispiel:**
```blade
```
---
## Content-Komponenten
### Section Header
**Pfad:** `resources/views/components/web/section-header.blade.php`
Header für Content-Sections.
**Props:**
- `$title` (string, required): Section-Titel
- `$subtitle` (string, optional): Subtitle
- `$size` (string): Größe - `'small'`, `'medium'`, `'large'` (default: `'medium'`)
**Beispiel:**
```blade
```
### Hero Banner
**Pfad:** `resources/views/components/web/hero-banner.blade.php`
Hero-Section für Startseiten.
**Props:**
- `$theme` (string): Theme-Name (default: `'presseecho'`)
- `$title` (slot): Hero-Titel
- `$subtitle` (slot): Hero-Subtitle
**Beispiel:**
```blade
Exklusive Fachmeldungen für Ihre Recherche
Exklusive Wirtschaftsinformationen für Journalisten
```
### Sidebar Widget
**Pfad:** `resources/views/components/web/sidebar-widget.blade.php`
Widget-Container für Sidebar-Elemente.
**Props:**
- `$title` (string, optional): Widget-Titel
- `$icon` (slot, optional): Icon als SVG
**Beispiel:**
```blade
Dr. Maria Schmidt
Expertin für KI
```
---
## Card-Komponenten
### Article Card
**Pfad:** `resources/views/components/web/article-card.blade.php`
Standard-Karte für Artikel.
**Props:**
- `$article` (array, required): Artikel-Daten
**Erforderliche Array-Struktur:**
```php
$article = [
'badge' => 'Analyse',
'badgeType' => 'primary', // primary, secondary, success, warning
'category' => 'Industrie 4.0',
'categoryBadgeType' => 'secondary',
'date' => '2024-10-16',
'dateFormatted' => '16. Okt 2024',
'title' => 'Artikeltitel',
'teaser' => 'Kurzbeschreibung...',
'author' => 'Thomas Müller',
'authorInitials' => 'TM',
'image' => 'https://...',
];
```
**Beispiel:**
```blade
@foreach ($articles as $article)
@endforeach
```
### Dossier Card
**Pfad:** `resources/views/components/web/dossier-card.blade.php`
Karte für Themendossiers.
**Props:**
- `$dossier` (array, required): Dossier-Daten
**Erforderliche Array-Struktur:**
```php
$dossier = [
'title' => 'KI in der Industrie',
'description' => 'Alle Facetten der künstlichen Intelligenz...',
'articleCount' => 12,
'image' => 'https://...',
];
```
**Beispiel:**
```blade
@foreach ($dossiers as $dossier)
@endforeach
```
### Highlight Card
**Pfad:** `resources/views/components/web/highlight-card.blade.php`
Karte für Highlights (wird im Slider verwendet).
**Props:**
- `$highlight` (array, required): Highlight-Daten
**Erforderliche Array-Struktur:**
```php
$highlight = [
'badge' => 'Exklusiv-Interview',
'badgeType' => 'primary',
'industry' => 'KI & Innovation',
'date' => '17. Oktober 2024',
'title' => 'Die Zukunft der KI',
'text' => 'Beschreibungstext...',
'author' => 'Dr. Maria Schmidt',
'authorRole' => 'Expertin für KI',
'initials' => 'MS',
'image' => 'https://...',
];
```
### Highlights Slider
**Pfad:** `resources/views/components/web/highlights-slider.blade.php`
Interaktiver Slider für Highlights mit Navigation und Keyboard-Support.
**Props:**
- `$highlights` (array, required): Array von Highlight-Daten
- `$theme` (string): Theme-Name (default: `'presseecho'`)
**Beispiel:**
```blade
@php
$highlights = [
[
'badge' => 'Exklusiv-Interview',
'badgeType' => 'primary',
'industry' => 'KI & Innovation',
'date' => '17. Oktober 2024',
'title' => 'Die Zukunft der KI',
'text' => 'Interview-Text...',
'author' => 'Dr. Maria Schmidt',
'authorRole' => 'Expertin',
'initials' => 'MS',
'image' => 'https://...',
],
// ... weitere Highlights
];
@endphp
```
---
## Verwendungsbeispiele
### Beispiel 1: Artikel-Detailseite
```blade
@extends('web.layouts.web-master')
@section('content')
Interview
17. Oktober 2024
@endsection
```
### Beispiel 2: Kategorie-Übersicht
```blade
@extends('web.layouts.web-master')
@section('content')
@foreach ($articles as $article)
@endforeach
@endsection
```
---
## CSS-Klassen
### Badge-Typen
- `badge` - Basis-Badge
- `badge-primary` - Primary-Farbe
- `badge-secondary` - Secondary-Farbe
- `badge-success` - Erfolg (Grün)
- `badge-warning` - Warnung (Gelb)
### Button-Typen
- `btn-primary` - Primary-Button mit Gradient
- `btn-secondary` - Secondary-Button
- `pagination-btn` - Pagination-Button
- `pagination-active` - Aktive Pagination-Seite
### Card-Typen
- `card` - Basis-Karte
- `card-hover` - Karte mit Hover-Effekt
- `highlight-card` - Highlight-Karte (Slider)
### Layout-Klassen
- `section-light-bg` - Heller Section-Hintergrund
- `section-gradient-bg` - Gradient Section-Hintergrund
- `page-header` - Page-Header-Container
- `page-header-compact` - Kompakter Page-Header
---
## Theme-Anpassung
Alle Komponenten respektieren die Theme-Variablen:
```css
:root {
--primary: /* HSL-Werte */
--secondary: /* HSL-Werte */
--color-primary: /* Hex-Werte */
--color-secondary: /* Hex-Werte */
}
```
**Presseecho:**
- Primary: `#345636` (Grün)
- Secondary: `#6b8f71` (Hellgrün)
**Businessportal24:**
- Primary: `#cf3628` (Rot)
- Secondary: `#f0834a` (Orange)
---
## Best Practices
1. **Komponenten-Verwendung:**
- Nutzen Sie immer die wiederverwendbaren Komponenten
- Vermeiden Sie duplizierte HTML-Strukturen
- Verwenden Sie Props für dynamische Inhalte
2. **CSS-Klassen:**
- Nutzen Sie die vordefinierten CSS-Klassen aus `shared-styles.css`
- Vermeiden Sie Inline-Styles, wo möglich
- Theme-spezifische Overrides in den jeweiligen Theme-CSS-Dateien
3. **Datenstruktur:**
- Halten Sie sich an die definierten Array-Strukturen
- Verwenden Sie `@php`-Blöcke für Daten-Definitionen
- Dokumentieren Sie Custom-Properties
4. **Accessibility:**
- Verwenden Sie semantische HTML-Tags
- Fügen Sie `aria-label` zu interaktiven Elementen hinzu
- Testen Sie die Keyboard-Navigation
---
## Support
Bei Fragen zur Verwendung der Komponenten:
- Siehe Beispiele unter `/resources/views/web/examples/`
- Konsultieren Sie diese Dokumentation
- Prüfen Sie die bestehenden Implementierungen in `presseecho.blade.php`