From f294f1a9ded20733ee1856bd12fb9490c7e3c3c7 Mon Sep 17 00:00:00 2001 From: fs Date: Fri, 19 Jun 2026 08:34:39 +0200 Subject: [PATCH] Banner-Slider: Beispiel-Anzeige Breadcrumb Solutions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Zweite Slide als echte Sponsoren-Anzeige (Hero-Foto + Wortmarken-Logo, self-hosted). Komponente erweitert um cta_secondary (Outline-Button) und logo_light (weiße Logo-Platte für dunkle Firmenlogos). CTAs verlinken extern (target=_blank, rel=sponsored) auf Lösungen + Über uns. Mit zwei Slides aktiviert der Slider Auto-Rotation und Indikatoren. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01KDQZ6FuchNUh2bxSW9PeNv --- app/components/banner-slider.php | 29 +++++- data/banners.json | 10 ++ public/assets/css/components.css | 87 ++++++++++-------- .../img/banners/breadcrumb-hero-1600.jpg | Bin 0 -> 170577 bytes .../img/banners/breadcrumb-solutions.svg | 16 ++++ 5 files changed, 99 insertions(+), 43 deletions(-) create mode 100644 public/assets/img/banners/breadcrumb-hero-1600.jpg create mode 100644 public/assets/img/banners/breadcrumb-solutions.svg diff --git a/app/components/banner-slider.php b/app/components/banner-slider.php index 5197f52..ad1963a 100644 --- a/app/components/banner-slider.php +++ b/app/components/banner-slider.php @@ -7,7 +7,9 @@ declare(strict_types=1); * Layout je Slide: 2/3 Titel + Text + CTA, 1/3 Firmenlogo. * Pro Slide optional: "variant" (CSS-Modifier, z. B. "house" für Eigenwerbung), * "tag" (Badge-Text, Default "Anzeige"), "background" (Bild), "cta.internal" - * (interner Link ohne target=_blank/rel=sponsored, für eigene Seiten/Anker). + * (interner Link ohne target=_blank/rel=sponsored, für eigene Seiten/Anker), + * "cta_secondary" (zweiter Button als Outline), "logo_light" (helle Logo-Platte + * für dunkle Firmenlogos). * Auto-Rotation + Fortschritts-Indikatoren übernimmt assets/js/banner.js * (pausiert bei Hover/Fokus, respektiert prefers-reduced-motion). * Ohne JS: nur der erste Banner ist sichtbar (Graceful Degradation). @@ -40,12 +42,29 @@ $total = count($banners);

- - - > (öffnet in neuem Tab) +' + . e($cta['label']) + . ($internal ? '' : ' (öffnet in neuem Tab)') + . ''; + }; +?> + +
+ + +
-