Skip to content

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.

twig
{# 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:

ClassSource
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-invertedsettings.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:

css
.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:

css
.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 */