Pexman is a website template for a creative or web design agency, built on Bootstrap 5. It pairs dark photo heroes and a black footer with white content sections and gold accents, and has a sticky menu and sections that fade in as you scroll. The layout is responsive and mobile-ready. There are six pages: home, about, portfolio, blog, single blog post and contact.
The home page has a full-screen hero slider with a 01/02/03 picker, an about section, animated counters, a four-step process, four services, a filterable portfolio, a client reviews slider and the latest blog posts. The about page adds a team of four, and the portfolio page lists 16 projects over two pages with filters by discipline and a lightbox. The blog has twelve posts with search, categories, tags and two pages, each post with its own article view, author box, comments and a comment form, and the contact page has a contact form and a map that loads on click. Use Pexman for an agency, a design studio or a freelancer.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.5.2 and jQuery), compiled from Sass with the design’s original proportions, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel on the hero slider and the client reviews, PhotoSwipe 5 replaces Magnific Popup on the portfolio lightbox, small built-in modules replace Waypoints, animate.css and the number counter, and unused plugins such as Stellar and Scrollax are gone. Lucide SVG icons replace Font Awesome 4, Ionicons and the Flaticon font, and the social logos come from a small Font Awesome Brands subset (the Twitter bird is now the X logo). npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: the six pages and the thank-you page together went from 14.91 MB and 248 requests to 6.14 MB and 141 requests. Every photo has an AVIF version with the JPEG as the fallback, the hero photos are 1920 px wide, and the full-screen preloader is gone. The download is 5.44 MB (it was 7.38 MB) and now includes the Sass sources and the build scripts.
No third-party requests: Montserrat and the icons are self-hosted, the map on the contact page is OpenStreetMap (no API key needed) and loads only when a visitor clicks “Show map”, and a Google Analytics 4 snippet stays commented out until you add your own ID. Before, the pages loaded files from nine outside hosts, including Google Fonts, two icon CDNs and the Google Maps script, which threw an error on every page.
Working demos: 16 distinct projects (every tile used to show the same project) with filters by discipline on the home and portfolio pages, a second portfolio page, and a lightbox that opens from the zoom button or the project title and steps only through the projects the filter shows. Twelve distinct blog posts each open their own article view, the blog has search, category and tag filters and two pages, and the hero’s 01/02/03 picker jumps to its slide.
Working forms: the contact form and the blog comment form send through php/send-email.php and php/comment.php, a safe mailer with validation, a spam trap and an in-page message. Before, they posted nowhere and the contact form had no labels.
Accessibility: a skip link and landmarks on every page, one h1 per page (the home page had none), a menu button that announces its state, filter buttons that announce the active one, labelled form fields, names on icon-only links, visible keyboard focus, 44 px slider dots and picker buttons, reduced-motion support and WCAG AA text contrast with the gold kept: a deeper gold for gold text on light backgrounds, dark labels on gold tags and page numbers, darker greys and brighter menu links.
Fixed: 205 links that went nowhere now open a real page, filter, slide or post, the gold buttons now change on hover, the footer address icon shows, the footer no longer overflows between 992 and 1024 px, and typos such as “What Are Clients Says” and “Years of Experienced” are corrected.