Drift: A Photography Portfolio Where the Work Moves First
Drift is a restrained portfolio for photographers and image-led creative practices. The homepage arranges the work into infinite gallery lanes that drift in opposite directions, so a visitor sees a living wall of images instead of a static grid. Visitors choose two, three, or four columns on wide screens, and the layout reduces gracefully on tablets and phones.
Every image opens an accessible full-screen preview with the project's discipline, location, and description, and links to a permanent project page. There, Markdown copy and any number of additional photographs form a quiet editorial sequence. A native About panel, an image-backed contact page, and an optional Markdown blog round out the site without competing with the photographs.
Who it's for
- Photographers with project-based portfolios
- Architecture and editorial image makers
- Creative studios that lead with visual work
- Artists who want an optional journal beside their portfolio
What's distinctive
- Counter-motion gallery: infinite lanes moving in opposite directions, with a selectable two, three, or four-column layout
- Full-screen project previews: an accessible dialog for every image, with a link to its permanent page
- Multi-image project pages: Markdown copy plus as many stacked photographs as the project needs
- Tuned light and dark modes: the visitor's choice is remembered and image labels keep their contrast in both
- Quiet motion: GSAP powers the gallery and subtle reveals, Lenis smooths document pages, and both respect reduced-motion settings
- Works without JavaScript: a semantic project index and useful static output remain for every visitor
What's included
- Full source: Astro 7, TypeScript, GSAP, and Lenis
- 14 static routes: Home, 8 project pages, Blog with 3 articles, Contact, and 404
- Identity, interface copy, motion, links, form providers, and visual settings in one file: src/config/site.ts
- Projects and blog articles as Markdown in Astro Content Collections
- An optional blog that can be switched off from the configuration
- A contact page with a safe demo mode plus Formspree, FormSubmit, Netlify Forms, or a custom endpoint
- Locale-aware configuration and mirrored route scaffolding for multilingual sites
- Keyboard access, focus handling, reduced-motion, and no-JavaScript fallbacks
- Local photography assets, with no remote image dependencies
- AGENTS.md, CLAUDE.md, and focused customization documentation so AI coding assistants can adapt the theme safely
- Lifetime updates for this theme
Also available as an HTML edition
The same design as plain HTML files, for sites that do not need a build step.






