Alex Dunmow c2dd751f6b fix(coffee): remediate torn-mask clipping, empty-media & JIT-dropped layout
Layout/whitespace bugs:
- .coffee-torn-top/bottom used mask-size:100% 100%, stretching the 12px torn
  SVG over the whole element and masking away ~40% of tall cards as a wavy
  transparent cut-out — the cause of the clipped hero region, featured_pour
  and footer. Reworked to a fixed ~13px deckled band per edge over a solid
  gradient (plus a combined top+bottom selector).
- featured_pour showed an editor-style "Add a hero image" placeholder to
  visitors when the demo seed ships no image; now a tasteful token-based coffee
  glyph on the secondary surface. Same for the image block ("Add an image").
- hours today-highlight was accent-foreground text over a 15% accent tint
  (light-on-light, unreadable "Sunday"); now a readable full-row band with an
  accent left edge (class moved from <th> to <tr>).

Mobile responsiveness / JIT robustness (host Tailwind does not reliably compile
arbitrary/responsive utilities out of theme templates):
- Replaced min-h-[50vh|75vh|400px|320px], md:grid-cols-[2fr_3fr] and
  md:grid-cols-2 in hero/featured_pour/menu-list/hours with explicit CSS helper
  classes carrying real media queries; base is single-column so every grid
  collapses to 1 col on mobile regardless of the JIT.

Semantic tokens only; no version bump.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 17:25:36 +08:00

32 lines
2.0 KiB
Plaintext

<section class="py-16 md:py-24 bg-background text-foreground{% if class %} {{ class }}{% endif %}">
<div class="mx-auto max-w-5xl px-4">
{% if heading %}<h2 class="coffee-display text-3xl text-primary md:text-4xl"><span class="coffee-doodle-underline">{{ heading }}</span></h2>{% endif %}
{% if intro %}<p class="coffee-body mt-3 max-w-2xl text-lg text-muted-foreground">{{ intro }}</p>{% endif %}
<div class="coffee-chalkboard mt-10 p-6 md:p-10">
<div class="coffee-menu-grid{% if columns == 2 %} coffee-menu-grid--2{% endif %}">
{% for section in sections %}
<div class="menu-section">
{% if section.title %}<h3 class="coffee-hand border-b coffee-chalk-rule pb-2 text-3xl">{{ section.title }}</h3>{% endif %}
{% if section.note %}<p class="coffee-body coffee-chalk-muted mt-2 text-sm">{{ section.note }}</p>{% endif %}
<ul class="mt-4 space-y-5">
{% for item in section.items %}
<li class="flex items-baseline gap-4">
<div class="min-w-0 flex-1">
<div class="flex flex-wrap items-baseline gap-x-2 gap-y-1">
<span class="coffee-display text-lg">{{ item.name }}</span>
{% for badge in item.badges %}{% if badge.label %}<span class="coffee-hand rounded-full border coffee-chalk-rule px-2 py-0.5 text-sm coffee-chalk-muted">{{ badge.label }}</span>{% endif %}{% endfor %}
</div>
{% if item.description %}<p class="coffee-body coffee-chalk-muted mt-0.5 text-sm">{{ item.description }}</p>{% endif %}
</div>
{% if item.price %}<span class="coffee-mono shrink-0 tabular-nums">{% if currency %}{{ currency }}{% endif %}{{ item.price }}</span>{% endif %}
</li>
{% endfor %}
</ul>
</div>
{% endfor %}
</div>
{% if footnote %}<p class="coffee-body coffee-chalk-muted mt-10 text-xs">{{ footnote }}</p>{% endif %}
</div>
</div>
</section>