fix(ui): roter NEU-Badge, separate Nav-Pills, Footer-Headlines + Spalten
Deploy / verify (push) Successful in 1m26s
Deploy / deploy (push) Successful in 1m44s

- AnnouncementBanner: führendes **bold** rendert als roter Pill-Badge
- Header: Kalender/Adressbuch/Suche je eigene Pill statt geteiltem Container
- LinkListBlock: uppercase raus, >4 Links → 4er-Spalten ab sm

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Peter Meier
2026-06-26 12:20:24 +02:00
parent 81c067fa0c
commit 52929122f5
3 changed files with 30 additions and 8 deletions
+19 -1
View File
@@ -10,7 +10,7 @@
{#if banner?.text}
<div class="w-full bg-wald-600 text-white print:hidden" role="note" style="font-size: 0.7rem;">
<div class="container-custom flex items-center gap-3 py-2 md:justify-center md:text-center">
<span>{@html textHtml}</span>
<span class="banner-text">{@html textHtml}</span>
{#if banner.link}
<a
href={banner.link}
@@ -22,3 +22,21 @@
</div>
</div>
{/if}
<style>
/* Leading **bold** in the banner text renders as a red "NEU"-style badge. */
.banner-text :global(strong:first-child) {
display: inline-block;
vertical-align: middle;
margin-right: 0.3em;
padding: 0.1em 0.5em;
border-radius: 9999px;
background: var(--color-fire-600);
color: #fff;
font-size: 0.85em;
font-weight: 700;
line-height: 1.2;
text-transform: uppercase;
letter-spacing: 0.03em;
}
</style>
+3 -5
View File
@@ -193,9 +193,7 @@
</a>
{/if}
{/each}
<div
class="ml-2 flex items-center gap-0.5 rounded-full border border-wald-700/15 bg-wald-700/8 px-2 py-1"
>
<div class="ml-2 flex items-center gap-1.5">
{#each socialLinks as social}
{@const isInternal = social.href.startsWith("/")}
{@const sActive = isInternal && isActiveLink(social.href, $page.url.pathname)}
@@ -203,7 +201,7 @@
href={social.href}
target={isInternal ? undefined : "_blank"}
rel={isInternal ? undefined : "noopener noreferrer"}
class="px-1.5 py-0.5 rounded-full transition-opacity hover:opacity-70 inline-flex items-center gap-1.5 {sActive ? 'font-bold' : ''}"
class="rounded-full border border-wald-700/15 bg-wald-700/8 px-2.5 py-1 transition-opacity hover:opacity-70 inline-flex items-center gap-1.5 {sActive ? 'font-bold' : ''}"
aria-current={sActive ? "page" : undefined}
aria-label={social.label || t(T.header_social_aria)}
title={social.label || t(T.header_social_aria)}
@@ -216,7 +214,7 @@
{/each}
<button
type="button"
class="px-1.5 py-0.5 rounded-full transition-opacity hover:opacity-70 inline-flex items-center justify-center"
class="rounded-full border border-wald-700/15 bg-wald-700/8 px-2.5 py-1 transition-opacity hover:opacity-70 inline-flex items-center justify-center"
aria-label={searchOpen
? t(T.header_search_close)
: t(T.header_search_open)}
@@ -30,9 +30,15 @@
<div class="link-list {layoutClasses}" data-block="LinkList" data-block-type="link_list" data-block-slug={block._slug}>
{#if block.headline}
<h3 class="mb-3 text-sm font-semibold tracking-wide uppercase">{block.headline}</h3>
<h3 class="mb-3 text-sm font-semibold">{block.headline}</h3>
{/if}
<ul class={iconOnlyAll ? "flex flex-wrap gap-3" : "flex flex-col gap-1.5"}>
<ul
class={iconOnlyAll
? "flex flex-wrap gap-3"
: links.length > 4
? "grid grid-flow-row gap-x-8 gap-y-1.5 sm:grid-flow-col sm:grid-rows-4"
: "flex flex-col gap-1.5"}
>
{#each links as link}
{@const hasIcon = !!link.icon}
{@const showText = link.showText !== false}