Akkordeon SDC — Figma-Compliance-Fixes (Dark Context)
accordion.twig werden gemäß Figma-Spec korrigiert: Borderfarbe border-brand-white → border-brand-lime, vertikales Padding py-3.5 → py-6 (14 px → 24 px), Content-Gap in-[.accordion--open]:pb-3.5 → in-[.accordion--open]:pt-3 (12 px). Betrifft ausschließlich den Dark-Context-Stil. Scope: eine Datei, drei Token-Ersetzungen, kein JS. approved · Erstellt: 2026-05-20 · Jira: P2503-168
Problem Statement
Das Akkordeon (FAQ-Bereich) auf der SOLCOM-Website weicht im Dark-Context-Stil an drei Stellen von der Figma-Spezifikation ab:
- Borderfarbe: Die dashed Trennlinien zwischen den Accordion-Items erscheinen weiß (
border-brand-white), laut Figma sollen sie Lime (#bedc00/border-brand-lime) sein. - Vertikales Padding: Der Titelbereich hat aktuell 14 px Padding (
py-3.5); Figma spezifiziert 24 px (py-6). Eine geschlossene Accordion-Zeile ist dadurch zu kompakt. - Content-Gap: Im geöffneten Zustand entsteht der Abstand zwischen Titelzeile und Inhalt am falschen Ende (
pb-3.5am unteren Rand stattpt-3am oberen des Content-Div). Figma spezifiziert 12 px Abstand zwischen Button-Unterkante und Inhaltsbeginn.
Die Abweichungen sind rein visuell und betreffen keine Interaktions- oder Zugänglichkeitslogik. Sie entstanden beim initialen Aufbau der Komponente und wurden erst beim Figma-Compliance-Review (Figma-Node 61447:26220) entdeckt.
Solution
Drei präzise CVA-Klassen-Ersetzungen in accordion.twig bringen die Komponente auf Figma-Parität. Keine Schema-Änderung, kein JavaScript, keine neue Datei. Die Änderungen sind rückwärtskompatibel — bestehende Canvas-Seiten mit Accordion-Items profitieren automatisch.
User Stories
- Als Besucher der SOLCOM-Website möchte ich, dass die Trennlinien zwischen Accordion-Items in der Figma-konformen Lime-Farbe erscheinen, damit das Design konsistent mit der SOLCOM Corporate Identity wirkt.
- Als Besucher möchte ich, dass der Titelbereich eines Accordion-Items ausreichend vertikales Padding hat (24 px), damit die Klickfläche komfortabel zu treffen ist und die Seite nicht überdichtet wirkt.
- Als Besucher möchte ich, dass beim Öffnen eines Accordion-Items ein klarer visueller Abstand (12 px) zwischen dem Titel und dem Inhalt sichtbar ist, damit Titel und Content klar voneinander getrennt sind.
- Als Entwickler möchte ich, dass alle vier Interaktionszustände des Akkordeons (Closed/Default, Closed/Hover, Open/Default, Open/Hover) nach den Fixes visuell den Figma-Frames
61447:25132,61447:25188,61447:25198,61447:25224entsprechen, damit ich den visuellen Abgleich eindeutig verifizieren kann. - Als Entwickler möchte ich, dass die Öffnen/Schließen-Animation des Akkordeons nach den Fixes weiterhin flüssig läuft und kein visueller Bruch auftritt, damit die Interaktionsqualität erhalten bleibt.
- Als Site Builder möchte ich, dass auf einer Canvas-Testseite (
/test/akkordeon) ein Accordion-Container mit mindestens drei Items angelegt ist, damit ich die Fixes in der Produktionsumgebung schnell verifikzieren kann.
Implementation Decisions
Betroffene Komponente
Ausschließlich accordion.twig (SDC: byte_theme:accordion) wird modifiziert. accordion.component.yml, accordion.js und accordion-container bleiben unverändert.
CVA-Änderungen (drei Token-Ersetzungen)
| CVA-Variable | Eigenschaft | Vorher | Nachher | Figma-Quelle |
|---|---|---|---|---|
section |
Borderfarbe | border-brand-white |
border-brand-lime |
border-[var(--light,#bedc00)], dashed, 2px |
title_button |
Vertikales Padding | py-3.5 |
py-6 |
py-[var(--xs,24px)] |
content |
Content-Gap (open) | in-[.accordion--open]:pb-3.5 |
in-[.accordion--open]:pt-3 |
gap-[var(--xxs,12px)] zwischen Titelzeile und Inhalt |
Die section-CVA enthält sowohl border-b-2 als auch [&:first-child]:border-t-2 — beide referenzieren dieselbe Farbklasse und werden durch eine einzige Token-Ersetzung aktualisiert.
Bei der Content-Gap-Änderung wechselt der Abstand von einem Bottom-Padding auf dem umschließenden Element zu einem Top-Padding auf dem Content-Div selbst — semantisch korrekter gemäß Figma-Gap-Modell.
Testing Decisions
Gute Tests prüfen beobachtbares Verhalten aus Nutzerperspektive — nicht interne CSS-Klassen-Strings.
Canvas-Testseite (obligatorisch)
Vor dem Smoke-Test wird eine Canvas-Seite unter /test/akkordeon angelegt, die einen accordion-container mit mindestens drei Accordion-Items mit Lorem-Ipsum-Inhalt enthält. Diese Seite dient als permanente Smoke-Test-URL für dieses und künftige Accordion-Tickets.
Manuelle Akzeptanztests
| AK | Aktion | Erwartetes Ergebnis |
|---|---|---|
| AK1 | Seite /test/akkordeon laden, Trennlinien betrachten |
Dashed Border ist Lime (#bedc00). DevTools: border-color auf .accordion zeigt Lime. |
| AK2 | DevTools → .accordion--title-Button → Computed Styles |
padding-top und padding-bottom je 24 px. Gesamthöhe geschlossene Zeile ~80 px. |
| AK3 | Accordion-Titel klicken → öffnen. Abstand zwischen Titel und Inhalt messen. | 12 px Abstand. DevTools: padding-top: 12px auf .accordion--content wenn .accordion--open gesetzt. |
| Smoke | Alle 4 Zustände durchlaufen: Closed/Default, Closed/Hover, Open/Default, Open/Hover | Kein visueller Bruch. Animation flüssig. Nur ein Item gleichzeitig offen. |
Kein PHPUnit-Test
Reine CVA-Klassen-Korrekturen in einem Twig-Template erfordern keinen PHPUnit-Test. Die visuellen Eigenschaften sind nicht maschinell verifizierbar ohne Screenshot-Diff-Tools, die derzeit nicht im CI-Stack sind. Manueller Browser-Test ist ausreichend.
Out of Scope
- Light-Mode / heller Akkordeon-Stil (separates Ticket)
- Icon-Farbe und Icon-Größe (wird separat priorisiert)
icon.component.ymlSchema-Erweiterung (separates Ticket)- FAQ-Variante als eigenständiges SDC — der Dark Context deckt den FAQ-Use-Case ab
- Hover-State-Stil des
accordion-container(kein Änderungsbedarf identifiziert)
Further Notes
- Figma-File-Key:
CHHDfbpX8Ys2LBiGs5HVK0, Frame-Node:61447:26220. - Die vier Figma-Zustandsframes:
25132(Closed/Default),25188(Closed/Hover),25198(Open/Default),25224(Open/Hover). - Parent-Story: P2503-82 — F-20 Drupal Theme & SOLCOM Corporate Design.
- Story-Hub (Akzeptanzkriterien + QA-Plan): stories/P2503-168-accordion-figma-compliance.html.