Location picker step with photo guide #5

Closed
opened 2026-07-07 21:38:17 -06:00 by jhodgkin · 0 comments
Owner

Goal

Step 4 — clients pick a shoot location from a visual gallery of cards showing location photos and details.

Tasks

  • Location cards display: hero photo, location name, short description, tags (e.g. "Golden hour", "Outdoor", "Urban")
  • Locations driven from config/site.json so photographer can add/edit without code changes
  • Clicking a card expands a small detail view with 2-3 additional photos and a longer description
  • Single-select — selected card gets a checkmark overlay
  • Location photos served from public/images/locations/ (volume-mounted, no rebuild needed to add photos)

Config addition to site.json

"locations": [
  {
    "id": "riverside-park",
    "name": "Riverside Park",
    "description": "Beautiful riverside setting with golden light in the evening.",
    "tags": ["Outdoor", "Golden hour", "Nature"],
    "heroImage": "/images/locations/riverside-park/hero.jpg",
    "galleryImages": [
      "/images/locations/riverside-park/1.jpg",
      "/images/locations/riverside-park/2.jpg"
    ]
  }
]

Acceptance

  • Location cards load from config
  • Clicking a card shows detail photos
  • Selection is stored in booking state
## Goal Step 4 — clients pick a shoot location from a visual gallery of cards showing location photos and details. ## Tasks - Location cards display: hero photo, location name, short description, tags (e.g. "Golden hour", "Outdoor", "Urban") - Locations driven from `config/site.json` so photographer can add/edit without code changes - Clicking a card expands a small detail view with 2-3 additional photos and a longer description - Single-select — selected card gets a checkmark overlay - Location photos served from `public/images/locations/` (volume-mounted, no rebuild needed to add photos) ## Config addition to site.json ```json "locations": [ { "id": "riverside-park", "name": "Riverside Park", "description": "Beautiful riverside setting with golden light in the evening.", "tags": ["Outdoor", "Golden hour", "Nature"], "heroImage": "/images/locations/riverside-park/hero.jpg", "galleryImages": [ "/images/locations/riverside-park/1.jpg", "/images/locations/riverside-park/2.jpg" ] } ] ``` ## Acceptance - Location cards load from config - Clicking a card shows detail photos - Selection is stored in booking state
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jhodgkin/lisilou-portfolio#5