feat: photography features & image optimizations
- Hero carousel: gallery.yaml hero accepts single UUID or array, crossfade component - Full-bleed single albums: subpages with 1 album skip grid, render photos directly - EXIF on hover: camera/lens/focal length overlay on grid items (toggle via exifOnHover) - Customizable grid: columns/gap/aspectRatio/layout (masonry|uniform) via gallery.yaml - Per-subpage grid overrides: each subpage can override global grid config - True masonry: per-image aspect ratios from EXIF dimensions - next/image migration: homepage hero, album covers, grid thumbnails, about portrait - ThumbHash blur placeholders and dominant color backgrounds - Custom next/image loader via image proxy with width/quality params - Lightbox fade-in transition with dominant color background - Password-protected subpages, health check, rate limiting, OG images
This commit is contained in:
25
content/gallery.yaml
Normal file
25
content/gallery.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
# ── Gallery Configuration ──────────────────────────────────────
|
||||
# Album and subpage definitions for your public gallery.
|
||||
# Secrets (API key, server URL) stay in .env.local.
|
||||
|
||||
hero: 03c0df0e-01d7-4cc7-8352-cf30d2289ad6
|
||||
|
||||
# Standalone albums shown directly on the homepage
|
||||
albums:
|
||||
- a89c6085-a105-46c2-baa4-338bc69cab93
|
||||
- 9aee9367-a239-4651-980d-3368bc70b7b6
|
||||
|
||||
# Subpages group multiple albums under one URL path
|
||||
subpages:
|
||||
- name: Deutschland
|
||||
albums:
|
||||
- 9aee9367-a239-4651-980d-3368bc70b7b6
|
||||
|
||||
- name: Dubai
|
||||
albums:
|
||||
- a89c6085-a105-46c2-baa4-338bc69cab93
|
||||
|
||||
- name: Polen
|
||||
password: clientpass123
|
||||
albums:
|
||||
- 4ad0ed89-55de-4e69-937f-2d9988f63ad1
|
||||
44
content/gallery.yaml.example
Normal file
44
content/gallery.yaml.example
Normal file
@@ -0,0 +1,44 @@
|
||||
# ── Gallery Configuration ──────────────────────────────────────
|
||||
# Define which Immich albums to publish and how to organize them.
|
||||
#
|
||||
# Find album UUIDs in Immich: Albums → click album → UUID in the URL bar.
|
||||
# Find asset UUIDs: click a photo → UUID in the URL bar.
|
||||
|
||||
# Hero image(s) shown on the homepage (Immich asset UUIDs).
|
||||
# Use a single UUID for a static image, or a list for a crossfade carousel.
|
||||
hero: 00000000-0000-0000-0000-000000000000
|
||||
# hero:
|
||||
# - 00000000-0000-0000-0000-000000000000
|
||||
# - 11111111-1111-1111-1111-111111111111
|
||||
# - 22222222-2222-2222-2222-222222222222
|
||||
|
||||
# Standalone albums — shown directly on the homepage as cards
|
||||
albums:
|
||||
- 11111111-1111-1111-1111-111111111111
|
||||
- 22222222-2222-2222-2222-222222222222
|
||||
|
||||
# Show camera/lens EXIF on photo hover (default: true)
|
||||
# exifOnHover: false
|
||||
|
||||
# Photo grid layout — customize columns, gap, aspect ratio, and mode.
|
||||
# grid:
|
||||
# columns: 3 # default: 3
|
||||
# gap: 12 # pixels, default: 12
|
||||
# aspectRatio: "1" # "1", "3/2", "auto", etc. default: "1"
|
||||
# layout: masonry # "masonry" or "uniform", default: "masonry"
|
||||
|
||||
# Subpages — group albums into collections at /subpage-slug/album-slug
|
||||
subpages:
|
||||
- name: Japan
|
||||
grid: # override global grid for this subpage
|
||||
columns: 4
|
||||
layout: uniform
|
||||
aspectRatio: "3/2"
|
||||
albums:
|
||||
- 33333333-3333-3333-3333-333333333333 # Tokyo
|
||||
- 44444444-4444-4444-4444-444444444444 # Kyoto
|
||||
|
||||
- name: Wedding – Smith
|
||||
password: clientpass123 # visitors must enter this to view
|
||||
albums:
|
||||
- 55555555-5555-5555-5555-555555555555
|
||||
Reference in New Issue
Block a user