Skip to content
AvandoLabs Theme help Deutsch

For reference

Cheat sheet & glossary

The most common CSS classes for the CSS ID/class field and an explanation of the most important terms. The complete technical reference is bundle/cheat-sheet.md.

Backgrounds

bg-surface-1 / -2 / -3base surface · offset · more strongly offset
bg-primary / bg-secondarybrand or second colour (also -light)
bg-gradient-subtle / -primary / -secondary / -dark / -animatedgradients
bg-image / bg-image-dark / -light / -brand / -secondary / -gradientbackground image with overlay (needs the “Background image” field)
bg-bluradd-on: blur the background image
bg-noneremove an inherited surface

Style

style-cardcard: surface, border, rounding, padding, shadow
style-interactive-cardcard that lifts on hover
style-popspringy hover (slight growth) – on a card, image or button
style-tiletile: surface + padding, without rounding/shadow
media-cardon an element group with an image at the top: image edge to edge, the rest a padded body
style-glass / style-glass-darkfrosted glass (light / dark) – on image/colour surfaces
style-shadow / style-rounded / style-squircleshadow only · rounding only · very soft corners
shadow-sm / -md / -lg / shadow-noneshadow levels
glow / glow-sm / -md / -lg / glow-nonecoloured glow instead of a shadow (colour/strength in the Studio)
text-glow / -sm / -md / -lgglow around the lettering
border-primary / -secondary / border-strong / border-nonecoloured border · thicker · none
border-top / -bottom / -left / -rightline on one side (freely combinable)
style-dividerhorizontal divider (top border)
cards-solid / cards-primary / cards-secondaryon the section: make glass cards inside it opaque (for dark image sections)
dividers-von the element group: vertical dividers between columns
accordion--cards / --filled / --accentaccordion styles (from theme.css)

Text colour in an area

style-lightwhite text – for dark backgrounds
text-on-lightdark text – for light backgrounds
color-primary / color-secondarysection text in the brand / second colour
text-muted / text-primary / text-secondarycolour for this one element only (headline + text inside it)
links-plain / links-hover-underline / links-underlinelink underline in this area: never / on hover / always – also switches off the persona's hover effect there

Typography

display-1 / -2 / -3 / display-herohero title sizes
leadlarger intro paragraph
eyebrow / section-label / section-index / badgesmall uppercase line · section label · large kicker · chip
pull-quoteoversized, centred statement quote
text-sm … text-3xltext size (affects headline + text in the element)
font-light … font-blackfont weight
tracking-tight / tracking-wide / tracking-widestletter spacing
leading-none … leading-looseline height (on the element, affects headline + text inside it)
text-balance / text-pretty / text-truncatebalanced wrapping · pretty wrapping · one line with “…”
measure-45 … measure-70 / measure / measure-nonelimit line length (characters) or switch the heading measure on/off
prose / prose--sm / prose--lgcomfortable reading rhythm for long texts

Layout & alignment

container--sm … container--2xl / container--fullnarrower / full content width for this section
section--bleedsection across the full window width (with section, without a side column)
layout-columns-2/3/4/6columns of equal width (stack on phones)
layout-columns-asymmetric / --reverse2:1 or 1:2
layout-featuretext + image, centred, large gap
layout-sidebar / --leftmain content + narrow side column
layout-auto-gridas many columns as fit
layout-stack / layout-rowchildren stacked / in one row (add-on row-spread)
col-span-2 … col-span-fullon a single element in a column layout: span several columns
no-stackmodifier: do not stack on phones
align-text-center / align-text-endtext centred / right
av-y-center / av-y-endcontent vertically centred / at the bottom
align-items-start / -center / -end / -stretchalignment of the columns within the row
self-center / self-endthe element itself centred / right (button, image)
align-all-centercentre on both axes (button/icon/small content)
v-centercentre content vertically only (text stays left-aligned)
h-full / grow / fill-stack / fill-stack--evenmake boxes in the grid the same height / let them fill the free space
ratio-16-9 / -4-3 / -3-2 / -1-1fixed aspect ratio, child fills the frame
vh-third / vh-half / vh-large / vh-fullminimum height (hero)
layout-stickyelement sticks while scrolling (desktop only)
desktop-only / mobile-onlyshow/hide per screen size
order-first--mobile / order-last--mobile / order-1 … order-4change the order

