Theming
Das Partial eines Blocks überschreiben
Lege ein Partial unter themes/<theme>/partials/renick-content/<handle>.htm ab. Es ersetzt das Default-Partial des Blocks und erhält dieselben Variablen, Filter und Funktionen; siehe Blöcke erstellen.
{# themes/mytheme/partials/renick-content/heading.htm #}
<{{ data.level|default('h2') }} {{ attributes|raw }}>
{{ data.text }}
</{{ data.level|default('h2') }}>Suchreihenfolge: Theme-Override (Child-Theme vor Parent), Block-Default, Platzhalter (ein HTML-Kommentar; im Debug-Modus ein Fehlerkasten). Ein Override, das eine Exception wirft, betrifft nur seinen eigenen Block.
Der Attributes-Bag
attributes ist ein fertiger Attribut-String; gib ihn mit {{ attributes|raw }} auf dem Wurzelelement aus. Seine Klassen:
| Klasse | Quelle |
|---|---|
rc-<handle> | immer |
rc-p{t|r|b|l}-{xs…xl} | settings.spacing_{top|right|bottom|left} |
rc-w-{full|container|narrow} | settings.width (nicht bei section, das einen inneren Wrapper dimensioniert) |
rc-align-{left|center|right} | settings.alignment |
rc-bg-{light|dark|primary} | settings.background |
rc-tone-inverted | settings.text_tone = inverted |
col-12 col-md rc-col / col-12 col-md-{n} rc-col-{n} | Column-Block, automatische oder feste Breite |
rc-gallery--{simple|labels|cards} | Galerie, data.variant |
| (unverändert) | settings.css_class |
settings.anchor ergänzt eine id. Partials fügen eigene Klassen hinzu, z. B. row rc-row (Grid) oder btn btn-<style> (Button).
Die Tokens stylen
renick-content.css gibt den rc-*-Klassen Defaults (Abstände .5rem–5rem, Container-Breiten und Hintergrundfarben von Bootstrap). Definiere sie im Theme neu:
.rc-pt-lg { padding-top: 4rem; }
.rc-w-narrow { max-width: 40rem; margin-inline: auto; }
.rc-bg-dark { background: #111; }Der Block Eintragsliste liest die Custom Properties --rc-entries-* (accent, ink, muted, line, radius, radius-sm, pill, shadow, card-bg, media-bg, title-weight, title-tracking) mit Bootstrap-Variablen als Fallback. Setze sie auf :root, wie Dawn es tut.
Shop-Templates (OFFLINE.Mall)
Das Shop-Scaffold kopiert Layout, Seiten und Mall-Partial-Overrides aus templates/mall/ des Themes (sonst die neutralen Vorlagen des Plugins), ohne vorhandene Dateien zu überschreiben. Dawn bringt eigene mit, gestaltet durch assets/css/offline-mall-integration.css und auf .mall-shop beschränkt.
Die Editor-Vorschau läuft ohne JavaScript
Das Vorschau-Iframe ist script-sandboxed, Theme-JS läuft dort nie. Beide Vorschau-Pfade setzen rc-preview-body auf den Body; mache JS-abhängige Inhalte darunter sichtbar:
.dawn-reveal { opacity: 0; transform: translateY(18px); } /* frontend: revealed by JS */
.rc-preview-body .dawn-reveal { opacity: 1; transform: none; } /* editor preview: no JS — show it */