From 4b87ad3c8483ae85851ad936aaf4ced7e312afe7 Mon Sep 17 00:00:00 2001 From: Peter Meier Date: Mon, 13 Jul 2026 10:28:52 +0200 Subject: [PATCH] =?UTF-8?q?feat(top-banner):=20editorialer=20Hero-Scrim=20?= =?UTF-8?q?statt=20Farbk=C3=A4sten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Titel-Overlay neu: linksseitiger dunkler Verlaufs-Scrim mit weißem Titel + Subtitle und Wald-Eyebrow ("Windwiderstand Thüringen"). Ersetzt die beiden sich beißenden Farbkästen (fire-400/70 + white/50). Eyebrow blendet aus, wenn er die Headline dupliziert (Home) — Content und SEO unangetastet. Größen/Farben per `!` gegen unlayered base h1/h2. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/lib/components/TopBanner.svelte | 41 ++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/src/lib/components/TopBanner.svelte b/src/lib/components/TopBanner.svelte index c27b005..7185d7e 100644 --- a/src/lib/components/TopBanner.svelte +++ b/src/lib/components/TopBanner.svelte @@ -68,6 +68,13 @@ subheadline?.trim() ? (marked.parseInline(subheadline) as string) : "", ); + const eyebrowLabel = "Windwiderstand Thüringen"; + // Eyebrow überall — nur ausblenden, wenn er die Headline dupliziert (Home). + const showEyebrow = $derived( + (headline?.replace(/<[^>]*>/g, "").trim().toLowerCase() ?? "") !== + eyebrowLabel.toLowerCase(), + ); + const hasResponsive = $derived( responsive != null && responsive.fallback.trim().length > 0, ); @@ -125,15 +132,31 @@ {/key} {/if} {#if hasPageTitle} -
-
- {#if headlineHtml} -

{@html headlineHtml}

- {/if} -
- {#if subheadlineHtml} -

{@html subheadlineHtml}

- {/if} + + +
+
+
+ {#if showEyebrow} + + + {eyebrowLabel} + + {/if} + {#if headlineHtml} +

+ {@html headlineHtml} +

+ {/if} + {#if subheadlineHtml} +

+ {@html subheadlineHtml} +

+ {/if} +
{/if}