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:
1 parent
a4581d3467
commit
1fa8ca246a
33 files changed
+22
-107
No files matched your search
@@ -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">
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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}
|
||||
/>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 ? (
|
||||
|
||||
@@ -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 ? (
|
||||
|
||||
@@ -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 ? (
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
/>
|
||||
|
||||
@@ -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}
|
||||
/>
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -50,7 +50,6 @@ export default async function NotFound() {
|
||||
})}
|
||||
</svg>
|
||||
<SectionHeading
|
||||
eyebrow={t.notFoundPage.eyebrow}
|
||||
title={t.notFoundPage.title}
|
||||
align="center"
|
||||
className="mx-auto"
|
||||
|
||||
@@ -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}
|
||||
/>
|
||||
|
||||
@@ -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}
|
||||
/>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
Reference in new issue
Block a user