From 6950657c91912b01ee2a954160992b88dd9fe656 Mon Sep 17 00:00:00 2001 From: Nick Szaunig Date: Sat, 26 Sep 2026 06:12:44 +0200 Subject: [PATCH] feat(ui): Dunkelmodus fuer Shop und Admin mit Umschalter Rollen-Farben statt reiner Markenfarben, damit hell und dunkel aus einem Satz Klassen entstehen: - heading (Ueberschriften, Links, Rahmen): hell Waldgruen, dunkel Creme - surface (abgesetzte Flaeche): hell Creme, dunkel angehobenes Dunkelgruen - forest bleibt die dunkle Markenflaeche (Hero, Baender, Knoepfe, Admin-Leiste), cream der helle Text darauf - honey-deep als fester Honigton fuer Flaechen; honey-dark (Text) wird im Dunkelmodus heller und bleibt lesbar Codemod ueber src: text-/border-forest -> *-heading, bg-cream -> bg-surface, bg-honey-dark -> bg-honey-deep. Im hellen Modus haben die Rollen exakt die bisherigen Werte - das Erscheinungsbild bleibt gleich. Umschalter (components/theme-toggle.tsx) Automatisch -> Hell -> Dunkel in Kopfzeile, Mobilmenue und Admin-Leiste. Die Wahl liegt im Cookie "theme" (nur light/dark, geprueft in lib/theme.ts); der Server setzt data-theme schon beim Ausliefern, nichts blitzt hell auf. "Automatisch" folgt der Systemeinstellung. Gewaehlter und automatischer Dunkelblock in globals.css werden per Test auf Gleichheit geprueft. Logo, Biene und Select-Pfeil nutzen die Rollenfarben. In der Kopfzeile steht "Honig entdecken" zwischen 1280 und 1535 px nicht mehr doppelt neben "Shop" (sonst stiess die Navigation an), der Slogan erscheint erst ab 1680 px. Co-Authored-By: Claude Opus 5.5 (1M context) --- src/app/admin/anfragen/page.tsx | 4 +- src/app/admin/audit-log/page.tsx | 2 +- src/app/admin/benutzer/[id]/page.tsx | 4 +- src/app/admin/benutzer/neu/page.tsx | 2 +- src/app/admin/benutzer/page.tsx | 2 +- src/app/admin/bestellungen/[id]/page.tsx | 10 +-- src/app/admin/bestellungen/page.tsx | 4 +- src/app/admin/bewertungen/page.tsx | 2 +- src/app/admin/chargen/[id]/page.tsx | 2 +- src/app/admin/chargen/page.tsx | 4 +- src/app/admin/ernten/[id]/page.tsx | 2 +- src/app/admin/ernten/page.tsx | 4 +- src/app/admin/error.tsx | 4 +- src/app/admin/gutscheine/[id]/page.tsx | 2 +- src/app/admin/gutscheine/neu/page.tsx | 2 +- src/app/admin/gutscheine/page.tsx | 2 +- src/app/admin/inhalte/page.tsx | 22 +++--- src/app/admin/layout.tsx | 4 + src/app/admin/page.tsx | 32 ++++---- src/app/admin/produkte/[id]/page.tsx | 2 +- src/app/admin/produkte/neu/page.tsx | 2 +- src/app/admin/retouren/page.tsx | 4 +- src/app/admin/versand/[id]/page.tsx | 2 +- src/app/admin/versand/neu/page.tsx | 2 +- src/app/admin/versand/page.tsx | 2 +- src/app/bestellung-verfolgen/page.tsx | 14 ++-- src/app/charge/[code]/page.tsx | 4 +- src/app/checkout/checkout-form.tsx | 36 ++++----- src/app/checkout/embedded-payment.tsx | 2 +- src/app/checkout/success/page.tsx | 2 +- src/app/ernten/[year]/[type]/page.tsx | 10 +-- src/app/ernten/page.tsx | 4 +- src/app/globals.css | 59 +++++++++++++-- src/app/herkunft/page.tsx | 2 +- src/app/honig/[slug]/page.tsx | 28 +++---- src/app/imkerei/page.tsx | 2 +- src/app/kontakt/page.tsx | 2 +- src/app/konto/adressen/page.tsx | 12 +-- .../konto/bestellungen/[id]/retoure/page.tsx | 4 +- src/app/konto/bestellungen/page.tsx | 12 +-- src/app/konto/page.tsx | 20 ++--- src/app/konto/passwort-vergessen/page.tsx | 2 +- src/app/konto/passwort-zuruecksetzen/page.tsx | 2 +- src/app/konto/zwei-faktor-code/page.tsx | 2 +- .../konto/zwei-faktor/backup-codes/page.tsx | 2 +- src/app/konto/zwei-faktor/einrichten/page.tsx | 2 +- src/app/konto/zwei-faktor/page.tsx | 4 +- src/app/layout.tsx | 13 +++- src/app/newsletter-bestaetigt/page.tsx | 2 +- src/app/rechnung/[invoiceNumber]/page.tsx | 8 +- src/app/shop/page.tsx | 18 ++--- src/app/unternehmen/page.tsx | 2 +- src/app/warenkorb/warenkorb-content.tsx | 14 ++-- src/app/wissen/[slug]/page.tsx | 6 +- src/app/wissen/page.tsx | 2 +- src/components/account-ui.tsx | 20 ++--- src/components/admin-archive.tsx | 4 +- src/components/admin-command-palette.tsx | 2 +- src/components/admin-form.tsx | 2 +- src/components/admin-image-field.tsx | 2 +- src/components/admin-image-list-field.tsx | 2 +- src/components/admin-list.tsx | 10 +-- src/components/admin-shell.tsx | 24 ++++-- src/components/admin-video-field.tsx | 2 +- src/components/apicore-sync-panel.tsx | 4 +- src/components/back-link.tsx | 2 +- src/components/bee.tsx | 8 +- src/components/business-inquiry-form.tsx | 10 +-- src/components/copy-code-button.tsx | 2 +- src/components/flash-toast.tsx | 2 +- src/components/home-sections-a.tsx | 8 +- src/components/home-sections-b.tsx | 6 +- src/components/language-switcher.tsx | 2 +- src/components/legal-page.tsx | 4 +- src/components/logomark.tsx | 2 +- src/components/newsletter-signup.tsx | 4 +- src/components/page-outro.tsx | 2 +- src/components/password-field.tsx | 4 +- src/components/placeholder-image.tsx | 2 +- src/components/process-path.tsx | 2 +- src/components/product-card.tsx | 16 ++-- src/components/product-gallery.tsx | 2 +- src/components/quantity-stepper.tsx | 2 +- src/components/recently-viewed-section.tsx | 2 +- src/components/shipment-tracking-history.tsx | 8 +- src/components/site-chrome.tsx | 40 ++++++---- src/components/sticky-add-to-cart-bar.tsx | 2 +- src/components/theme-toggle.tsx | 74 +++++++++++++++++++ src/components/trust-badges.tsx | 2 +- src/components/ui.tsx | 8 +- src/i18n/dictionaries/de.ts | 6 ++ src/i18n/dictionaries/en.ts | 6 ++ src/i18n/dictionary-type.ts | 6 ++ src/lib/theme.test.ts | 43 +++++++++++ src/lib/theme.ts | 21 ++++++ 95 files changed, 514 insertions(+), 272 deletions(-) create mode 100644 src/components/theme-toggle.tsx create mode 100644 src/lib/theme.test.ts create mode 100644 src/lib/theme.ts diff --git a/src/app/admin/anfragen/page.tsx b/src/app/admin/anfragen/page.tsx index 724fe70..11b4efb 100644 --- a/src/app/admin/anfragen/page.tsx +++ b/src/app/admin/anfragen/page.tsx @@ -64,7 +64,7 @@ export default async function AdminInquiriesPage(props: PageProps<"/admin/anfrag
-

{inquiry.companyName}

+

{inquiry.companyName}

{statusLabels[inquiry.status] ?? inquiry.status} @@ -91,7 +91,7 @@ export default async function AdminInquiriesPage(props: PageProps<"/admin/anfrag diff --git a/src/app/admin/audit-log/page.tsx b/src/app/admin/audit-log/page.tsx index 5efb3ab..80cfe1c 100644 --- a/src/app/admin/audit-log/page.tsx +++ b/src/app/admin/audit-log/page.tsx @@ -35,7 +35,7 @@ export default async function AdminAuditLogPage() { {formatDateTime(entry.createdAt)} {entry.adminEmail} - {entry.action} + {entry.action} {entry.entityType} {entry.entityId ? #{entry.entityId.slice(-6)} : null} diff --git a/src/app/admin/benutzer/[id]/page.tsx b/src/app/admin/benutzer/[id]/page.tsx index b013fc4..32fa2de 100644 --- a/src/app/admin/benutzer/[id]/page.tsx +++ b/src/app/admin/benutzer/[id]/page.tsx @@ -34,7 +34,7 @@ export default async function AdminBenutzerEditPage(props: PageProps<"/admin/ben return (
-

+

{customer.firstName} {customer.lastName}

{tu.createdOn(formatDate(customer.createdAt))}

@@ -61,7 +61,7 @@ export default async function AdminBenutzerEditPage(props: PageProps<"/admin/ben
-

{tu.securityHeading}

+

{tu.securityHeading}

{tu.twoFactorLabel}
diff --git a/src/app/admin/benutzer/neu/page.tsx b/src/app/admin/benutzer/neu/page.tsx index 2b26a4b..974230e 100644 --- a/src/app/admin/benutzer/neu/page.tsx +++ b/src/app/admin/benutzer/neu/page.tsx @@ -12,7 +12,7 @@ export default async function AdminBenutzerNewPage() { return (
-

{tu.title}

+

{tu.title}

{tu.intro}

{tu.createAndSend}}> diff --git a/src/app/admin/benutzer/page.tsx b/src/app/admin/benutzer/page.tsx index 33b225c..32a9068 100644 --- a/src/app/admin/benutzer/page.tsx +++ b/src/app/admin/benutzer/page.tsx @@ -76,7 +76,7 @@ export default async function AdminBenutzerPage(props: PageProps<"/admin/benutze return ( - + {customer.firstName} {customer.lastName} {isSelf ? {t.adminUsersPage.youSuffix} : null} diff --git a/src/app/admin/bestellungen/[id]/page.tsx b/src/app/admin/bestellungen/[id]/page.tsx index a3cb0ad..3e4e791 100644 --- a/src/app/admin/bestellungen/[id]/page.tsx +++ b/src/app/admin/bestellungen/[id]/page.tsx @@ -52,7 +52,7 @@ export default async function AdminOrderDetailPage(props: PageProps<"/admin/best
-

{order.orderNumber}

+

{order.orderNumber}

{formatDate(order.createdAt)}

@@ -161,7 +161,7 @@ export default async function AdminOrderDetailPage(props: PageProps<"/admin/best ) : dhlConfigured ? (
-
@@ -215,7 +215,7 @@ export default async function AdminOrderDetailPage(props: PageProps<"/admin/best {order.items.map((item) => ( - + {item.productName} {" "} ({item.weightGrams} g) @@ -249,7 +249,7 @@ export default async function AdminOrderDetailPage(props: PageProps<"/admin/best −{formatPrice(order.discountCents, order.currency)}
) : null} -
+
{t.adminOrderDetailPage.totalLabel} {formatPrice(order.totalCents, order.currency)}
@@ -282,7 +282,7 @@ export default async function AdminOrderDetailPage(props: PageProps<"/admin/best {order.invoice.invoiceNumber} {t.adminOrderDetailPage.downloadPdf} diff --git a/src/app/admin/bestellungen/page.tsx b/src/app/admin/bestellungen/page.tsx index c113f7c..3ae8bb7 100644 --- a/src/app/admin/bestellungen/page.tsx +++ b/src/app/admin/bestellungen/page.tsx @@ -112,7 +112,7 @@ export default async function AdminOrdersPage(props: PageProps<"/admin/bestellun {orders.map((order) => ( - + {order.orderNumber} @@ -155,7 +155,7 @@ export default async function AdminOrdersPage(props: PageProps<"/admin/bestellun diff --git a/src/app/admin/bewertungen/page.tsx b/src/app/admin/bewertungen/page.tsx index 57b13e0..15ee4d9 100644 --- a/src/app/admin/bewertungen/page.tsx +++ b/src/app/admin/bewertungen/page.tsx @@ -71,7 +71,7 @@ export default async function AdminBewertungenPage(props: PageProps<"/admin/bewe {reviews.map((review) => ( - + {review.product.name} diff --git a/src/app/admin/chargen/[id]/page.tsx b/src/app/admin/chargen/[id]/page.tsx index c0a0681..ee6703a 100644 --- a/src/app/admin/chargen/[id]/page.tsx +++ b/src/app/admin/chargen/[id]/page.tsx @@ -20,7 +20,7 @@ export default async function AdminBatchEditPage(props: PageProps<"/admin/charge return (
-

{tb.title}

+

{tb.title}

{batch.code} · {batch.harvest.type} {batch.harvest.year}

diff --git a/src/app/admin/chargen/page.tsx b/src/app/admin/chargen/page.tsx index 9098e80..f6b6a04 100644 --- a/src/app/admin/chargen/page.tsx +++ b/src/app/admin/chargen/page.tsx @@ -46,7 +46,7 @@ export default async function AdminBatchesPage() { {batches.map((batch) => ( - {batch.code} + {batch.code} {batch.harvest.type} {batch.harvest.year} @@ -81,7 +81,7 @@ export default async function AdminBatchesPage() {
-

{t.adminBatchesPage.newBatchHeading}

+

{t.adminBatchesPage.newBatchHeading}

-

{th.title}

+

{th.title}

{harvest.isPublished ? null : (
diff --git a/src/app/admin/ernten/page.tsx b/src/app/admin/ernten/page.tsx index 4effb64..983415a 100644 --- a/src/app/admin/ernten/page.tsx +++ b/src/app/admin/ernten/page.tsx @@ -47,7 +47,7 @@ export default async function AdminHarvestsPage() { {harvests.map((harvest) => ( - {harvest.type} + {harvest.type} {harvest.year} {formatDate(harvest.harvestDate)} {harvest.location} @@ -93,7 +93,7 @@ export default async function AdminHarvestsPage() {
-

{t.adminHarvestsPage.newHarvestHeading}

+

{t.adminHarvestsPage.newHarvestHeading}

diff --git a/src/app/admin/error.tsx b/src/app/admin/error.tsx index 54ca008..3fde286 100644 --- a/src/app/admin/error.tsx +++ b/src/app/admin/error.tsx @@ -21,13 +21,13 @@ export default function AdminError({ return (

{t.errorPage.eyebrow}

-

{t.errorPage.title}

+

{t.errorPage.title}

{t.errorPage.description}

- + {t.adminVouchersPage.backToDashboard}
diff --git a/src/app/admin/gutscheine/[id]/page.tsx b/src/app/admin/gutscheine/[id]/page.tsx index 7ebb16b..2033f23 100644 --- a/src/app/admin/gutscheine/[id]/page.tsx +++ b/src/app/admin/gutscheine/[id]/page.tsx @@ -28,7 +28,7 @@ export default async function AdminGutscheinEditPage(props: PageProps<"/admin/gu return (
-

{tv.title}

+

{tv.title}

{tv.redeemedSoFar(code.usedCount, code.maxUses)}

{tv.save}}> diff --git a/src/app/admin/gutscheine/neu/page.tsx b/src/app/admin/gutscheine/neu/page.tsx index 7aaf676..48dc19c 100644 --- a/src/app/admin/gutscheine/neu/page.tsx +++ b/src/app/admin/gutscheine/neu/page.tsx @@ -18,7 +18,7 @@ export default async function AdminGutscheinNewPage() { return (
-

{tv.title}

+

{tv.title}

{tv.create}}> diff --git a/src/app/admin/gutscheine/page.tsx b/src/app/admin/gutscheine/page.tsx index dee312d..7ba8e66 100644 --- a/src/app/admin/gutscheine/page.tsx +++ b/src/app/admin/gutscheine/page.tsx @@ -42,7 +42,7 @@ export default async function AdminGutscheinePage() { {codes.map((code) => ( - {code.code} + {code.code} {code.type === "PERCENT" ? `${code.value} %` : formatPrice(code.value)} diff --git a/src/app/admin/inhalte/page.tsx b/src/app/admin/inhalte/page.tsx index f78f826..bbd4604 100644 --- a/src/app/admin/inhalte/page.tsx +++ b/src/app/admin/inhalte/page.tsx @@ -72,7 +72,7 @@ function FieldEditor({ )} @@ -120,7 +120,7 @@ function FieldEditor({ rows={rows} defaultValue={row?.valueDe ?? ""} placeholder={def.getDefault("de")} - className="mt-1 w-full border border-ink/20 bg-background px-3 py-2 text-sm focus:outline-none focus:border-forest" + className="mt-1 w-full border border-ink/20 bg-background px-3 py-2 text-sm focus:outline-none focus:border-heading" /> ) : ( )} @@ -140,7 +140,7 @@ function FieldEditor({ rows={rows} defaultValue={row?.valueEn ?? ""} placeholder={def.getDefault("en")} - className="mt-1 w-full border border-ink/20 bg-background px-3 py-2 text-sm focus:outline-none focus:border-forest" + className="mt-1 w-full border border-ink/20 bg-background px-3 py-2 text-sm focus:outline-none focus:border-heading" /> ) : ( )} @@ -185,7 +185,7 @@ function GroupForm({ className="mb-10 bg-background border border-ink/10 p-6 space-y-6" > -

{groupHeading}

+

{groupHeading}

{fields.map((def) => ( @@ -216,11 +216,11 @@ export default async function AdminInhaltePage() { return (
-

{t.adminContentPage.title}

+

{t.adminContentPage.title}

{t.adminContentPage.intro}

-

{t.adminContentPage.sectionImages}

+

{t.adminContentPage.sectionImages}

{t.adminContentPage.sectionImagesIntro}

{groups.map((group) => (
-

{t.adminContentPage.sectionText}

+

{t.adminContentPage.sectionText}

{t.adminContentPage.sectionTextIntro}

{groups.map((group) => ( ) { // abgeholte Bestellungen (keine offenen Zahlungen), neue Retouren, // unfreigegebene Bewertungen, neue Firmenanfragen. Reine COUNT-Abfragen. const brand = await getBrandAssets(); + const themeChoice = parseThemeChoice((await cookies()).get(THEME_COOKIE)?.value); const [openOrders, openReturns, pendingReviews, newInquiries] = await Promise.all([ prisma.order.count({ where: { status: { in: ["BEZAHLT", "IN_VORBEREITUNG", "VERSANDBEREIT", "ABHOLBEREIT"] }, archivedAt: null }, @@ -62,6 +65,7 @@ export default async function AdminLayout({ children }: LayoutProps<"/admin">) { ) { {/* Begruessung statt nackter Ueberschrift: der Tag beginnt hier. */}

{todayLine}

-

+

{t.adminDashboardPage.greeting(dayPart, admin?.firstName ?? "")}

@@ -396,23 +396,23 @@ export default async function AdminDashboardPage(props: PageProps<"/admin">) { {/* Was jetzt ansteht — direkt anklickbar. Wartet nichts, gibt es eine kleine Belohnung statt einer leeren Liste. */}
-

{t.adminDashboardPage.toDoHeading}

+

{t.adminDashboardPage.toDoHeading}

{toDo.length > 0 ? (
    {toDo.map((item) => (
  • - + {item.count} {item.label}
    -

    {t.adminDashboardPage.allDoneTitle}

    +

    {t.adminDashboardPage.allDoneTitle}

    {t.adminDashboardPage.allDoneText}

@@ -448,11 +448,11 @@ export default async function AdminDashboardPage(props: PageProps<"/admin">) { key={stat.key} className="group border border-ink/10 bg-background p-5 transition-[border-color,transform] duration-300 hover:-translate-y-0.5 hover:border-honey/50" > - +

{statLabels[stat.key]}

-

{stat.value}

+

{stat.value}

); })} @@ -460,7 +460,7 @@ export default async function AdminDashboardPage(props: PageProps<"/admin">) {
-

{t.adminDashboardPage.topProductsHeading}

+

{t.adminDashboardPage.topProductsHeading}

{topProducts.length === 0 ? (

{t.adminDashboardPage.noSalesYet}

) : ( @@ -469,13 +469,13 @@ export default async function AdminDashboardPage(props: PageProps<"/admin">) {
  • - + {i + 1} {product.name}{" "} {t.adminDashboardPage.unitsSuffix(product.quantity)} - {formatPrice(product.revenueCents)} + {formatPrice(product.revenueCents)}
  • ))} @@ -483,7 +483,7 @@ export default async function AdminDashboardPage(props: PageProps<"/admin">) {
    -

    +

    {t.adminDashboardPage.revenueByCategoryHeading}

    {revenueByCategory.length === 0 ? ( @@ -496,7 +496,7 @@ export default async function AdminDashboardPage(props: PageProps<"/admin">) { {t.common.categories[category as keyof typeof t.common.categories] ?? category} - {formatPrice(totals.revenueCents)} + {formatPrice(totals.revenueCents)}
    {/* Meter: Spur ist eine hellere Stufe desselben Tons. */}
    @@ -514,7 +514,7 @@ export default async function AdminDashboardPage(props: PageProps<"/admin">) {
    -

    +

    {t.adminDashboardPage.revenueTrendHeading(REVENUE_TREND_DAYS)}

    {/* Balken nach dataviz-Skill: duenn, 4px gerundete Kappe an der @@ -553,7 +553,7 @@ export default async function AdminDashboardPage(props: PageProps<"/admin">) {
    -

    {t.adminDashboardPage.topVouchersHeading}

    +

    {t.adminDashboardPage.topVouchersHeading}

    {topDiscountCodes.length === 0 ? (

    {t.adminDashboardPage.noVouchersYet}

    ) : ( @@ -566,7 +566,7 @@ export default async function AdminDashboardPage(props: PageProps<"/admin">) { ({code.type === "PERCENT" ? `${code.value} %` : formatPrice(code.value)}) - + {t.adminDashboardPage.usedCountLabel(code.usedCount, code.maxUses)} diff --git a/src/app/admin/produkte/[id]/page.tsx b/src/app/admin/produkte/[id]/page.tsx index 1518488..90edf50 100644 --- a/src/app/admin/produkte/[id]/page.tsx +++ b/src/app/admin/produkte/[id]/page.tsx @@ -34,7 +34,7 @@ export default async function AdminProductEditPage(props: PageProps<"/admin/prod return (
    -

    {te.title}

    +

    {te.title}

    {t.common.categories[product.category]} {product.harvest && product.batch diff --git a/src/app/admin/produkte/neu/page.tsx b/src/app/admin/produkte/neu/page.tsx index 5f2ec40..6881111 100644 --- a/src/app/admin/produkte/neu/page.tsx +++ b/src/app/admin/produkte/neu/page.tsx @@ -26,7 +26,7 @@ export default async function AdminProductNewPage() { return (

    -

    {tn.title}

    +

    {tn.title}

    -

    {request.order.orderNumber}

    +

    {request.order.orderNumber}

    {request.order.firstName} {request.order.lastName} · {request.order.email}

    @@ -136,7 +136,7 @@ export default async function AdminRetourenPage(props: PageProps<"/admin/retoure ))} -

    {formatPrice(request.order.totalCents, request.order.currency)}

    +

    {formatPrice(request.order.totalCents, request.order.currency)}

    {request.reason}

    diff --git a/src/app/admin/versand/[id]/page.tsx b/src/app/admin/versand/[id]/page.tsx index 7be4f09..7f23980 100644 --- a/src/app/admin/versand/[id]/page.tsx +++ b/src/app/admin/versand/[id]/page.tsx @@ -17,7 +17,7 @@ export default async function AdminVersandEditPage(props: PageProps<"/admin/vers return (
    -

    {ts.title}

    +

    {ts.title}

    {ts.save}}> diff --git a/src/app/admin/versand/neu/page.tsx b/src/app/admin/versand/neu/page.tsx index 9ba9cca..94572ec 100644 --- a/src/app/admin/versand/neu/page.tsx +++ b/src/app/admin/versand/neu/page.tsx @@ -12,7 +12,7 @@ export default async function AdminVersandNewPage() { return (
    -

    {ts.title}

    +

    {ts.title}

    {ts.create}}>
    diff --git a/src/app/admin/versand/page.tsx b/src/app/admin/versand/page.tsx index 0cf5e3f..2d99c31 100644 --- a/src/app/admin/versand/page.tsx +++ b/src/app/admin/versand/page.tsx @@ -35,7 +35,7 @@ export default async function AdminVersandPage() { {tiers.map((tier) => ( - + {tier.maxQuantity === null ? t.adminShippingPage.quantityFrom(tier.minQuantity) : t.adminShippingPage.quantityRange(tier.minQuantity, tier.maxQuantity)} diff --git a/src/app/bestellung-verfolgen/page.tsx b/src/app/bestellung-verfolgen/page.tsx index 5a3e5ba..238e57b 100644 --- a/src/app/bestellung-verfolgen/page.tsx +++ b/src/app/bestellung-verfolgen/page.tsx @@ -62,7 +62,7 @@ export default async function TrackOrderPage(props: PageProps<"/bestellung-verfo defaultValue={typeof orderNumber === "string" ? orderNumber : ""} placeholder={t.trackOrderPage.orderNumberPlaceholder} required - className="mt-1 w-full border border-ink/20 bg-background px-4 py-3 focus:outline-none focus:border-forest" + className="mt-1 w-full border border-ink/20 bg-background px-4 py-3 focus:outline-none focus:border-heading" /> @@ -96,7 +96,7 @@ export default async function TrackOrderPage(props: PageProps<"/bestellung-verfo
    -

    {order.orderNumber}

    +

    {order.orderNumber}

    {formatDate(order.createdAt, locale)}

    @@ -122,7 +122,7 @@ export default async function TrackOrderPage(props: PageProps<"/bestellung-verfo {order.items.map((item) => (
  • {item.quantity} ×{" "} - + {item.productName}
  • @@ -157,7 +157,7 @@ export default async function TrackOrderPage(props: PageProps<"/bestellung-verfo <> {" "} ·{" "} - + {t.shipmentInfo.trackPackage} @@ -181,9 +181,9 @@ export default async function TrackOrderPage(props: PageProps<"/bestellung-verfo />
    -

    {formatPrice(order.totalCents, order.currency, locale)}

    +

    {formatPrice(order.totalCents, order.currency, locale)}

    {order.invoice ? ( - + {t.trackOrderPage.viewInvoice} ) : null} diff --git a/src/app/charge/[code]/page.tsx b/src/app/charge/[code]/page.tsx index 101c32e..4d3d9dc 100644 --- a/src/app/charge/[code]/page.tsx +++ b/src/app/charge/[code]/page.tsx @@ -80,7 +80,7 @@ export default async function BatchPage(props: PageProps<"/charge/[code]">) { {t.chargePage.verifiedBatch}
    -

    +

    {batch.harvest.type} {batch.harvest.year}

    {t.chargePage.provenanceNote(batch.code)}

    @@ -132,7 +132,7 @@ export default async function BatchPage(props: PageProps<"/charge/[code]">) { ) : null}

    {step.label}

    -

    {step.value}

    +

    {step.value}

    ))} diff --git a/src/app/checkout/checkout-form.tsx b/src/app/checkout/checkout-form.tsx index a969dbe..e54e46f 100644 --- a/src/app/checkout/checkout-form.tsx +++ b/src/app/checkout/checkout-form.tsx @@ -378,14 +378,14 @@ export function CheckoutForm({ aria-pressed={selected} className={`group relative flex items-center gap-4 border px-5 py-4 text-left transition-[border-color,background-color,box-shadow] duration-300 ${ selected - ? "border-forest bg-forest/[0.04] text-forest shadow-[0_14px_30px_-22px_rgba(36,53,43,0.6)]" - : "border-ink/15 text-ink/70 hover:border-forest/50" + ? "border-heading bg-forest/[0.04] text-heading shadow-[0_14px_30px_-22px_rgba(36,53,43,0.6)]" + : "border-ink/15 text-ink/70 hover:border-heading/50" }`} >