From 064ca3ff6d5b26c7524badf4068df7a858ef7a61 Mon Sep 17 00:00:00 2001 From: Nick Szaunig Date: Fri, 25 Sep 2026 08:05:01 +0200 Subject: [PATCH] feat(ui): Kopfzeile, Fusszeile und Details mit mehr Leben - Kopfzeile: aktive Seite mit Honig-Unterstrich (auch im Handy-Menue), einlaufende Unterstriche beim Hover, beim Scrollen Glas und Schatten; weicht beim Runterscrollen aus und ist beim Hochscrollen sofort zurueck (steht still, solange Warenkorb oder Menue offen sind) - Fusszeile mit Wabenraster und einlaufenden Link-Unterstrichen - Mengensteller: gezeichnete Plus/Minus, taktiles Druecken, tickende Zahl - Newsletter als eigene Flaeche mit Wabenraster; Erfolg zeichnet ein Haekchen in eine Wabe, Fehler werden als Alert angesagt - 404: Wabe mit einer fehlenden Zelle als Bild fuer die fehlende Seite Co-Authored-By: Claude Opus 5.5 (1M context) --- src/app/not-found.tsx | 34 +++++++++++ src/components/newsletter-signup.tsx | 48 +++++++++++++++- src/components/quantity-stepper.tsx | 38 ++++++++++--- src/components/site-chrome.tsx | 85 ++++++++++++++++++++++++---- src/components/site-footer.tsx | 8 ++- 5 files changed, 188 insertions(+), 25 deletions(-) diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx index fbc674e..0854be2 100644 --- a/src/app/not-found.tsx +++ b/src/app/not-found.tsx @@ -15,6 +15,40 @@ export default async function NotFound() { return (
+ {/* Eine Wabe, in der genau eine Zelle fehlt — diese Seite. */} + - + + {/* Eigene Flaeche mit Wabenraster: die Anmeldung ist ein Angebot, + kein Nachsatz unter der Seite. */} +
+ +
{t.home.newsletter.description}

{status === "success" ? ( -

{t.home.newsletter.successMessage}

+ // Bestaetigung als kleine Zeremonie: das Haekchen zeichnet sich + // in der Wabe, dann erscheint der Text. +
+ + + {t.home.newsletter.successMessage} + +
) : (
{/* Eingabefeld und Knopf bilden die Zeile, das CAPTCHA steht @@ -92,7 +130,9 @@ export function NewsletterSignup({ turnstileSiteKey }: { turnstileSiteKey?: stri
)} {status === "error" ? ( -

{t.home.newsletter.errorMessage}

+

+ {t.home.newsletter.errorMessage} +

) : null}

@@ -102,6 +142,8 @@ export function NewsletterSignup({ turnstileSiteKey }: { turnstileSiteKey?: stri {t.home.newsletter.consentAfterLink}

+
+
diff --git a/src/components/quantity-stepper.tsx b/src/components/quantity-stepper.tsx index 9f24d71..d5f401c 100644 --- a/src/components/quantity-stepper.tsx +++ b/src/components/quantity-stepper.tsx @@ -1,7 +1,14 @@ +"use client"; + +import { AnimatePresence, motion } from "motion/react"; + /** * Gemeinsamer Mengen-Steller (−/Zahl/+), bisher als Inline-Markup nur auf der * Produktdetailseite vorhanden, waehrend Warenkorb-Drawer und Warenkorb-Seite * noch ein natives