Porträt von Amin einbauen, Fotoraster mit ganzem Team

- Amin bekommt ein Studio-Porträt im gleichen Stil wie das restliche Team
  (Team-Liste, Preis-Thumbnails) statt des Wandlogos
- Footer-Fotoraster zeigt jetzt alle sechs Personen

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KBHsCnWNXAB2Le3gAEsivF
This commit is contained in:
Claude committed 2026-09-29 13:21:48 +00:00
1 parent 3413040e8c
commit 54b5de6f5b
5 files changed
+5 -9

No files matched your search

+1 -2
View File
@@ -37,8 +37,7 @@ 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.
Preis-Thumbnails). Neue Porträts im selben Format 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
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

+3 -6
View File
@@ -1,5 +1,5 @@
import { motion } from 'motion/react'
import { image, salon, team } from '../data/salon'
import { salon, team } from '../data/salon'
import { compactHours } from '../lib/hours'
import { EASE_OUT_EXPO } from '../lib/motion'
import { useOpenStatus } from '../lib/useOpenStatus'
@@ -9,11 +9,8 @@ import { ArrowUpRight } from './Icons'
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.thumb, alt: m.name })),
{ src: image('photos/emblem-quadrat'), alt: 'Logo an der Salonwand' },
]
// 3 × 2 Fotoraster zwischen den Wörtern: das ganze Team
const tiles = team.map((m) => ({ src: m.thumb, alt: m.name }))
function PhotoGrid() {
return (
+1 -1
View File
@@ -153,7 +153,7 @@ const images = import.meta.glob<string>(['../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'), thumb: image('photos/emblem-quadrat') },
{ key: 'amin', name: 'Amin B. Ahmadi', short: 'Amin', role: 'Inhaber · Barber', photo: image('team/amin'), thumb: image('team/amin-thumb') },
{ 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') },