feat: visual polish & UX — fade-in, theme toggle, scroll-to-top, footer, cursor, badge
- Add FadeIn component (IntersectionObserver scroll-reveal + load animation) - Add dark/light theme toggle (useSyncExternalStore + localStorage) - Add scroll-to-top button (appears after 300px scroll) - Add configurable footer with social links (gallery.yaml) - Add crosshair cursor on photo grid items - Add 'X photos' count badge on subpage cover images - Add light theme color palette in tokens.css
This commit is contained in:
@@ -20,6 +20,7 @@ Build a public-facing web gallery that connects to a private Immich server via i
|
||||
The Lightbox Server sits between visitors and Immich. It proxies images, caches API responses, and holds the album selection config. The Immich server stays private and serves album data and original images only to the Lightbox Server.
|
||||
|
||||
**Stack:**
|
||||
|
||||
- **Next.js 15** (App Router) — SSR for fast first paint, API routes for proxying
|
||||
- **TypeScript** — End-to-end type safety
|
||||
- **CSS Modules + CSS custom properties** — Clean, maintainable dark-theme styling
|
||||
|
||||
Reference in New Issue
Block a user