Josanclick is a website template for photographers and photography studios, built on Bootstrap 5, with a clean, minimal design that puts the photos first. The layout is responsive and mobile-ready and works in all popular web browsers. It comes with eight pages: home, portfolio, services, about, blog, blog details, contact and elements.
The home page has a full-screen hero slider, an about section with a signature, a full-width photo grid whose captions slide in from the side the pointer enters, service cards for event, wedding and family photography, a testimonial slider, pricing tables and a photo strip above the footer. The inner pages add a portfolio grid, a blog with a sidebar, a single post with comments and a contact page with a click-to-load map and a working contact form.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used a Bootstrap 5.0 pre-release and jQuery), compiled from Sass together with the theme, and plain JavaScript with no jQuery. Swiper 14 replaces Slick and Owl Carousel on the hero, testimonial and photo-strip sliders, PhotoSwipe replaces Magnific Popup on the elements gallery, a keyboard-operable dialog replaces the old mobile menu, and the sliding photo captions are rewritten without a plugin. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: all nine pages together went from 13.8 MB and 464 requests to 5.9 MB and 213 requests; the home page from 2.5 MB to 1.2 MB. Every photo has an AVIF version with the JPEG as the fallback, real dimensions and lazy loading below the fold, and unused plugins such as WOW, CounterUp, Waypoints and animate.css are gone.
No third-party requests: Jost and Poiret One are self-hosted, the Font Awesome and Themify icon fonts are replaced by Lucide SVG icons and a 1.6 KB social-logo subset (the Twitter bird is now the X logo), the contact map loads from OpenStreetMap only after a click, and a Google Analytics 4 snippet stays commented out until you add your own ID. Before, every page loaded fonts from Google Fonts, an analytics script and, on the contact page, the Google Maps API.
Working forms: the contact form sends through includes/send-email.php, with validation, a spam trap and an in-page message (before, it posted to a script that was not included), and the newsletter, comment and search forms check their fields and confirm on the page.
Accessibility: a skip link and a main landmark on every page, one h1 per page, names on icon-only links, a submenu that opens from the keyboard, visible focus rings, descriptive alt text, reduced-motion support and WCAG AA text contrast.
New photos and copy: the blog, service and elements photos are new Unsplash photos cut at twice their display size (the blog photos were stretched to fit the column), and the demo copy is written for a photography studio with fictional names and contact details.