From 7e467a9ddf4bc02cea22734a85b4a15e11e9111d Mon Sep 17 00:00:00 2001 From: Nick Szaunig Date: Sat, 26 Sep 2026 01:45:06 +0200 Subject: [PATCH] feat(ui): Startseite mit eigenstaendigen Abschnitten statt Schablonen-Zickzack - Aktuelle Ernte: bei ein, zwei Produkten steht die Ueberschrift als eigene Spalte daneben, statt ueber einem halb leeren Dreierraster. - Herkunft: Foto randlos ueber die halbe Seitenbreite, Text daneben, ohne Rahmen. - Philosophie: typografische Reihe mit Trennlinien und grossen Serif-Titeln statt vier Icon-Karten. - Region: breites Bild, der Text liegt als Tafel ueberlappend darueber. - Geschaeftskunden: kompakte Tafel mit randlosem Bild statt eines dritten grossen Bild/Text-Wechsels. Inhalte, Texte und Content-Schluessel bleiben unveraendert. Co-Authored-By: Claude Opus 5.5 (1M context) --- src/components/home-sections-a.tsx | 92 ++++++++++++++++-------------- src/components/home-sections-b.tsx | 74 ++++++++++++------------ 2 files changed, 85 insertions(+), 81 deletions(-) diff --git a/src/components/home-sections-a.tsx b/src/components/home-sections-a.tsx index 370c0b2..043b4bd 100644 --- a/src/components/home-sections-a.tsx +++ b/src/components/home-sections-a.tsx @@ -1,4 +1,4 @@ -import { Container, SectionHeading, LinkButton, FramedMedia } from "@/components/ui"; +import { Container, SectionHeading, LinkButton } from "@/components/ui"; import { HoneycombPattern, HexMark } from "@/components/honeycomb"; import { ScrollReveal } from "@/components/scroll-reveal"; import { ContentImage } from "@/components/content-image"; @@ -17,16 +17,25 @@ export async function CurrentHarvest({ reviewSummaries?: Map; }) { const t = getDictionary(await getLocale()); + // Ausserhalb der Erntezeit sind es oft nur ein, zwei Glaeser. Dann steht die + // Ueberschrift als eigene Spalte daneben, statt ueber einem halb leeren + // Dreierraster. + const isFew = products.length <= 2; return (
- - - + + +
+ +
-
+
{products.map((product, index) => ( - - - - - - - - + // Randlos geteilt: das Foto fuellt die linke Haelfte bis an den + // Fensterrand, der Text steht daneben — kein Rahmen, keine Karte. +
+ + + +
+ +

{content["home.originStory.paragraph1"]}

{content["home.originStory.paragraph2"]}

    @@ -83,11 +91,11 @@ export async function OriginStory() { ))}
- + {t.home.originStory.cta}
- +
); } @@ -98,26 +106,22 @@ export async function Philosophy() { const content = await getContentValues(["home.philosophy.items"], locale); const items = parseListTitled(content["home.philosophy.items"]); return ( -
+
- + -
+ {/* Typografische Reihe statt Icon-Karten: vier Grundsaetze, getrennt + durch Linien, die Titel tragen das Gewicht. */} +
{items.map((item, i) => ( - -
- {/* Wabe statt "01"-Nummer: die vier Punkte sind gleichrangig, keine Reihenfolge. */} - -

{item.title}

-

- {item.text} -

-
+ +

{item.title}

+

{item.text}

))}
diff --git a/src/components/home-sections-b.tsx b/src/components/home-sections-b.tsx index f2851a3..95351a6 100644 --- a/src/components/home-sections-b.tsx +++ b/src/components/home-sections-b.tsx @@ -1,4 +1,4 @@ -import { Container, SectionHeading, LinkButton, FramedMedia } from "@/components/ui"; +import { Container, SectionHeading, LinkButton } from "@/components/ui"; import { ProcessPath } from "@/components/process-path"; import { HoneycombPattern, HexMark } from "@/components/honeycomb"; import { ScrollReveal } from "@/components/scroll-reveal"; @@ -43,11 +43,24 @@ export async function RegionalSection() { ); return (
- - - + {/* Breites Bild, der Text legt sich als Tafel darueber — Tiefe statt + eines weiteren Bild-neben-Text-Wechsels. */} + + + + +

{content["home.regionalSection.paragraph1"]}

{content["home.regionalSection.paragraph2"]}

@@ -59,18 +72,6 @@ export async function RegionalSection() {
- - - - -
); @@ -120,27 +121,26 @@ export async function BusinessTeaser() { ); return (
- - - - - - - - + {/* Kompakte Tafel statt eines dritten grossen Bild/Text-Blocks: ein + Angebot fuer eine kleinere Zielgruppe, entsprechend zurueckhaltend. */} + +
+ +

{content["home.businessTeaser.paragraph"]}

+ + {t.home.businessTeaser.cta} + +
+ -

{content["home.businessTeaser.paragraph"]}

- - {t.home.businessTeaser.cta} -