Meditative is a website template for yoga studios, meditation centres and wellness teachers, built on Bootstrap 5, with a soft pink-and-navy design. The layout is responsive and works in all popular web browsers. It comes with eight pages: home, about, trainers, classes, schedule, blog, blog post and contact.
The home page has a full-screen hero slider, class cards, a benefits section, a weekly class timetable, a testimonial slider, animated statistics, journal posts and a photo gallery with a lightbox. The inner pages add teacher profiles, a class programme, a blog with sidebar and a contact page with a working contact form and a map that loads on request.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4 and jQuery), compiled from Sass with the original Bootstrap 4 proportions and colours, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel on the hero and testimonial sliders, PhotoSwipe replaces Magnific Popup in the gallery, Jarallax replaces Stellar for the parallax backgrounds, and small built-in modules replace AOS and the counters. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: all nine pages together went from 22.7 MB and 381 requests to 8.1 MB and 188 requests. Every photo has an AVIF version with the JPEG as the fallback and real dimensions, and unused plugins such as jQuery, Owl Carousel, Magnific Popup, AOS, Stellar, the date and time pickers and four icon fonts are gone.
No third-party requests: Open Sans and EB Garamond are 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), 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 Google Fonts and Google Maps.
Working forms: the contact form and the comment form send through php/send-email.php, with validation, a spam trap and an in-page message, and the blog search forms submit a normal GET request. Before, none of the four forms had a target or named fields.
Accessibility: a skip link and a main landmark on every page, one h1 per page, a real menu button that closes with Esc, names on icon-only links, labels on every form field, visible focus rings, reduced-motion support and WCAG AA text contrast, with a darker pink for text and filled buttons, darker greys for meta text and footer links, and navy icons on the pink circles.
Fixed: the eight benefit icons that never loaded in the earlier release now show, every navigation, footer and card link goes to a real page, the home page slider text no longer talks about patients, and the blog tags and categories now match a yoga studio.
Demo content: new Unsplash photography for every image, initials avatars instead of portraits, fictional teacher and commenter names, example contact details, and yoga-focused journal titles.