To create a strong impact, Shutter is a photography portfolio website template that puts your work first. It is a striking canvas that will showcase your photo masterpieces and attract a whole new clientele. Visitors are drawn in by its dark layout and by content that appears as they scroll. Whether you are a pro or a hobby photographer, Shutter is here to make a difference for you.
Shutter is built on Bootstrap 5 and adapts to every screen. It has six pages (home, photos, gallery, bio, blog and contact), with a gallery lightbox, a slide-in mobile menu and a working contact form. Shutter does it all with a creative and minimalist approach. Get things done the right way and create an online photography portfolio website with Shutter.
What’s new in 3.0
The Sass source ships (the 2.0 download had only Bootstrap’s test files), and npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script. Bootstrap’s JavaScript no longer loads, since nothing needs it.
PhotoSwipe 5 replaces GLightbox on the gallery (zoom, arrows, keyboard, swipe, a counter and captions), a small scroll-reveal module replaces AOS, and the mobile menu is an accessible panel that keeps focus inside and closes with Esc.
Lighter pages: the six pages together went from 8.85 MB and 94 requests to about 3.6 MB and 59 requests. Photos are AVIF with the JPG as the fallback, with real dimensions and lazy loading below the fold.
No third-party requests: an unused Google Fonts link is removed, the 4.6 MB icomoon font is replaced by SVG icons and a 1.5 KB social-logo subset, and the Google Analytics placeholder, which loaded Google’s script on every page, is now a commented-out snippet.
A working contact form through includes/send-email.php, with validation, a spam trap and in-page messages. Before, the form had no handler.
Accessibility: a skip link, one h1 per page, names on icon-only links and the menu button, descriptive photo alt text, a visible focus ring and WCAG AA text contrast.
Fixed: on phones the blog list ran past the screen edge and cut off its titles, the blog entries touched on desktop, the contact form rows touched, and two demo photos that showed car badges are replaced.