Fortgeschrittenes CSS und stabile Klassen
Wenn die Tokens nicht reichen — ein Element ausblenden, ein anderes verschieben, ein ganz eigenes Detail —
kannst du CSS direkt auf die Klassen des Widgets schreiben. Nur die in dieser Liste
haben garantierten Support: Der Rest des Markups ist intern und kann sich ohne Ankündigung ändern.
Wo dieses CSS hingehört
In das Custom CSS des Dashboards (Darstellung → Erweitert).
Das Widget lebt in einem Shadow DOM, das CSS deines Shops erreicht diese Klassen also nicht —
der Editor im Dashboard injiziert deins nach innen. Die Tokens --fdl-*
sind die Ausnahme: Die kannst du auch von außen deklarieren.
Klassen mit stabilem Support
Struktur
| Selektor | Was es ist |
| .findalo-search-host | Host des Widgets auf deiner Seite (außerhalb des Shadow DOM). Hier deklarierst du die --fdl-*-Tokens aus deinem eigenen Stylesheet. |
| .kos-search | Wurzel des Widgets innerhalb des Shadow DOM. Geltungsbereich der Tokens im Custom CSS des Dashboards. |
| .topbar | Kopfzeile der Suche: Logo, Warenkorb und Schließen. |
| .logo | Logo-Link des Shops in der Kopfzeile. |
Suchfeld
| Selektor | Was es ist |
| .search-box | Box des Sucheingabefelds. Trägt die Klasse .searching, solange eine Suche läuft. |
| .search-box input | Das Suchfeld (Input) selbst. |
Filter
| Selektor | Was es ist |
| .filter-bar | Leiste unter der Kopfzeile: Chips der aktiven Filter, Zähler und Sortierung. |
| .active-chip | Chip eines aktiven Filters. |
| .sort-select | Sortier-Auswahl. |
| .facets | Filter-Sidebar (Marke, Kategorie, Merkmale …). |
| .facet-section | Block einer Facette innerhalb der Sidebar. |
| .facet-label | Eine Filteroption (Checkbox + Text). |
Ergebnisse
| Selektor | Was es ist |
| .results | Hauptcontainer der Ergebnisse. |
| .grid | Ergebnisraster (nutzt die im Dashboard konfigurierten Spalten). In der Listenansicht trägt es zusätzlich .grid--list. |
| .result-banner | Werbebanner über den Ergebnissen. |
Produkt-Card
| Selektor | Was es ist |
| .card | Produkt-Card. |
| .card .img | Bild-Box der Card. |
| .card .name | Produktname. |
| .card .price-row | Preiszeile (aktueller Preis + durchgestrichen bei Angebot). |
| .card .badge | Badge der Card (Angebot, ausverkauft, Neuheit …). |
| .card .add-to-cart | Button „In den Warenkorb“ der Card. |
Startbildschirm
| Selektor | Was es ist |
| .empty-state | Startbildschirm (vor der Eingabe): zuletzt gesucht, beliebt, hervorgehoben. |
| .section-title | Titel jeder Sektion des Startbildschirms. |
| .popular-card | Card des Karussells für Beliebte/Hervorgehobene. |
| .recent-item | Eintrag der letzten Suchen. |
| .pre-search-banner | Banner des Startbildschirms. |
| .discovery-rail | Discovery-Rail (Zugänge zu Rankings) des Startbildschirms. |
Overlays
| Selektor | Was es ist |
| .qv-panel | Panel des Quick-View-Modals. |
| .quiz-panel | Panel des Quiz / der geführten Suche. |
Rezepte
„In den Warenkorb“ in einer Kategorie ausblenden
/* Die Produkte verlinken auf ihre Produktseite: filtere über die Kategorie-URL */
.card[href*="/geschenkkarten/"] .add-to-cart { display: none; } Dichteres Raster auf großen Bildschirmen
@media (min-width: 1280px) {
.grid { grid-template-columns: repeat(6, 1fr) !important; }
} Sticky Kopfzeile beim Scrollen
.kos-search .topbar { position: sticky; top: 0; z-index: 5; } Limits: Das Custom CSS erlaubt bis zu 100.000 Zeichen, wenn du es im Panel einfügst; kommt es über die KI-Automatisierung, liegt die Grenze bei 20.000, damit ein Mensch es prüfen kann.
Regeln, deren Selektor auf die Badge-Klassen oder das Badge-Attribut zeigt (.f_brand_*, [data-findalo-brand]), werden beim Speichern GELÖSCHT —die ganze Regel, ersetzt durch einen Kommentar— und das Panel sagt dir vorher, wie viele es trifft. Es ist ein Musterfilter, keine Absichtserkennung: eine Regel, die das Badge auf anderem Weg versteckt, kommt durch den Filter, und dann schneidet der Integrity Check des Widgets sie zur Laufzeit weg.