Convert the Art Deco theme from a wasm (Go+templ) plugin to a fully codeless
.bnp: pure declaration the host runs, no plugin.wasm, no block/core dependency.
- blocks/: blocks.yaml (7 fully-qualified art-deco:* keys) + per-block
.schema.json (moved from schemas/) + .ninjatpl transcribed byte-for-byte
(modulo whitespace) from the templ sources.
- templates/art-deco/{default,landing,article,full-width}.ninjatpl — page
layouts.
- templates/overrides/art-deco/{heading,text,button,image}.ninjatpl.
- templates/email/art-deco.ninjatpl.
- manifest.yaml (system/page templates, template_overrides, email_wrappers,
theme_presets, bundled_fonts, master_pages, css input_css_append) +
master_pages.json.
- plugin.mod bumped to 0.2.0; [compatibility] block_core dropped (codeless has
no core dependency).
- Deleted all Go/templ/*_templ.go, go.mod/go.sum; Makefile rewritten to the
codeless build/verify/publish targets.
Render parity verified against the prior templ output (static pongo2 harness,
whitespace-normalised): all 7 blocks, 4 overrides and the email wrapper match.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
13 lines
1.5 KiB
Plaintext
13 lines
1.5 KiB
Plaintext
<section data-block="art-deco:marquee_hero" class="relative w-full overflow-hidden deco-grain" style="background-color: hsl(var(--foreground)); color: hsl(var(--background));">
|
|
{% if image %}<div class="absolute inset-0 z-0" aria-hidden="true"><img src="{{ image }}" alt="" class="w-full h-full object-cover" style="opacity: 0.5;"><div class="absolute inset-0" style="background-color: hsl(var(--foreground) / 0.55);"></div></div>{% endif %}
|
|
<div class="absolute inset-x-0 top-0 h-24 z-10 pointer-events-none deco-sunburst" aria-hidden="true"></div>
|
|
<div class="relative z-20 max-w-4xl mx-auto px-4 py-32 text-center">
|
|
<div class="deco-frame inline-block px-12 py-10" style="background-color: hsl(var(--foreground) / 0.6); border-color: hsl(var(--primary));">
|
|
{% if eyebrow %}<p class="deco-caps mb-4 text-xs" style="color: hsl(var(--primary));">{{ eyebrow }}</p>{% endif %}
|
|
{% if title %}<h1 class="deco-caps deco-underline mb-6 text-5xl md:text-6xl lg:text-7xl" style="font-family: var(--font-heading, "Italiana", "Cinzel", Georgia, serif); color: hsl(var(--background));">{{ title }}</h1>{% endif %}
|
|
{% if subtitle %}<div class="text-lg md:text-xl mb-8 max-w-2xl mx-auto" style="color: hsl(var(--background) / 0.9);">{{ subtitle|safe }}</div>{% endif %}
|
|
{% if ctaLabel and ctaHref %}<a href="{{ ctaHref }}" class="deco-pill" style="background-color: hsl(var(--primary)); color: hsl(var(--primary-foreground)); border-color: hsl(var(--primary));">{{ ctaLabel }}</a>{% endif %}
|
|
</div>
|
|
</div>
|
|
</section>
|