diff --git a/README.md b/README.md index e695a4e..0781b83 100644 --- a/README.md +++ b/README.md @@ -31,10 +31,15 @@ npm run preview # Build lokal ansehen | Favicon, App-Icon, Vorschaubild zum Teilen | `public/` | | Impressum & Datenschutz | `impressum.html`, `datenschutz.html` | -**Fotos:** Alle Bilder stammen aus den Team-Fotos der Setmore-Seite (Logo-Wand im Salon). Für den +**Fotos:** Hero, „Über uns“ und Menü nutzen die Fotos von der Logo-Wand im Salon (Setmore-Seite). Für den Hero lohnt sich ein eigenes, hochauflösendes Foto (mind. 2400 px breit), z. B. ein Barber bei der Arbeit. Einfach `salon-wand.webp` bzw. `salon-wand-800.webp` ersetzen. +**Team-Porträts:** Einheitliche Studio-Porträts (per Bild-KI aus den Originalfotos erstellt), je zweimal +abgelegt: `name.webp` (1000 px breit, Team-Liste) und `name-thumb.webp` (320 × 320, Fotoraster und +Preis-Thumbnails). Für Amin fehlt noch ein Foto – bis dahin zeigt die Seite bei ihm das Wandlogo. Neues +Porträt als `amin.webp` / `amin-thumb.webp` ablegen und in `src/data/salon.ts` eintragen. + **Direktbuchung:** Jede Leistung trägt ihre Setmore-ID (`id`). Wird bei Setmore eine Leistung neu angelegt, bekommt sie eine neue ID. Sie steht im Buchungslink der Leistung auf der Setmore-Seite hinter `products=`. diff --git a/src/assets/team/ahmad-thumb.webp b/src/assets/team/ahmad-thumb.webp new file mode 100644 index 0000000..5d768ad Binary files /dev/null and b/src/assets/team/ahmad-thumb.webp differ diff --git a/src/assets/team/ahmad.webp b/src/assets/team/ahmad.webp index 476bc93..cc6969e 100644 Binary files a/src/assets/team/ahmad.webp and b/src/assets/team/ahmad.webp differ diff --git a/src/assets/team/ali-thumb.webp b/src/assets/team/ali-thumb.webp new file mode 100644 index 0000000..5c8218e Binary files /dev/null and b/src/assets/team/ali-thumb.webp differ diff --git a/src/assets/team/ali.webp b/src/assets/team/ali.webp index 9d4fd3c..f03759a 100644 Binary files a/src/assets/team/ali.webp and b/src/assets/team/ali.webp differ diff --git a/src/assets/team/atena-thumb.webp b/src/assets/team/atena-thumb.webp new file mode 100644 index 0000000..ef0cab9 Binary files /dev/null and b/src/assets/team/atena-thumb.webp differ diff --git a/src/assets/team/atena.webp b/src/assets/team/atena.webp index f1ddeae..8269cfd 100644 Binary files a/src/assets/team/atena.webp and b/src/assets/team/atena.webp differ diff --git a/src/assets/team/mo-thumb.webp b/src/assets/team/mo-thumb.webp new file mode 100644 index 0000000..e5386dc Binary files /dev/null and b/src/assets/team/mo-thumb.webp differ diff --git a/src/assets/team/mo.webp b/src/assets/team/mo.webp index 41c438c..fa311fe 100644 Binary files a/src/assets/team/mo.webp and b/src/assets/team/mo.webp differ diff --git a/src/assets/team/younes-thumb.webp b/src/assets/team/younes-thumb.webp new file mode 100644 index 0000000..181dee1 Binary files /dev/null and b/src/assets/team/younes-thumb.webp differ diff --git a/src/assets/team/younes.webp b/src/assets/team/younes.webp index c178f74..fc4c829 100644 Binary files a/src/assets/team/younes.webp and b/src/assets/team/younes.webp differ diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx index 698432a..b97242e 100644 --- a/src/components/Footer.tsx +++ b/src/components/Footer.tsx @@ -11,7 +11,7 @@ const YEAR = new Date().getFullYear() // 3 × 2 Fotoraster zwischen den Wörtern: fünf Porträts und das Logo an der Wand const tiles = [ - ...team.filter((m) => m.key !== 'amin').map((m) => ({ src: m.photo, alt: m.name })), + ...team.filter((m) => m.key !== 'amin').map((m) => ({ src: m.thumb, alt: m.name })), { src: image('photos/emblem-quadrat'), alt: 'Logo an der Salonwand' }, ] diff --git a/src/components/Prices.tsx b/src/components/Prices.tsx index e9b8c0c..981fa05 100644 --- a/src/components/Prices.tsx +++ b/src/components/Prices.tsx @@ -15,7 +15,7 @@ function Faces({ keys, className }: { keys: string[]; className?: string }) { return ( {m.name} -
+
{team.map((m, i) => ( (['../assets/team/*.webp', '../assets/photos/*.webp'], { eager: true, @@ -144,12 +153,12 @@ const images = import.meta.glob(['../assets/team/*.webp', '../assets/pho export const image = (path: string) => images[`../assets/${path}.webp`] export const team: Member[] = [ - { key: 'amin', name: 'Amin B. Ahmadi', short: 'Amin', role: 'Inhaber · Barber', photo: image('photos/emblem-breit-900') }, - { key: 'atena', name: 'Atena', short: 'Atena', role: 'Damen · Farbe · Beauty', photo: image('team/atena') }, - { key: 'ahmad', name: 'Ahmad', short: 'Ahmad', role: 'Barber', photo: image('team/ahmad') }, - { key: 'ali', name: 'Ali', short: 'Ali', role: 'Barber', photo: image('team/ali') }, - { key: 'younes', name: 'Younes', short: 'Younes', role: 'Barber', photo: image('team/younes') }, - { key: 'mo', name: 'Mo Bargus', short: 'Mo', role: 'Barber', photo: image('team/mo') }, + { key: 'amin', name: 'Amin B. Ahmadi', short: 'Amin', role: 'Inhaber · Barber', photo: image('photos/emblem-breit-900'), thumb: image('photos/emblem-quadrat') }, + { key: 'atena', name: 'Atena', short: 'Atena', role: 'Damen · Farbe · Beauty', photo: image('team/atena'), thumb: image('team/atena-thumb') }, + { key: 'ahmad', name: 'Ahmad', short: 'Ahmad', role: 'Barber', photo: image('team/ahmad'), thumb: image('team/ahmad-thumb') }, + { key: 'ali', name: 'Ali', short: 'Ali', role: 'Barber', photo: image('team/ali'), thumb: image('team/ali-thumb') }, + { key: 'younes', name: 'Younes', short: 'Younes', role: 'Barber', photo: image('team/younes'), thumb: image('team/younes-thumb') }, + { key: 'mo', name: 'Mo Bargus', short: 'Mo', role: 'Barber', photo: image('team/mo'), thumb: image('team/mo-thumb') }, ] export const member = (key: string) => team.find((m) => m.key === key)!