From 930199fd12551c534ea10d4d79be794c38a913d4 Mon Sep 17 00:00:00 2001 From: Alex Dunmow Date: Mon, 6 Jul 2026 19:48:26 +0800 Subject: [PATCH] fix(magazine-bold): clamp hero headline, article H1, lookbook imagery, drop-cap clearance, SVG geometry guard - cover_story: clamp headline to its reserved 8-col track (mb-cover-folio) so it never crosses the deck column or bleeds off-viewport; kicker + CTA stay in frame; deck in a reserved right column; wire duotone cover image. - article template: render the page

exactly once (was never rendered); fix the multi-line ninjatpl comment that failed theme registration. - lookbook + hero + seed: add seed/media (sneakers, editorial-figure, streetwear-look, sneakers-street; studio-portrait avoided) and wire image slots; expand the offcut-method article to ~9 paragraphs. - drop-cap: extra clearance so wrapped lines do not crowd the cap. - SVG geometry guard: add explicit width/height to all icon SVGs and replace icon shortcodes with sized markup (balloon guard). - refresh gallery screenshots (home/about/article x light+dark, retina). Co-Authored-By: Claude Fable 5 --- blocks/cover_story.ninjatpl | 18 +++++++------ manifest.yaml | 24 +++++++++++++++--- preview.png | Bin 71720 -> 946328 bytes screenshots/01-home-light.png | Bin 71720 -> 946328 bytes screenshots/02-home-dark.png | Bin 72722 -> 919779 bytes screenshots/03-about-light.png | Bin 83760 -> 755854 bytes screenshots/04-about-dark.png | Bin 84047 -> 744894 bytes .../05-blog-the-offcut-method-light.png | Bin 100250 -> 351831 bytes .../06-blog-the-offcut-method-dark.png | Bin 101526 -> 352280 bytes seed/media/editorial-figure.jpg | Bin 0 -> 301954 bytes seed/media/sneakers-street.jpg | Bin 0 -> 273234 bytes seed/media/sneakers.jpg | Bin 0 -> 97365 bytes seed/media/streetwear-look.jpg | Bin 0 -> 219986 bytes seed/seed.json | 15 ++++++++--- templates/magazine-bold/article.ninjatpl | 8 ++++-- .../magazine-bold/announcement-bar.ninjatpl | 2 +- .../magazine-bold/audio-embed.ninjatpl | 2 +- .../magazine-bold/auth-status.ninjatpl | 2 +- .../magazine-bold/author-bio-hero.ninjatpl | 8 +++--- .../magazine-bold/breadcrumbs.ninjatpl | 2 +- .../overrides/magazine-bold/button.ninjatpl | 4 +-- .../overrides/magazine-bold/card.ninjatpl | 2 +- .../magazine-bold/contact-card.ninjatpl | 2 +- .../magazine-bold/contact-form.ninjatpl | 2 +- .../magazine-bold/countdown.ninjatpl | 2 +- .../overrides/magazine-bold/cta.ninjatpl | 2 +- .../overrides/magazine-bold/divider.ninjatpl | 2 +- .../magazine-bold/event-list.ninjatpl | 2 +- .../overrides/magazine-bold/faq.ninjatpl | 2 +- .../magazine-bold/feature-grid.ninjatpl | 4 +-- .../overrides/magazine-bold/footer.ninjatpl | 2 +- .../magazine-bold/hours-location.ninjatpl | 4 +-- .../overrides/magazine-bold/navbar.ninjatpl | 10 ++++---- .../magazine-bold/page-suggestions.ninjatpl | 2 +- .../overrides/magazine-bold/pricing.ninjatpl | 2 +- .../magazine-bold/rich-section.ninjatpl | 2 +- .../magazine-bold/sidebar-nav.ninjatpl | 2 +- .../magazine-bold/social-links.ninjatpl | 2 +- .../overrides/magazine-bold/team.ninjatpl | 2 +- .../magazine-bold/testimonial.ninjatpl | 10 ++++---- .../overrides/magazine-bold/timeline.ninjatpl | 2 +- .../magazine-bold/utility-bar.ninjatpl | 2 +- .../magazine-bold/video-embed.ninjatpl | 2 +- 43 files changed, 89 insertions(+), 60 deletions(-) create mode 100644 seed/media/editorial-figure.jpg create mode 100644 seed/media/sneakers-street.jpg create mode 100644 seed/media/sneakers.jpg create mode 100644 seed/media/streetwear-look.jpg diff --git a/blocks/cover_story.ninjatpl b/blocks/cover_story.ninjatpl index 2195d71..2ea466a 100644 --- a/blocks/cover_story.ninjatpl +++ b/blocks/cover_story.ninjatpl @@ -1,13 +1,15 @@ -{# cover_story (magazine-bold) — asymmetric cover: mono folio kicker, massive condensed headline, deck, duotone cover image, shop/read CTA. Fields: kicker, headline (richtext), deck (richtext), image (media), link, linkLabel. Image via {% img %} (media filter not registered in block render path). MID motion: mb-reveal + duotone hover, reduced-motion safe. #} -
+{# cover_story (magazine-bold) — asymmetric cover: mono folio kicker (top, always in frame), massive condensed headline CLAMPED to its reserved 8-col track so it never crosses the deck or bleeds off-viewport, deck in a reserved right column, duotone cover image, shop/read CTA. Fields: kicker, headline (richtext), deck (richtext), image (media), link, linkLabel. Image via {% img %} (media filter not registered in block render path). MID motion: mb-reveal + duotone hover, reduced-motion safe. #} +
-
-
{% if kicker %}
{{ kicker }}
{% endif %}
-

{% if headline %}{{ headline|safe }}{% else %}Cover story{% endif %}

-
{% if deck %}
{{ deck|safe }}
{% endif %}
+ {% if kicker %}
{{ kicker }}
{% endif %} +
+

{% if headline %}{{ headline|safe }}{% else %}Cover story{% endif %}

+
+ {% if deck %}
{{ deck|safe }}
{% endif %} + {% if link %}{% endif %} +
- {% if image %}
{% img image alt="" class="h-full w-full object-cover" layout="hero" %}
{% endif %} - {% if link %}{% endif %} + {% if image %}
{% img image alt="" class="h-full w-full object-cover" layout="hero" %}
{% endif %}