{% extends "brickwork/shell/base.html" %} {% load i18n %} {% comment %} Marketing shell (04-interfaces.md section 4d, 1.2.0, BR-BW-MKT-005): the public-site counterpart of shell/app.html. It reuses base.html's document skeleton (the {% static %} CSS link, the theme/density/dir attributes on , the skip link, the no-JS floor, the toast/modal roots) and adds only the public header/nav/footer regions the app shell does not have. A marketing page {% extends %} this shell and is itself {% extends %}d by a consuming page (BR-BW-PAGE-001 at marketing scope), never {% include %}d. Named blocks (semver-public, BR-BW-TPL-001), all empty-graceful: marketing_header default: a header row with brand_logo/brand_wordmark at the inline start and marketing_nav at the end. brand_logo brand_wordmark marketing_nav the primary public nav: a plain list of links, no active-route resolver dependency (a marketing site's nav is a small fixed set, unlike the app shell's {% bw_nav %}). marketing_actions header-end CTA cluster (e.g. "Sign in" + "Get started"). content the page body; the one region a page fills. marketing_footer default: a multi-column footer with link groups and a fine-print row (footer_legal). footer_legal No-JS floor (BR-BW-HTMX-001): the shell requires no Alpine or htmx. The header nav renders as plain links; a consumer wanting a mobile nav disclosure composes the existing _disclosure.html/_account_menu.html
pattern (the same way the app shell's switcher slot does), never a brickwork-shipped default here. Content measure: the marketing content wrapper uses --bw-component-content-max-width-marketing (80rem), wider than the app shell's --bw-component-content-max-width (72rem) cap, since a marketing canvas wants a wider column than a console (04-interfaces.md 4d). {% endcomment %} {% block shell_variant %}marketing{% endblock %} {% block shell %}
{% block marketing_header %} {% block brand_logo %}{% endblock %} {% block brand_wordmark %}{% endblock %}
{% block marketing_actions %}{% endblock %}
{% endblock %}
{% block content %}{% endblock %}
{% endblock %}