The configurator should look like your shop: colours, font, corners, the look of the selection fields. You adjust all of this with CSS, without any JavaScript. This page applies to the V3 frontend engine. Legacy generates different HTML, so the variables and classes below do not apply there.
What the configurator already takes from the shop
In a shop – via a shop plugin or the HTML snippet – the configurator takes font, font size and text colour from your theme. You do not need to do anything for this. You only need to adjust what the configurator brings along itself: accent colour, borders, backgrounds, corners.
If you embed it with data-configento-embed-mode="admin-preview", it shows title, price and summary itself and also uses its own colours for texts. Even then it inherits the font from the page.
Where your CSS belongs
You have two places:
- Your shop's theme – the right place if all configurators should look the same.
- Custom CSS in the Component Settings under Design – the right place for a single component. It is loaded with the configurator, in the shop and in the preview in the admin.
Put [data-configento] in front of rules for individual elements, e.g. [data-configento] .cfg-toggle-item__price. The configurator loads its own CSS after your theme; with this prefix your rule still wins. This is not necessary for the variables below.
Colours, font and corners
The simplest adjustment: set variables on :root. They take effect in the whole configurator and also in the enlarged image view and the info windows, which open outside the configurator.
:root {
--configento-color-accent: #1d3c78;
--configento-color-border: #c8d0e0;
--configento-radius-md: 0;
}
| Variable | Default | Affects |
|---|---|---|
--configento-color-accent |
#2563eb |
Selected values, radio buttons and checkboxes, selected images, active tab, progress bar, Next button, links in texts |
--configento-color-accent-fg |
#ffffff |
Text on surfaces in the accent colour, e.g. in the Next button |
--configento-color-accent-soft |
#dbeafe |
Light background in the accent colour, e.g. for the active tab |
--configento-color-border |
#e2e8f0 |
Borders and dividers |
--configento-color-border-strong |
#cbd5e1 |
Borders of input fields and buttons |
--configento-color-bg |
#ffffff |
Background of the configurator |
--configento-color-bg-subtle |
#f8fafc |
Slightly set-off surfaces |
--configento-color-bg-elevated |
#ffffff |
Groups, select lists, buttons and windows |
--configento-color-fg |
#0f172a |
Text – only with admin-preview; in the shop it comes from the theme |
--configento-color-fg-muted |
#64748b |
Secondary texts – only with admin-preview |
--configento-color-error |
#b91c1c |
Error messages and invalid fields |
--configento-color-error-soft |
#fee2e2 |
Light background of errors |
--configento-color-success, --configento-color-success-soft |
#059669, #d1fae5 |
Success messages |
--configento-color-warning, --configento-color-warning-soft |
#b45309, #fef3c7 |
Warnings |
--configento-radius-sm, -md, -lg |
4px, 8px, 12px |
Corners: small elements, fields and tiles, windows |
--configento-font-family |
Font of the page | Font – only needed if the configurator should use a different font than the page |
The names of these variables stay the same in all 3.x versions.
Active color: If an Active color is set in the component settings under Design, it applies to this component instead of --configento-color-accent. Leave the field empty if the colour should come from your CSS.
Different font: If the configurator should use a different font than the page, set it on the element with data-configento. The font must be loaded on the page, for example via your theme.
[data-configento] { font-family: 'Source Sans 3', sans-serif; }
Styling individual elements
For styling beyond the variables there are classes and attributes that we guarantee: they stay the same in all 3.x versions and only change with a new first version digit. Other classes and the rest of the HTML structure may change.
Frame of every characteristic
| Class / attribute | Element |
|---|---|
.cfg-char |
The whole characteristic. Also carries the classes from the characteristic's CSS class field. |
[data-configento-char-id], [data-configento-char-type] |
On the same element: ID and data type of the characteristic, e.g. radiobuttons, checkbox, text, area, select |
[data-configento-invalid] |
On the same element, as long as an error message is shown |
.cfg-char__head |
Header row with the title |
.cfg-char__title |
Title |
.cfg-char__required |
Required-field asterisk in the title |
.cfg-char__info |
Info text below the title |
.cfg-char__body |
The input element with everything that belongs to it |
.cfg-char__errors, .cfg-char__error |
List of error messages and each single message |
Radio buttons and checkboxes
| Class / attribute | Element |
|---|---|
.cfg-toggle-list |
List of all values |
.cfg-toggle-item with [data-configento-value-id] |
One value, with its ID |
.cfg-toggle-item__label |
The label around the whole row. The input (type="radio" or type="checkbox") is its direct child. |
.cfg-toggle-item__image |
Image of the value |
.cfg-toggle-item__text |
Text block with label and info texts |
.cfg-toggle-item__label-text |
Label of the value |
.cfg-toggle-item__info |
Info text of the value |
.cfg-toggle-item__price |
Surcharge |
You reach the selected state via the input, e.g. .cfg-toggle-item__label:has(input:checked).
Input fields and select lists
| Class | Element |
|---|---|
input.cfg-input |
Single-line input field |
textarea.cfg-textarea |
Multi-line input field |
select.cfg-select |
Select list |
If CSS isn't enough because a characteristic should look and behave completely differently – for example as a licence plate – you draw it with your own rendering in JavaScript.
The easiest way to target a specific characteristic is your own class: enter it in the editor in the characteristic's CSS class field, and it ends up on the .cfg-char element.
Examples
Custom radio buttons – circle via CSS instead of the browser default, selected row highlighted:
[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);
}
For this, set --configento-color-accent and --configento-color-accent-soft on :root, as shown above.
Show errors more clearly:
[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); }
Hide surcharges, for example if your shop shows them differently:
[data-configento] .cfg-toggle-item__price { display: none; }
Troubleshooting
| Problem | Cause and solution |
|---|---|
| Your rule has no effect | The configurator loads its CSS after your theme. Put [data-configento] in front of the selector. |
| Colour works in the configurator, but not in the enlarged image view | The variable is set on an element instead of on :root. The enlarged view opens outside the configurator. |
| Accent colour from the CSS is ignored | An Active color is set in the component. Clear the field. |
| Text colour does not change | In the shop, the text colour comes from the theme. --configento-color-fg only works with admin-preview. |
| Everything looks different after switching to V3 | Legacy has different classes. Rebuild your CSS with the variables and classes on this page and check it in the preview. |
Next steps
- Component Settings – Active color and Custom CSS
- HTML Snippet Integration
- JavaScript API (V3) – if you want to intervene beyond the look
- Frontend Engine: Legacy or V3