Credits: Photos from Unsplash (photographers are credited in the README), icons from Lucide
Description
Pointer is a one-page website template for consulting firms and agencies, built on Bootstrap 5 with a pink-and-white design. The layout is responsive and works in all popular web browsers. It comes with two pages: the one-page home page and a blog post page.
The home page has a full-screen hero, an about banner, a team grid, two photo sliders, an approach block, six service cards, a testimonial slider, blog cards, a contact form and a newsletter signup. The post page adds a comment thread, a comment form and a sidebar with search and categories.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4 and jQuery), compiled from Sass with the original proportions, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel, and small built-in modules replace the jQuery sticky header, AOS and the off-canvas menu. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: both pages together went from 4.69 MB and 74 requests to 2.32 MB and 38 requests (home page 2.88 MB to 1.56 MB). Every photo has an AVIF version with the JPEG as the fallback and real dimensions, and unused plugins such as jQuery, jQuery UI, Owl Carousel, Stellar and MediaElement are gone.
No third-party requests: Roboto is self-hosted, the icon fonts are replaced by Lucide SVG icons and a small social-logo subset (the Twitter bird is now the X logo), and a Google Analytics 4 snippet stays commented out until you add your own ID. Before, every page loaded Google Fonts.
Working forms: the contact, newsletter and comment forms send through php/send-email.php, with validation, a spam trap, visible labels and an in-page message, and the sidebar search and category links filter the blog cards on the home page. Before, none of the forms had a target or named fields.
Accessibility: a skip link and a main landmark on every page, one h1 per page, a menu button that opens a dialog menu and closes with Esc, labels on every form field, visible focus rings, reduced-motion support and WCAG AA text contrast, with a deeper pink, darker greys and a scrim behind the hero text.
Fixed: the contact section now has its own heading, the team members have distinct names, the three blog cards are three different posts, every menu and footer link goes to a real section, and all photos are new.