Der Konfigurator soll aussehen wie dein Shop: Farben, Schrift, Ecken, die Optik der Auswahlfelder. Das alles passt du mit CSS an, ganz ohne JavaScript. Diese Seite gilt für die Frontend-Engine V3. Legacy erzeugt anderes HTML, dort greifen die Variablen und Klassen unten nicht.
Was der Konfigurator schon vom Shop übernimmt
In einem Shop – über ein Shop-Plugin oder das HTML-Snippet – übernimmt der Konfigurator Schrift, Schriftgröße und Textfarbe von deinem Theme. Dafür musst du nichts tun. Anpassen musst du nur, was der Konfigurator selbst mitbringt: Akzentfarbe, Rahmen, Hintergründe, Ecken.
Bindest du ihn mit data-configento-embed-mode="admin-preview" ein, zeigt er Titel, Preis und Zusammenfassung selbst und nutzt auch für Texte seine eigenen Farben. Die Schrift erbt er auch dann von der Seite.
Wo dein CSS hingehört
Du hast zwei Orte:
- Das Theme deines Shops – richtig, wenn alle Konfiguratoren gleich aussehen sollen.
- Benutzerdefiniertes CSS in den Komponenten-Einstellungen unter Design – richtig für eine einzelne Komponente. Es wird mit dem Konfigurator geladen, im Shop und in der Vorschau im Admin.
Schreibe vor Regeln für einzelne Elemente [data-configento], z. B. [data-configento] .cfg-toggle-item__price. Der Konfigurator lädt sein eigenes CSS nach deinem Theme; mit dem Zusatz gewinnt deine Regel trotzdem. Für die Variablen unten ist das nicht nötig.
Farben, Schrift und Ecken
Die einfachste Anpassung: Variablen auf :root setzen. Sie wirken im ganzen Konfigurator und auch in der Bild-Großansicht und den Info-Fenstern, die außerhalb des Konfigurators geöffnet werden.
:root {
--configento-color-accent: #1d3c78;
--configento-color-border: #c8d0e0;
--configento-radius-md: 0;
}
| Variable | Standard | Wirkt auf |
|---|---|---|
--configento-color-accent |
#2563eb |
Gewählte Werte, Radio Buttons und Checkboxen, gewählte Bilder, aktiver Reiter, Fortschrittsbalken, Weiter-Button, Links in Texten |
--configento-color-accent-fg |
#ffffff |
Text auf Flächen in der Akzentfarbe, z. B. im Weiter-Button |
--configento-color-accent-soft |
#dbeafe |
Helle Hinterlegung in der Akzentfarbe, z. B. beim aktiven Reiter |
--configento-color-border |
#e2e8f0 |
Rahmen und Trennlinien |
--configento-color-border-strong |
#cbd5e1 |
Rahmen von Eingabefeldern und Buttons |
--configento-color-bg |
#ffffff |
Hintergrund des Konfigurators |
--configento-color-bg-subtle |
#f8fafc |
Leicht abgesetzte Flächen |
--configento-color-bg-elevated |
#ffffff |
Gruppen, Auswahllisten, Buttons und Fenster |
--configento-color-fg |
#0f172a |
Text – nur mit admin-preview, im Shop kommt er vom Theme |
--configento-color-fg-muted |
#64748b |
Nebentexte – nur mit admin-preview |
--configento-color-error |
#b91c1c |
Fehlermeldungen und fehlerhafte Felder |
--configento-color-error-soft |
#fee2e2 |
Helle Hinterlegung von Fehlern |
--configento-color-success, --configento-color-success-soft |
#059669, #d1fae5 |
Erfolgsmeldungen |
--configento-color-warning, --configento-color-warning-soft |
#b45309, #fef3c7 |
Warnungen |
--configento-radius-sm, -md, -lg |
4px, 8px, 12px |
Ecken: kleine Elemente, Felder und Kacheln, Fenster |
--configento-font-family |
Schrift der Seite | Schrift – nur nötig, wenn der Konfigurator eine andere Schrift als die Seite haben soll |
Die Namen dieser Variablen bleiben in allen 3.x-Versionen gleich.
Aktivfarbe: Ist in den Komponenten-Einstellungen unter Design eine Aktivfarbe gesetzt, gilt sie für diese Komponente statt --configento-color-accent. Lass das Feld leer, wenn die Farbe aus deinem CSS kommen soll.
Andere Schrift: Soll der Konfigurator eine andere Schrift als die Seite nutzen, setze sie am Element mit data-configento. Die Schrift muss auf der Seite geladen sein, etwa über dein Theme.
[data-configento] { font-family: 'Source Sans 3', sans-serif; }
Einzelne Elemente gestalten
Für Gestaltung über die Variablen hinaus gibt es Klassen und Attribute, die wir zusagen: Sie bleiben in allen 3.x-Versionen gleich, eine Änderung gibt es nur mit einer neuen ersten Versionsstelle. Andere Klassen und die übrige HTML-Struktur können sich ändern.
Rahmen jedes Merkmals
| Klasse / Attribut | Element |
|---|---|
.cfg-char |
Das ganze Merkmal. Trägt auch die Klassen aus dem Feld CSS-Klasse des Merkmals. |
[data-configento-char-id], [data-configento-char-type] |
Am selben Element: ID und Datentyp des Merkmals, z. B. radiobuttons, checkbox, text, area, select |
[data-configento-invalid] |
Am selben Element, solange eine Fehlermeldung angezeigt wird |
.cfg-char__head |
Kopfzeile mit Titel |
.cfg-char__title |
Titel |
.cfg-char__required |
Pflichtfeld-Stern im Titel |
.cfg-char__info |
Infotext unter dem Titel |
.cfg-char__body |
Das Eingabeelement mit allem, was dazugehört |
.cfg-char__errors, .cfg-char__error |
Liste der Fehlermeldungen und jede einzelne Meldung |
Radio Buttons und Checkboxen
| Klasse / Attribut | Element |
|---|---|
.cfg-toggle-list |
Liste aller Werte |
.cfg-toggle-item mit [data-configento-value-id] |
Ein Wert, mit seiner ID |
.cfg-toggle-item__label |
Das label um die ganze Zeile. Das input (type="radio" bzw. type="checkbox") ist sein direktes Kind. |
.cfg-toggle-item__image |
Bild des Werts |
.cfg-toggle-item__text |
Text-Block mit Bezeichnung und Infotexten |
.cfg-toggle-item__label-text |
Bezeichnung des Werts |
.cfg-toggle-item__info |
Infotext des Werts |
.cfg-toggle-item__price |
Aufpreis |
Den gewählten Zustand erreichst du über das input, z. B. .cfg-toggle-item__label:has(input:checked).
Eingabefelder und Auswahllisten
| Klasse | Element |
|---|---|
input.cfg-input |
Einzeiliges Eingabefeld |
textarea.cfg-textarea |
Mehrzeiliges Eingabefeld |
select.cfg-select |
Auswahlliste |
Reicht CSS nicht, weil ein Merkmal ganz anders aussehen und sich anders verhalten soll – etwa als Kfz-Kennzeichen –, zeichnest du es mit einer eigenen Darstellung per JavaScript.
Ein bestimmtes Merkmal sprichst du am einfachsten über eine eigene Klasse an: Trag sie im Editor im Feld CSS-Klasse des Merkmals ein, sie landet am Element .cfg-char.
Beispiele
Eigene Radio Buttons – Kreis per CSS statt Browser-Standard, gewählte Zeile hervorgehoben:
[data-configento] [data-configento-char-type="radiobuttons"] .cfg-toggle-item__label > input {
appearance: none;
width: 1.25rem;
height: 1.25rem;
border: 2px solid var(--configento-color-accent);
border-radius: 50%;
}
[data-configento] [data-configento-char-type="radiobuttons"] .cfg-toggle-item__label > input:checked {
background: radial-gradient(var(--configento-color-accent) 45%, transparent 50%);
}
[data-configento] .cfg-toggle-item__label:has(input:checked) {
background: var(--configento-color-accent-soft);
}
Setze dafür --configento-color-accent und --configento-color-accent-soft auf :root, wie oben gezeigt.
Fehler deutlicher zeigen:
[data-configento] .cfg-char[data-configento-invalid] .cfg-char__title { color: var(--configento-color-error); }
[data-configento] .cfg-char[data-configento-invalid] .cfg-input { border-color: var(--configento-color-error); }
Aufpreise ausblenden, etwa wenn dein Shop sie anders zeigt:
[data-configento] .cfg-toggle-item__price { display: none; }
Fehlersuche
| Problem | Ursache und Lösung |
|---|---|
| Deine Regel wirkt nicht | Der Konfigurator lädt sein CSS nach deinem Theme. Schreibe [data-configento] vor den Selektor. |
| Farbe wirkt im Konfigurator, nicht aber in der Bild-Großansicht | Die Variable steht auf einem Element statt auf :root. Die Großansicht öffnet außerhalb des Konfigurators. |
| Akzentfarbe aus dem CSS wird ignoriert | In der Komponente ist eine Aktivfarbe gesetzt. Leere das Feld. |
| Textfarbe ändert sich nicht | Im Shop kommt die Textfarbe vom Theme. --configento-color-fg wirkt nur mit admin-preview. |
| Nach dem Umstellen auf V3 sieht alles anders aus | Legacy hat andere Klassen. Baue dein CSS mit den Variablen und Klassen dieser Seite neu auf und prüfe es in der Vorschau. |
Nächste Schritte
- Komponenten-Einstellungen – Aktivfarbe und benutzerdefiniertes CSS
- HTML-Snippet-Integration
- JavaScript-Schnittstelle (V3) – wenn du über die Optik hinaus eingreifen willst
- Frontend-Engine: Legacy oder V3