Spacing

space-box-2xs … space-box-xlpadding all round
space-block-xs … space-block-2xlpadding top/bottom only
space-below-xs … space-below-2xl / no-space-belowmargin below
gap-none … gap-2xlcolumn and row gap on the layout wrapper
gap-row-none … gap-col-2xlrow gap only or column gap only
space-none-mobile / space-inline-none-mobile / space-block-none-mobileremove padding on phones (all / sides / top-bottom)
space-mobile-collapseon phones, set the section's padding and margin to 0

Images

image--coverimage fills its box (with cropping)
image-left / image-righton the text element: image shrinks and moves to the edge (no text wrap)
media--wrap-left / media--wrap-rightimage with text wrapping around it (full width on phones)
image--originalexclude this image from the global image filter
logo-tintlogo takes on the colours of its surroundings (word mark = text colour, symbol = accent); SVG with the parts logo-mark / logo-word, otherwise original colours · PNG single-colour · JPG never
shape-rounded / -squircle / -circle / -blobimage shape (on the <img>)
shape-border (+ --secondary / --light / --dark) / shape-shadowborder or shadow, follows the shape

Buttons

More convenient to set via Element Style on the Hyperlink element; the classes behind it:

btnprimary button (filled)
btn--secondary / --neutral / --outline / --outline-secondarycolour/outline variants
btn--ghost / --soft / --dark / --glasstransparent · primary tint · dark · frosted glass
btn--sm / --lg / --pill / --full / --iconsize / shape / full width / icon only
btn--shadow* / btn--glow* / btn--hover-flatshadow / glow / switch off the lift

Animation & tables

animateelement fades in while scrolling (fade + slight upward slide)
animate--fade / --left / --rightdirection of the fade-in
animate--stagger / --hero / --count-upchildren one after another · on load · first number counts up
table-compact / -comfortable / -spacious / -nowrapcell padding of a table · don't wrap columns

Glossary

Design variable / tokenA named value (colour, spacing, radius …) that the whole theme refers to. Name in the code: --av-…. Changing it = changing it everywhere at once.
Design StudioThe slide-in panel in the front end with which administrators set the overall look. An optional add-on module; on save it writes the file theme-vars.css. The theme works without it.
PanelA collapsible area in the Contao edit form (grey bar), e.g. Design, Element Style, Expert settings. Not a browser tab.
SectionThis help's umbrella term for an article or an element group. Both carry the Design panel. The back end itself doesn't use the word “section” in this sense.
Element groupItself a content element: insert “Element group”, drag other elements into it. It behaves like a small section (its own layout, its own background) and can also be framed as a card.
Content elementA single building block: text, image, headline, button, accordion … It carries the Element Style panel.
OverlayA semi-transparent layer over a background image so that the text stays readable. Dark overlay → light text (the “dark”/“light” overlay options switch the text colour along with it).
Hero / minimum heightA large opening area that is at least a certain share of the screen high. Field Minimum height on the article/element group.
Preset / personaThe same list of complete looks, two ways in: as “Presets” tiles in the Studio panel, and as ?persona=name in the address bar (demo). The same sliders, different numbers.
Utility classA short name for the CSS ID/class field with a small, clearly defined effect (e.g. align-text-center).
custom.cssProject-specific file for details the sliders don't cover. It is loaded last and wins – which is why a fixed value there makes the matching Studio slider ineffective.
File reference by IDContao remembers chosen images by an internal ID, not by the file path. Renaming/moving is therefore harmless – only deleting is not.