From 5cfcea9cafa0d770a2114739f19446932cf6360b Mon Sep 17 00:00:00 2001 From: Matthias Date: Mon, 25 May 2026 11:59:10 +0200 Subject: [PATCH] refactor: update sections for improved layout and styling - Revamp Contact, FinalCta, Hero, Hours, SalonPromise, Services, SiteHeader, Trust components to use a new v2 design system. - Enhance responsiveness and accessibility across sections. - Introduce new styles for better visual hierarchy and user experience. - Integrate review data into Trust section and update site content structure. --- src/components/sections/Contact.astro | 147 +- src/components/sections/EditorialImage.astro | 50 + src/components/sections/FinalCta.astro | 50 +- src/components/sections/Hero.astro | 205 ++- src/components/sections/Hours.astro | 48 +- src/components/sections/Reviews.astro | 177 +++ src/components/sections/SalonPromise.astro | 85 +- src/components/sections/Services.astro | 71 +- src/components/sections/SiteHeader.astro | 279 +++- src/components/sections/Team.astro | 138 ++ src/components/sections/Trust.astro | 56 +- src/content/site-content.ts | 34 + src/pages/index.astro | 1479 +----------------- src/scripts/mobile-nav.ts | 36 + src/scripts/scroll-reveal.ts | 41 + src/styles/global.css | 32 + src/styles/home.css | 323 ++++ 17 files changed, 1716 insertions(+), 1535 deletions(-) create mode 100644 src/components/sections/EditorialImage.astro create mode 100644 src/components/sections/Reviews.astro create mode 100644 src/components/sections/Team.astro create mode 100644 src/scripts/mobile-nav.ts create mode 100644 src/scripts/scroll-reveal.ts create mode 100644 src/styles/home.css diff --git a/src/components/sections/Contact.astro b/src/components/sections/Contact.astro index c62b390..55a6dc3 100644 --- a/src/components/sections/Contact.astro +++ b/src/components/sections/Contact.astro @@ -2,32 +2,147 @@ import { siteContent } from "@/content/site-content" --- -
-
-

Kontakt & Anfahrt

+
+
+

Kontakt & Anfahrt

Mitten in Crimmitschau.

-

Der schnellste Weg zum Termin bleibt ein kurzer Anruf im Salon.

+

Der schnellste Weg zum Termin: ein kurzer Anruf.

-
-
- {siteContent.business.name} - {siteContent.business.address.street} - {siteContent.business.address.postalCode} {siteContent.business.address.city} -
+
+
+
+ {siteContent.business.name} + {siteContent.business.address.street} + {siteContent.business.address.postalCode} {siteContent.business.address.city} +
- + +
+ + diff --git a/src/components/sections/EditorialImage.astro b/src/components/sections/EditorialImage.astro new file mode 100644 index 0000000..027b820 --- /dev/null +++ b/src/components/sections/EditorialImage.astro @@ -0,0 +1,50 @@ +--- +--- + +
+ Warm beleuchteter Salon-Innenraum mit Friseurstühlen und Spiegeln +
Atmosphäre im Salon
+
+ + diff --git a/src/components/sections/FinalCta.astro b/src/components/sections/FinalCta.astro index 0ae5f4f..db9afc2 100644 --- a/src/components/sections/FinalCta.astro +++ b/src/components/sections/FinalCta.astro @@ -2,12 +2,54 @@ import { siteContent } from "@/content/site-content" --- -
-

Bereit für den nächsten Schnitt?

+
+

Bereit für den nächsten Schnitt?

Kurz anrufen, Termin abstimmen, vorbeikommen.

-
+ + diff --git a/src/components/sections/Hero.astro b/src/components/sections/Hero.astro index 4ad2541..223eda5 100644 --- a/src/components/sections/Hero.astro +++ b/src/components/sections/Hero.astro @@ -2,41 +2,190 @@ import { siteContent } from "@/content/site-content" --- -
-
-

{siteContent.hero.eyebrow}

+
+ +
+

{siteContent.hero.eyebrow}

{siteContent.hero.title}

-

{siteContent.hero.intro}

+

{siteContent.hero.intro}

