How gank8818-bit/photography-portfolio works
Kiros Gan is a static photography portfolio. Visitors browse and filter the curated gallery, open and navigate image details in a lightbox, and can contact the photographer through a validated email-composing form. The page also provides theme selection with remembered preferences, responsive navigation, and motion effects. The map is based on the README and partial script excerpts; some markup and implementation details were not sampled.
Main entry points: script.js Page interactions · index.html Portfolio page · thumbs Thumbnails · data.js Photo metadata
Components 15
Portfolio experience
- Portfolio page
index.html - Themes and layout
styles.css - Page interactions
script.js - Hero and motion
script.js - Mobile navigation
script.js - Contact form
script.js
Photography collection
- Photo metadata
assets/data.js - Photo manifest
photos.json - Filtered gallery
script.js - Photo lightbox
script.js - Thumbnails
assets/thumbs - Full-size photos
assets/photos
Browser capabilities
- Theme preferences
- Email application
Other components
- Visitor
Connections 18
- Visitor → Portfolio page: opens
- Portfolio page → Page interactions: loads
- Portfolio page → Themes and layout: uses styles
- Photo metadata → Page interactions: provides photo data
- Photo manifest → Visitor: documents selection
- Visitor → Filtered gallery: filters and browses
- Page interactions → Filtered gallery: renders and filters
- Filtered gallery → Thumbnails: loads thumbnails
- Filtered gallery → Photo lightbox: opens photo
- Photo lightbox → Thumbnails: loads preview
- Photo lightbox → Full-size photos: loads full image
- Visitor → Photo lightbox: navigates photos
- Page interactions → Hero and motion: animates and reveals
- Page interactions → Mobile navigation: toggles menu
- Visitor → Contact form: submits inquiry
- Contact form → Email application: composes email
- Visitor → Page interactions: chooses theme
- Page interactions → Theme preferences: reads and saves