From 98af6423c546676beab4b3be38fc1e65ccb711c8 Mon Sep 17 00:00:00 2001 From: syntaxbullet Date: Mon, 13 Jul 2026 20:27:37 +0200 Subject: [PATCH] feat: add anchor IDs and scroll margin for award cards and sponsoring form --- src/spa/components/AwardsGridSection.tsx | 28 +++++++++++++++++------- src/spa/pages/Netzwerk.tsx | 3 +-- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/spa/components/AwardsGridSection.tsx b/src/spa/components/AwardsGridSection.tsx index 8fb1db0..7b5f159 100644 --- a/src/spa/components/AwardsGridSection.tsx +++ b/src/spa/components/AwardsGridSection.tsx @@ -54,6 +54,16 @@ const isGoldeneBavariaCard = (card: ResolvedAwardCard) => normalizeLookupText(card.title).includes('goldene') || normalizeLookupText(card.label).includes('goldene'); +const awardAnchorId = (card: ResolvedAwardCard) => { + const lookup = normalizeLookupText(`${card.title} ${card.label} ${card.articleCta?.url}`); + + if (lookup.includes('goldene-bavaria') || lookup.includes('goldene')) return 'goldene-bavaria'; + if (lookup.includes('roland-berger') || lookup.includes('roland berger')) return 'roland-berger-zukunftspreis'; + if (lookup.includes('bavarian-future-award') || lookup.includes('bavarian future award')) return 'bavarian-future-award'; + + return undefined; +}; + const splitFeaturedAwardCard = (cards: ResolvedAwardCard[], enabled: boolean) => { if (!enabled) return { featuredCard: null, supportingCards: cards }; @@ -81,7 +91,7 @@ function FeaturedAwardCard({ card }: { card: ResolvedAwardCard }) { const isContainedImage = isContainedAwardImage(imageFilename); return ( -
+
-
- +
+ {fallbackText(card.label, 'Auszeichnung 01')} -

+

-

+

{fallbackText(card.description, '')}

@@ -144,8 +154,8 @@ function FeaturedAwardCard({ card }: { card: ResolvedAwardCard }) { alignItems: 'center', justifyContent: 'center', gap: 8, - color: '#fff', - border: '1px solid rgba(255,255,255,0.24)', + color: NAVY, + border: '1px solid rgba(3,9,58,0.18)', fontFamily: FF, fontSize: 13, fontWeight: 700, @@ -190,6 +200,7 @@ function SupportingAwardCards({ return (
@@ -317,7 +329,7 @@ export default function AwardsGridSection({ content, featuredGoldeneBavaria = fa {featuredCard && supportingCards.length > 0 ? ( -
+

diff --git a/src/spa/pages/Netzwerk.tsx b/src/spa/pages/Netzwerk.tsx index 465c73d..3778951 100644 --- a/src/spa/pages/Netzwerk.tsx +++ b/src/spa/pages/Netzwerk.tsx @@ -840,8 +840,7 @@ const Netzwerk: React.FC = () => {

)} -
- {fallbackText(sponsoring.formEyebrow, netzwerkContent.sponsoring.formEyebrow)} +