-
- + - -
-
-
Adresse
-
{siteContent.business.address.display}
-
-
-
Telefon
-
{siteContent.business.phone.display}
-
-
-
{siteContent.hours[0].day}
-
{siteContent.hours[0].time}
-
-
-
- {siteContent.hero.image.alt} -
- {siteContent.hero.image.credit} -
-
+
+
+
Adresse
+
{siteContent.business.address.display}
+
+
+
Telefon
+
{siteContent.business.phone.display}
+
+
+
{siteContent.hours[0].day}
+
{siteContent.hours[0].time}
+
+
+ + diff --git a/src/components/sections/Hours.astro b/src/components/sections/Hours.astro index ecf290c..c27a6da 100644 --- a/src/components/sections/Hours.astro +++ b/src/components/sections/Hours.astro @@ -2,17 +2,17 @@ import { siteContent } from "@/content/site-content" --- -
-
-

Öffnungszeiten

+
+
+

Öffnungszeiten

Planbar von Montag bis Samstag.

Für Termine bitte kurz anrufen. So lässt sich direkt klären, wann genug Zeit für Beratung, Schnitt oder Farbe frei ist.

-
+
{ siteContent.hours.map((entry) => ( -
+
{entry.day}
@@ -20,3 +20,41 @@ import { siteContent } from "@/content/site-content" }
+ + diff --git a/src/components/sections/Reviews.astro b/src/components/sections/Reviews.astro new file mode 100644 index 0000000..9172b88 --- /dev/null +++ b/src/components/sections/Reviews.astro @@ -0,0 +1,177 @@ +--- +import { siteContent } from "@/content/site-content" + +function renderStars(rating: number) { + return Array.from({ length: 5 }, (_, i) => + i < rating + ? '' + : '' + ).join("") +} +--- + +
+
+

Kundenstimmen

+

Das sagen unsere Gäste.

+

Echte Bewertungen von Google – ungefiltert und ehrlich.

+
+ +
+ { + siteContent.reviews.map((review) => ( +
+
+
+ {review.author.split(" ").map(n => n[0]).join("").substring(0, 2)} +
+
+

{review.author}

+

{review.date}

+
+
+
+
+ + {review.text} +
+
+ )) + } +
+ + +
+ + diff --git a/src/components/sections/SalonPromise.astro b/src/components/sections/SalonPromise.astro index 3d818bb..de0ead5 100644 --- a/src/components/sections/SalonPromise.astro +++ b/src/components/sections/SalonPromise.astro @@ -2,17 +2,17 @@ import { siteContent } from "@/content/site-content" --- -
-
-

Salonversprechen

+
+
+

Salonversprechen

Haare dürfen leicht aussehen, auch wenn dahinter Präzision steckt.

-
+
{ siteContent.promise.map((item, index) => ( -
- {String(index + 1).padStart(2, "0")} +
+ {String(index + 1).padStart(2, "0")}

{item.title}

{item.text}

@@ -20,3 +20,76 @@ import { siteContent } from "@/content/site-content" }
+ + diff --git a/src/components/sections/Services.astro b/src/components/sections/Services.astro index 7daf7d2..9d8a5e6 100644 --- a/src/components/sections/Services.astro +++ b/src/components/sections/Services.astro @@ -2,18 +2,18 @@ import { siteContent } from "@/content/site-content" --- -
-
-

Leistungen

+
+
+

Leistungen

Alles, was ein guter Salonbesuch braucht.

-

Die Auswahl bleibt bewusst klar. Details, Wünsche und Termine werden am besten direkt telefonisch besprochen.

+

Fokus auf das Wesentliche: Ihr Look, Ihr Typ, Ihr Termin. Details und Wünsche besprechen wir am besten kurz am Telefon.

-
+
{ siteContent.services.map((service, index) => ( -
- {String(index + 1).padStart(2, "0")} +
+ {String(index + 1).padStart(2, "0")}

{service.title}

{service.text}

@@ -21,3 +21,60 @@ import { siteContent } from "@/content/site-content" }
+ + diff --git a/src/components/sections/SiteHeader.astro b/src/components/sections/SiteHeader.astro index 6a367a4..d431329 100644 --- a/src/components/sections/SiteHeader.astro +++ b/src/components/sections/SiteHeader.astro @@ -3,12 +3,14 @@ import { siteContent } from "@/content/site-content" const navItems = [ { label: "Leistungen", href: "#leistungen" }, + { label: "Team", href: "#team" }, + { label: "Bewertungen", href: "#bewertungen" }, { label: "Zeiten", href: "#zeiten" }, { label: "Kontakt", href: "#kontakt" }, ] --- -