Whisper is a website template for law firms, attorneys and legal practices, built on Bootstrap 5, with a dark and gold design. The layout is responsive and mobile-ready and works in all popular web browsers. It comes with eight pages: home, about, practice areas, a single practice area, attorneys, blog, a blog post and contact.
The home page has a full-screen hero, service highlights, firm facts with animated counters and a video, a practice-areas grid, attorney flip cards, a consultation form, a client testimonial slider, recent posts and a photo strip with a lightbox. The inner pages add a practice-area page with a sidebar, the attorney team, a blog with search, a post with author box and comments, and a contact page with a working form and a map that loads on click. The page headers scroll with a parallax effect and the menu turns into a sticky bar.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.2.1 and jQuery), compiled from Sass together with the theme and the original Bootstrap 4 proportions, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel on the testimonial slider, PhotoSwipe replaces Magnific Popup on the photo strip, Jarallax replaces Stellar and Scrollax on the headers, and small built-in modules replace Waypoints, animateNumber and the video popup. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: all eight pages together went from 19.3 MB and 364 requests to 6.3 MB and 162 requests. Every photo has an AVIF version with the JPEG as the fallback, real dimensions and lazy loading below the hero, each page preloads its hero photo, and the preloader that hid the page until everything had loaded is gone.
No third-party requests: Poppins and Lora are self-hosted, the Ionicons, Open Iconic, IcoMoon and Flaticon icon fonts are replaced by Lucide SVG icons and a 1 KB social-logo subset (the Twitter bird is now the X logo), the Google Maps script that loaded on every page is replaced by an OpenStreetMap embed on the contact page that loads only after a click, and the video loads only when it is played. Before, every page loaded web fonts from Google Fonts and the Google Maps API.
Working forms: the consultation, contact, comment and newsletter forms send through php/send-email.php and php/subscribe.php, with visible labels, validation, a spam trap and an in-page message, and the blog search filters the posts. Before, none of the fifteen forms had an action or named fields, so nothing could be sent.
Accessibility: a skip link and a main landmark on every page, one h1 per page and a correct heading order, a real menu button, names on icon-only and image links, visible focus rings, reduced-motion support and WCAG AA text contrast, with a deeper gold for buttons, links and date badges on white, darker body and meta greys, and darker overlays behind the attorney names and the hero text.
Demo content: fictional attorneys with one name per photo, clients, blog posts and commenters, a fictional address, phone and email, typos fixed, every footer and sidebar link pointing at a real page, and sharper photos for the two page headers and the about section.