Theming
Overriding a block's partial
Place a partial at themes/<theme>/partials/renick-content/<handle>.htm. It replaces the block's default partial and receives the same variables, filters and functions; see Authoring blocks.
{# themes/mytheme/partials/renick-content/heading.htm #}
<{{ data.level|default('h2') }} {{ attributes|raw }}>
{{ data.text }}
</{{ data.level|default('h2') }}>Lookup order: theme override (child theme before parent), block default, placeholder (an HTML comment; an error box in debug mode). An override that throws only affects its own block.
The attributes bag
attributes is a ready-made attribute string; print it with {{ attributes|raw }} on the root element. Its classes:
| Class | Source |
|---|---|
rc-<handle> | always |
rc-p{t|r|b|l}-{xs…xl} | settings.spacing_{top|right|bottom|left} |
rc-w-{full|container|narrow} | settings.width (not on section, which sizes an inner wrapper) |
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, auto or fixed width |
rc-gallery--{simple|labels|cards} | gallery data.variant |
| (verbatim) | settings.css_class |
settings.anchor adds an id. Partials add their own classes, e.g. row rc-row (grid) or btn btn-<style> (button).
Styling the tokens
renick-content.css gives the rc-* classes defaults (spacing .5rem–5rem, Bootstrap container widths, Bootstrap background colours). Redefine them in your theme:
.rc-pt-lg { padding-top: 4rem; }
.rc-w-narrow { max-width: 40rem; margin-inline: auto; }
.rc-bg-dark { background: #111; }The Entry List block reads --rc-entries-* custom properties (accent, ink, muted, line, radius, radius-sm, pill, shadow, card-bg, media-bg, title-weight, title-tracking), falling back to Bootstrap variables. Set them on :root, as Dawn does.
Shop templates (OFFLINE.Mall)
The shop scaffold copies layout, pages and Mall partial overrides from the theme's templates/mall/ (falling back to the plugin's neutral templates) without overwriting existing files. Dawn ships its own, styled by assets/css/offline-mall-integration.css, scoped to .mall-shop.
The editor preview runs without JavaScript
The preview iframe is script-sandboxed, so theme JS never runs there. Both preview paths add rc-preview-body to the body; reveal JS-gated content under it:
.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 */