Host Tailwind (v4, source(none)) does not scan installed .bnp theme templates, so grid/aspect/gap/padding utilities used only in this theme were silently dropped: custom persona blocks collapsed to a single full-width column, media boxes rendered as thin strips, and p-5 loss clipped the first glyph of every description. Move the theme's layout primitives into css.input_css_append as plain CSS with explicit media queries (mobile-first, collapse to 1 column) so the render no longer depends on the JIT content scan. - Add .pd-section / .pd-grid(--2/--3/--lg-2/--lg-4) / .pd-menu-cols / .pd-menu-list / .pd-media(--square) / .pd-card-body helpers to both manifest.yaml (served) and assets/style.css. Semantic tokens only. - seasonal_specials + cake_gallery: reliable responsive grid, OMIT the media box when no image is set (no ballooning empty boxes / thin strips), real body padding. - menu-list: honor columns=2 as a true two-up board; reliable item spacing. - hours-location / feature-grid: reliable responsive grids. - Tighten section rhythm (py-14/py-24 -> .pd-section) to remove dead bands. - navbar drawer width pinned in its inline <style>; body overflow-x: clip guards against horizontal scroll on small screens. No .reveal/scroll-reveal content-hiding in this theme (stats count-up only, values render by default). No version bump. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
28 lines
1.6 KiB
Plaintext
28 lines
1.6 KiB
Plaintext
<section data-block="pastel-dream:cake_gallery" class="pd-section bg-background text-foreground{% if class %} {{ class }}{% endif %}">
|
|
<div class="mx-auto max-w-6xl px-4">
|
|
<div class="text-center">
|
|
{% if heading %}<h2 class="pd-display text-3xl text-primary md:text-4xl"><span class="pd-doodle-underline">{{ heading }}</span></h2>{% endif %}
|
|
{% if intro %}<p class="pd-body mx-auto mt-3 max-w-2xl text-lg text-muted-foreground">{{ intro }}</p>{% endif %}
|
|
</div>
|
|
{% if cakes %}
|
|
<div class="mt-10 pd-grid pd-grid--2 pd-grid--3">
|
|
{% for cake in cakes %}
|
|
<figure class="pd-frame overflow-hidden flex flex-col">
|
|
{% if cake.image %}<div class="pd-media pd-media--square pd-torn-bottom bg-secondary">{% img cake.image alt=cake.name|default:"Cake" class="h-full w-full object-cover" %}</div>{% endif %}
|
|
<figcaption class="pd-card-body">
|
|
<div class="flex items-start justify-between gap-3">
|
|
<div>
|
|
{% if cake.name %}<h3 class="pd-display text-xl text-primary">{{ cake.name }}</h3>{% endif %}
|
|
{% if cake.flavour %}<p class="pd-hand text-base text-accent">{{ cake.flavour }}</p>{% endif %}
|
|
</div>
|
|
{% if cake.price %}<span class="pd-mono shrink-0 text-lg text-accent tabular-nums">{% if currency %}{{ currency }}{% endif %}{{ cake.price }}</span>{% endif %}
|
|
</div>
|
|
{% if cake.orderUrl %}<a href="{{ cake.orderUrl }}" class="pd-tag pd-tag--ghost mt-4 text-sm">Order this cake<svg class="h-4 w-4" aria-hidden="true"><use href="/icons/lucide.svg#arrow-right"></use></svg></a>{% endif %}
|
|
</figcaption>
|
|
</figure>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
</section>
|