refactor(ui): Kicker-Zeilen ueber Ueberschriften entfernt

Jede zweite Ueberschrift trug eine kleine Versalien-Zeile mit Wabenpunkt
("• STIMMEN", "• AKTUELL VERFUEGBAR", "• KUNDENKONTO" ...). Auf 29 Seiten
und Abschnitten wiederholt las sich das wie eine Vorlage. SectionHeading
rendert sie nicht mehr, die Prop ist entfernt; die Ueberschrift traegt den
Abschnitt allein.

Die eyebrow-Texte, die weiterhin als Seitentitel, Bildbeschriftung oder
Breadcrumb dienen, bleiben; 18 danach ungenutzte Eintraege sind aus Typ und
beiden Woerterbuechern entfernt.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5.5 committed 2026-09-26 01:41:48 +02:00
1 parent a4581d3467
commit 1fa8ca246a
33 files changed
+22 -107

No files matched your search

+1 -1
View File
@@ -49,7 +49,7 @@ export default async function TrackOrderPage(props: PageProps<"/bestellung-verfo
return (
<div className="py-20">
<Container className="max-w-xl">
<SectionHeading eyebrow={t.trackOrderPage.eyebrow} title={t.trackOrderPage.title} />
<SectionHeading title={t.trackOrderPage.title} />
<p className="mt-4 text-ink/70 leading-relaxed">{t.trackOrderPage.intro}</p>
<FormPanel className="mt-8">
-1
View File
@@ -27,7 +27,6 @@ export default async function CheckoutCancelPage(props: PageProps<"/checkout/can
<div className="py-24">
<Container className="max-w-xl text-center">
<SectionHeading
eyebrow={t.checkoutCancelPage.eyebrow}
title={t.checkoutCancelPage.title}
align="center"
className="mx-auto"
+2 -2
View File
@@ -295,7 +295,7 @@ export function CheckoutForm({
return (
<div className="py-20">
<Container>
<SectionHeading eyebrow={t.checkoutPage.eyebrow} title={t.checkoutPage.emptyCart} />
<SectionHeading title={t.checkoutPage.emptyCart} />
</Container>
</div>
);
@@ -328,7 +328,7 @@ export function CheckoutForm({
{/* Stripe zeigt im Zahlungsschritt selbst Positionen und Summe —
Formular und eigene Zusammenfassung treten dann zurueck. */}
<form onSubmit={handleSubmit} hidden={payment !== null} className="lg:col-span-2 space-y-8">
<SectionHeading eyebrow={t.checkoutPage.eyebrow} title={t.checkoutPage.yourDetails} />
<SectionHeading title={t.checkoutPage.yourDetails} />
<div className="grid sm:grid-cols-2 gap-4">
<Field
+1 -3
View File
@@ -41,7 +41,7 @@ export default async function CheckoutSuccessPage(props: PageProps<"/checkout/su
return (
<div className="py-16">
<Container className="max-w-3xl">
<SectionHeading eyebrow={t.checkoutSuccessPage.openEyebrow} title={t.checkoutSuccessPage.openTitle} />
<SectionHeading title={t.checkoutSuccessPage.openTitle} />
<p role="status" className="mt-4 mb-10 text-ink/70">
{t.checkoutSuccessPage.openText}
</p>
@@ -64,7 +64,6 @@ export default async function CheckoutSuccessPage(props: PageProps<"/checkout/su
<div className="py-24">
<Container className="max-w-xl text-center">
<SectionHeading
eyebrow={t.checkoutSuccessPage.notCompletedEyebrow}
title={t.checkoutSuccessPage.notCompletedTitle}
align="center"
className="mx-auto"
@@ -88,7 +87,6 @@ export default async function CheckoutSuccessPage(props: PageProps<"/checkout/su
<ClearCartOnMount />
<Container className="max-w-xl text-center">
<SectionHeading
eyebrow={isPaid ? t.checkoutSuccessPage.successEyebrow : t.checkoutSuccessPage.pendingEyebrow}
title={isPaid ? t.checkoutSuccessPage.successTitle : t.checkoutSuccessPage.pendingTitle}
align="center"
className="mx-auto"
+1 -1
View File
@@ -32,7 +32,7 @@ export default async function ErntenPage() {
<div className="py-20">
<Container>
<ScrollReveal>
<SectionHeading level="h1" eyebrow={t.erntenPage.eyebrow} title={t.erntenPage.title} />
<SectionHeading level="h1" title={t.erntenPage.title} />
</ScrollReveal>
<div className="mt-16 space-y-24">
-1
View File
@@ -43,7 +43,6 @@ export default function Error({ error, reset }: { error: Error & { digest?: stri
/>
</svg>
<SectionHeading
eyebrow={t.siteErrorPage.eyebrow}
title={t.siteErrorPage.title}
align="center"
className="mx-auto"
-1
View File
@@ -44,7 +44,6 @@ export default async function HerkunftPage() {
<div className="max-w-3xl bg-background px-8 pt-10 pb-2 md:px-12 md:pt-12 shadow-[0_-20px_40px_-30px_rgba(36,53,43,0.35)]">
<SectionHeading
level="h1"
eyebrow={t.herkunftPage.eyebrow}
title={t.herkunftPage.title}
subtitle={t.herkunftPage.subtitle}
/>
-1
View File
@@ -25,7 +25,6 @@ export default async function ImkereiPage() {
<ScrollReveal>
<SectionHeading
level="h1"
eyebrow={t.imkereiPage.eyebrow}
title={t.imkereiPage.title}
/>
<div className="mt-8 max-w-[62ch] space-y-5 text-ink/75 leading-relaxed">
+1 -1
View File
@@ -22,7 +22,7 @@ export default async function KontaktPage() {
<div className="py-20">
<Container className="max-w-5xl">
<ScrollReveal>
<SectionHeading level="h1" eyebrow={t.kontaktPage.eyebrow} title={t.kontaktPage.title} />
<SectionHeading level="h1" title={t.kontaktPage.title} />
</ScrollReveal>
<div className="mt-12 grid gap-6 md:grid-cols-5">
+1 -1
View File
@@ -25,7 +25,7 @@ export default async function KontoAdressenPage() {
<div className="py-20">
<Container className="max-w-3xl">
<BackLink href="/konto" label={t.ordersPage.backToAccount} />
<SectionHeading eyebrow={t.account.eyebrow} title={t.addressesPage.title} />
<SectionHeading title={t.addressesPage.title} />
<div className="mt-10 grid gap-4 sm:grid-cols-2">
@@ -45,7 +45,7 @@ export default async function RetourePage(props: PageProps<"/konto/bestellungen/
<div className="py-20">
<Container className="max-w-lg">
<BackLink href="/konto/bestellungen" label={t.retourePage.backLabel} />
<SectionHeading eyebrow={t.retourePage.orderEyebrow(order.orderNumber)} title={t.retourePage.title} />
<SectionHeading title={t.retourePage.title} />
<FormPanel className="mt-8">
<ul className="divide-y divide-ink/10 border-y border-ink/10 text-sm text-ink/75">
+1 -1
View File
@@ -39,7 +39,7 @@ export default async function KontoBestellungenPage() {
<div className="py-20">
<Container className="max-w-3xl">
<BackLink href="/konto" label={t.ordersPage.backToAccount} />
<SectionHeading eyebrow={t.account.eyebrow} title={t.ordersPage.title} />
<SectionHeading title={t.ordersPage.title} />
{orders.length === 0 ? (
+2 -2
View File
@@ -30,7 +30,7 @@ export default async function KontoPage() {
return (
<div className="py-20">
<Container className="max-w-3xl">
<SectionHeading eyebrow={t.account.eyebrow} title={t.account.loginRegisterTitle} />
<SectionHeading title={t.account.loginRegisterTitle} />
<div className="mt-10 grid md:grid-cols-2 md:divide-x md:divide-ink/10 gap-12 md:gap-0">
<form action={loginAction} className="space-y-4 md:pr-12">
<h2 className="text-3xl text-forest">{t.account.login}</h2>
@@ -121,7 +121,7 @@ export default async function KontoPage() {
return (
<div className="py-20">
<Container className="max-w-2xl">
<SectionHeading eyebrow={t.account.eyebrow} title={t.account.greeting(customer.firstName)} />
<SectionHeading title={t.account.greeting(customer.firstName)} />
{!customer.emailVerifiedAt ? (
+1 -1
View File
@@ -17,7 +17,7 @@ export default async function PasswortVergessenPage(props: PageProps<"/konto/pas
<Container className="max-w-lg">
<FormPanel>
<BackLink href="/konto" label={t.passwortVergessenPage.backLabel} />
<SectionHeading eyebrow={t.account.eyebrow} title={t.passwortVergessenPage.title} />
<SectionHeading title={t.passwortVergessenPage.title} />
{sent ? (
@@ -20,7 +20,7 @@ export default async function PasswortZuruecksetzenPage(
<Container className="max-w-lg">
<FormPanel>
<BackLink href="/konto" label={t.passwortZuruecksetzenPage.backLabel} />
<SectionHeading eyebrow={t.account.eyebrow} title={t.passwortZuruecksetzenPage.title} />
<SectionHeading title={t.passwortZuruecksetzenPage.title} />
{!token ? (
+1 -1
View File
@@ -24,7 +24,7 @@ export default async function KontoWunschlistePage() {
<div className="py-20">
<Container>
<BackLink href="/konto" label={t.ordersPage.backToAccount} />
<SectionHeading eyebrow={t.account.eyebrow} title={t.wishlistPage.title} />
<SectionHeading title={t.wishlistPage.title} />
{products.length === 0 ? (
<AccountEmptyState
-1
View File
@@ -23,7 +23,6 @@ export default async function ZweiFaktorCodePage() {
<FormPanel>
<BackLink href="/konto" label={t.twoFactorCodePage.cancelLabel} />
<SectionHeading
eyebrow={t.twoFactorCodePage.eyebrow}
title={t.twoFactorCodePage.title}
subtitle={t.twoFactorCodePage.subtitle}
/>
@@ -22,7 +22,6 @@ export default async function ZweiFaktorBackupCodesPage() {
<Container className="max-w-lg">
<FormPanel>
<SectionHeading
eyebrow={t.twoFactorBackupCodesPage.eyebrow}
title={t.twoFactorBackupCodesPage.title}
subtitle={t.twoFactorBackupCodesPage.subtitle}
/>
@@ -28,7 +28,6 @@ export default async function ZweiFaktorEinrichtenPage() {
<FormPanel>
<BackLink href="/konto/zwei-faktor" label={t.twoFactorSetupPage.backLabel} />
<SectionHeading
eyebrow={t.twoFactorSetupPage.eyebrow}
title={t.twoFactorSetupPage.title}
subtitle={t.twoFactorSetupPage.subtitle}
/>
-1
View File
@@ -29,7 +29,6 @@ export default async function ZweiFaktorPage() {
<FormPanel>
<BackLink href="/konto" label={t.twoFactorPage.backLabel} />
<SectionHeading
eyebrow={t.twoFactorPage.eyebrow}
title={t.twoFactorPage.title}
subtitle={t.twoFactorPage.subtitle}
/>
-1
View File
@@ -31,7 +31,6 @@ export default async function NewsletterBestaetigtPage(props: PageProps<"/newsle
<div className="py-24">
<Container className="max-w-xl text-center">
<SectionHeading
eyebrow={t.newsletterBestaetigtPage.eyebrow}
title={title}
align="center"
className="mx-auto"
-1
View File
@@ -50,7 +50,6 @@ export default async function NotFound() {
})}
</svg>
<SectionHeading
eyebrow={t.notFoundPage.eyebrow}
title={t.notFoundPage.title}
align="center"
className="mx-auto"
-1
View File
@@ -88,7 +88,6 @@ export default async function ShopPage(props: PageProps<"/shop">) {
<ScrollReveal>
<SectionHeading
level="h1"
eyebrow={t.shop.eyebrow}
title={t.shop.title}
subtitle={t.shop.subtitle}
/>
-1
View File
@@ -41,7 +41,6 @@ export default async function UnternehmenPage() {
<ScrollReveal>
<SectionHeading
level="h1"
eyebrow={t.unternehmenPage.eyebrow}
title={t.unternehmenPage.title}
subtitle={t.unternehmenPage.subtitle}
/>
+1 -1
View File
@@ -66,7 +66,7 @@ export function WarenkorbContent({
return (
<div className="py-16">
<Container>
<SectionHeading eyebrow={t.cart.title} title={t.cartPage.title} />
<SectionHeading title={t.cartPage.title} />
{items.length === 0 ? (
<div className="mt-14">
+1 -1
View File
@@ -21,7 +21,7 @@ export default async function WissenPage() {
<div className="py-20">
<Container className="max-w-3xl">
<ScrollReveal>
<SectionHeading level="h1" eyebrow={t.wissenListPage.eyebrow} title={t.wissenListPage.title} />
<SectionHeading level="h1" title={t.wissenListPage.title} />
</ScrollReveal>
<div className="mt-14 divide-y divide-ink/10 border-y border-ink/10">
{wissenSlugs.map((slug, i) => {