06 — Das Backend-Modul Yavi Theme
Alles, was eine Site ohne TypoScript konfigurieren kann, liegt in einem Modul, unterhalb von Site-Management im Modulmenü. Es ist Administratoren vorbehalten.
Yavi Theme
├── Design / Colors Markenfarben, Statusfarben, Verläufe 27 Felder
├── Layout Logo, Abstände, Containergrößen, Typografie 37 Felder, 7 Reiter
├── Navigation Variante, Verhalten, Größen, Sprache, Suche 13 Felder, 4 Reiter
├── Custom CSS die CSS-Klassen, die die Redaktion je Element wählen darf 1 Feld
├── Config Site, Kontakt, Social, Tracking 20 Felder, 4 Reiter
├── Go-Live-Check die klassischen Startfehler, geprüft keine Einstellungen
└── Licence Schlüssel und Status 2 FelderJedes Logo-Feld liegt auf der Seite Layout, im Reiter Logo — einschließlich der beiden mobilen Höhen und der Höhe, auf die das Logo schrumpft, wenn der Header es tut. Früher waren sie über Layout und Config verteilt, was hieß, dass eine Logoänderung drei Besuche auf zwei Seiten kosten konnte.
Die gesamte Navigation hat eine eigene Seite. Zuvor waren es zwei Reiter, die beide Navigation hießen, einer unter Layout und einer unter Config, und sie steuerten einander: Der Schalter, der den Header schrumpfen lässt, lag auf der einen Seite, die Höhe, auf die er schrumpft, auf der anderen.
Wie es arbeitet
Jede Seite zeigt die Einstellungen ihrer eigenen Kategorie und schreibt sie nach config/sites/<id>/settings.yaml. Drei Eigenschaften sind wissenswert, weil sie den größten Teil des Verhaltens erklären:
1. Das Speichern ist auf die Seite begrenzt. Die Seite Layout kann immer nur Layout-Einstellungen schreiben. Ein Schlüssel einer anderen Seite, in die Anfrage eingeschmuggelt, wird abgewiesen. Eine Seite kann die Werte einer anderen also nie löschen.
2. Leer heißt „erben“, nicht „nichts“. Ein Feld zu speichern, das dem Vorgabewert entspricht, entfernt den Schlüssel aus der settings.yaml, statt ihn abzulegen. Sonst gewänne ein gespeicherter Wert für immer gegen das Set des Themes, und ein Themewechsel bliebe bei jedem je angefassten Feld wirkungslos.
3. Das Speichern leert den Seiten-Cache. Änderungen wirken sofort und nicht erst beim nächsten regulären Ablauf des Caches.
Das Formular lesen

Jedes Feld trägt drei Hinweise:
| Element | Bedeutung |
|---|---|
| Die farbige Leiste links | Gruppiert die Felder optisch; die Farbe wechselt zyklisch und hat keine eigene Bedeutung. |
Das Token (H1, XS, Hf) | Kurzzeichen des Feldes — die Überschriftsebene oder Größenstufe, zu der es gehört. |
| Das Badge | theme = leer, es gilt also der Wert des Themes · fixed = ein fester Wert ist gesetzt · fluid = der Wert nutzt clamp() |
Die Site-Auswahl oben rechts wechselt zwischen den Sites, wenn die Installation mehr als eine hat. Die Speicherleiste unten erscheint, sobald sich etwas ändert; ⌘S / Strg+S speichert.
Die Seiten
| Seite | Kapitel |
|---|---|
| Design / Colors | 07 — Design / Farben |
| Layout | 08 — Layout |
| Navigation | 08b — Die Seite Navigation |
| Custom CSS | 10 — Eigene CSS-Klassen |
| Config | 09 — Config |
| Licence | 11 — Lizenz |
Eine Tabelle aller 100 Einstellungen, Feld für Feld, steht in der Referenz der Einstellungen.
Was das Modul nicht tut
- Es bearbeitet kein TypoScript. Was hier nicht angeboten wird, gehört ins Theme (Ebene 2/3), nicht in eine Site-Einstellung.
- Es rührt keine Inhalte an. Farben je Element, Abstände je Element und CSS-Klassen je Element sind Eigenschaften des Inhaltselements, nicht der Site.
- Es lädt keine Dateien hoch. Die Logo-Felder nehmen einen Pfad entgegen —
fileadmin/…oderEXT:…— auf eine Datei, die bereits dort liegt.
Wo die Werte landen
# config/sites/<id>/settings.yaml — vom Modul geschrieben
plugin.bootstrap_package.settings.scss.primary: '#0D2A5C'
page.theme.cssvar.navbarHeight: 125px
page.theme.cssvar.cardRadius: 12px
licence.key: 'XXXX-XXXX-XXXX'
licence.product: yavi-lucerneZwei Arten von Schlüssel erscheinen hier:
| Präfix | Geht an |
|---|---|
plugin.bootstrap_package.settings.scss.* | die SCSS-Variablen des Bootstrap Package — sie werden ins Stylesheet kompiliert. |
page.theme.cssvar.* | CSS Custom Properties, beim Rendern in den Seitenkopf geschrieben. |
Der Unterschied zählt in der Praxis: Eine Änderung an einer SCSS-Variablen braucht einen Cache-Flush, damit neu kompiliert wird; eine Änderung an einer Custom Property wirkt beim nächsten Seitenaufruf.