6 Commits

Author SHA1 Message Date
jhodgkin 9dcc73ecfe Design pass: fix dead site config, add hero image support, polish cards
Deploy to Dev / Deploy & Smoke Test (push) Successful in 21s
- Fix applyConfig self-recursion (const _origApply captured the hoisted
  wrapper itself): site.json config — theme, portfolio, socials, bio —
  was never applied; site silently fell back to hardcoded brown defaults
- Strengthen theme test to assert the configured primary color exactly
- Portfolio covers: styled placeholder on missing image (like locations),
  restore img when Immich carousel kicks in; overlay always visible on touch
- Optional hero photo via site.heroImage with soft scrim (activates only
  when the image loads); site.json points at /images/hero.jpg
- Option cards: equal height, centered content
- /#book deep link also works via hashchange

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 00:39:36 -06:00
jhodgkin 5a333b5bf1 Switch theme to dusty rose/blush pink palette
Deploy to Dev / Deploy & Smoke Test (push) Successful in 24s
primaryColor: #B06A7A (dusty rose)
accentColor:  #E8C4CC (soft blush)
backgroundColor: #FEF9FA (warm white with pink undertone)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-08 21:12:31 -06:00
jhodgkin 497ee38696 Add config-driven location picker with photo guide (issue #5)
Deploy to Dev / Deploy & Smoke Test (push) Successful in 17s
- site.json: add locations array (River Bottoms, City Park, Downtown, Studio)
  with heroImage, galleryImages, tags, and description per location
- public/images/locations/: directory skeleton with .gitkeep; photographer
  drops hero.jpg + numbered gallery images here without any rebuild
- Step 4: location-grid renders cards from config, each with hero image,
  location name, and tag pills; missing images fall back to a styled placeholder
- Clicking a card selects it (shows checkmark overlay) and opens an inline
  detail panel below the grid showing gallery images + full description + tags;
  clicking the same card again collapses the detail panel
- populateSummary and submitBooking now resolve the location name from config
  rather than storing the raw ID

Closes #5

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-07 23:05:33 -06:00
jhodgkin 07224ba1e7 Implement config-driven session type and length steps (issue #4)
Deploy to Dev / Deploy & Smoke Test (push) Successful in 18s
- site.json: add booking section with sessionTypes, pricing, venmoUsername
- Step 2: session type cards rendered from siteConfig.booking.sessionTypes;
  "Other" option reveals a free-text field; validated before advancing
- Step 3: two large length cards with duration badge + price from config;
  falls back to $75/$150 defaults if config missing
- selectOption shows/hides "Other" field; stores sessionTypeOther in state
- populateSummary uses config labels and shows price in length summary row
- submitBooking sends "other: <description>" for custom session types

Closes #4

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-07 23:00:39 -06:00
root 4bfe9c18b8 Update portfolio albums and category names
- Updated Immich base URL to immich.jerodrigged.com
- Senior Portraits: use all-seniors album
- Changed Engagements to Couples, use all-couples album
- Changed Families to Family or Friends, use families-or-friends album

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-20 04:25:22 +00:00
jhodgkin 4420dd51ac Initial commit: LisiLou Photography Portfolio
Features:
- Immich integration with automatic album image carousel
- Dynamic configuration via JSON files
- Nginx proxy for Immich API access
- Docker deployment ready
- Gitea Actions CI/CD workflow

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 10:35:55 -07:00