# 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`