SUNZINE is a website template for a photographer or a photo studio, built on Bootstrap 5 with a clean white layout and a green accent. The layout is responsive and works in all popular web browsers. It comes with seven pages: home, albums, album details, about, blog, blog post and contact.
The home page opens with a filterable photo gallery that opens each photo in a lightbox. The album page shows a full-screen slider with a thumbnail strip, the about page adds services, the team and the studio location with a map, and the blog has a masonry grid, a post page with comments and a sidebar. The contact page has a map, contact details and a contact form.
What’s new in 3.0
Bootstrap 5.3.8 compiled from Sass together with the theme, and plain JavaScript with no jQuery. Swiper 14 runs the album slider and its thumbnails, PhotoSwipe the gallery lightbox, and small built-in modules the gallery filter, mobile menu, maps and forms. Icons are Lucide SVG. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: all eight pages went from 20.2 MB and 302 requests to 3.9 MB and 149 requests; the album page alone from 9.4 MB to 1.1 MB. Every photo has an AVIF version with the JPEG or PNG as the fallback, real dimensions and lazy loading below the fold.
No third-party requests: fonts are self-hosted, analytics are off (a ready GA4 block is included), and the maps load only when a visitor asks for them.
Accessibility: a skip link, one main heading per page, labelled forms, named icon buttons, keyboard access to the menu, search, gallery filter, lightbox and album thumbnails, visible focus and text contrast of at least 4.5:1.
Working forms: the contact and comment forms post to an included PHP handler with a spam trap and sending, error and success messages; the search box filters the blog posts.
New photos and demo content: sharper album and gallery photos, photography blog posts, a fictional team and contact details, and a caption for every photo.