From ede0258cd85fd59bc75ebb563b444b599c549dbf Mon Sep 17 00:00:00 2001 From: fs Date: Fri, 19 Jun 2026 08:40:35 +0200 Subject: [PATCH] =?UTF-8?q?Banner-Slider:=20Crossfade-=C3=9Cbergang=20+=20?= =?UTF-8?q?per-Slide-Akzentfarbe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Folienwechsel als sauberes Crossfade (best practice): Slides im selben Grid-Feld gestapelt → konstante Höhe ohne Sprung, ein-/ausgehende Folie blendet über (Opacity + leichtes translateY). JS steuert die Sichtbarkeit über .is-active statt hidden; ohne JS bleibt der hidden-Fallback (erste Folie). Reduced-Motion über den globalen Kill-Switch instant. Neue Slide-Prop "accent" (CSS-Farbe) überschreibt das Vereins-Rot der Buttons pro Slide; Breadcrumb-Slide nutzt #6cbbbc. Button-Text wird aus der Akzentfarbe dunkel abgeleitet (color-mix), da helle Akzente mit Weiß zu wenig Kontrast haben. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01KDQZ6FuchNUh2bxSW9PeNv --- app/components/banner-slider.php | 32 +++++++- data/banners.json | 1 + public/assets/css/components.css | 124 ++++++++++++++++++++++++++----- public/assets/js/banner.js | 10 ++- 4 files changed, 143 insertions(+), 24 deletions(-) diff --git a/app/components/banner-slider.php b/app/components/banner-slider.php index ad1963a..3fb5bb7 100644 --- a/app/components/banner-slider.php +++ b/app/components/banner-slider.php @@ -9,7 +9,8 @@ declare(strict_types=1); * "tag" (Badge-Text, Default "Anzeige"), "background" (Bild), "cta.internal" * (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). + * für dunkle Firmenlogos), "accent" (CSS-Farbe; überschreibt das Vereins-Rot + * der Buttons für diese Slide, z. B. Sponsor-CI). * 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). @@ -35,9 +36,32 @@ $total = count($banners);