Alex Dunmow 10cecadef6 fix(editorial): remediate hero dead-space, tiny titles, media balloon + mobile
Layout/whitespace:
- Hero: gate min-h-[75vh] + vertical-centering on hasImage so the text-only
  masthead no longer floats in ~800px of dead space; large display headline
  via CSS class (was collapsed to 0.72rem by editorial-caps clobbering text-6xl).
- Restore heading hierarchy: swap editorial-caps -> editorial-heading on every
  title/headline element (hero, card, newsletter, contact-form, cta, countdown,
  feature-grid, team, featured-posts, post-hero, menu-list, hours-location,
  author-bio-hero, password-reset-form). Masthead wordmarks (navbar/footer)
  keep editorial-caps by design.
- Home "river": constrain to a 48rem reading measure and add vertical rhythm
  (editorial-river/editorial-flow CSS) so stacked essay cards stop fusing into
  one seam-y block and body text no longer runs full-bleed wide.
- Newsletter: remove stray empty double-hairline artifact (single centered rule).
- Image: guard empty src so absent media no longer renders an empty muted box.

Mobile / JIT-safety:
- New width/spacing/hero-title behavior defined as theme CSS in manifest
  input_css_append (not JIT-scanned Tailwind), so it always compiles.
- Marginalia stack breakpoint widened 768px -> 1023px to match the article
  grid collapse, so the rail always gets its separator when stacked.

Build + check-safety green (32 checks: 19 ok 13 skip). No version bump.

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

5 lines
1.6 KiB
Plaintext

{# card override — editorial hairline panel; accent border on hover, oxblood link. Fields mirror builtin: layout, link, media, title, text, linkLabel. Media via {% img %}. #}
{% with layout=layout|default:"vertical" %}
<article data-block-override="editorial:card" class="bn-card editorial-panel overflow-hidden bg-card text-card-foreground transition-colors hover:border-[hsl(var(--accent))] {% if layout == "horizontal" %}flex flex-col sm:flex-row{% endif %}{% if class %} {{ class }}{% endif %}">{% if link %}<a href="{{ link }}" class="contents">{% endif %}{% if media %}<div class="overflow-hidden bg-muted {% if layout == "horizontal" %}sm:w-2/5 sm:shrink-0{% endif %}">{% if layout == "horizontal" %}{% img media alt=title|default:"" class="h-full w-full object-cover" %}{% else %}{% img media alt=title|default:"" class="aspect-video h-full w-full object-cover" %}{% endif %}</div>{% endif %}<div class="flex flex-col gap-2 p-5 md:p-6 {% if layout == "horizontal" %}justify-center{% endif %}">{% if title %}<h3 class="editorial-heading text-lg" style="font-family:var(--font-heading, 'Playfair Display', Georgia, serif);color:hsl(var(--foreground));">{{ title }}</h3>{% endif %}{% if text %}<div class="text-sm leading-relaxed" style="color:hsl(var(--muted-foreground));font-family:var(--font-body, 'Source Serif 4', 'Source Serif Pro', Georgia, serif);">{{ text|safe }}</div>{% endif %}{% if linkLabel and link %}<span class="mt-2 inline-flex items-center gap-1 text-sm editorial-link">{{ linkLabel }}::lucide:arrow-right:sm::</span>{% endif %}</div>{% if link %}</a>{% endif %}</article>
{% endwith %}