Liquorstore is a wine and spirits shop template, built on Bootstrap 5. It has a sticky menu with a Products dropdown, a testimonials slider, parallax photo backgrounds and a blog. The layout is responsive and mobile-ready. There are nine pages: home, about, shop, product, cart, checkout, blog, blog post and contact.
The home page has a hero, service highlights, an about block, spirit categories, featured products, testimonials and recent posts. The shop page has a product grid with a product-type filter and a sidebar, and the product page a quantity stepper, description, maker and review tabs and a photo you can open full size. You will also find a cart and a checkout whose totals add up, a blog post with a comment form, and a contact page with a working contact form and a map that loads on click. The checkout sends the order to you as an order request. Liquorstore gives you a ready-made site for a wine shop, liquor store or spirits retailer.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.2.1 and jQuery), compiled from Sass with the design’s original proportions, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel on the testimonials, PhotoSwipe replaces Magnific Popup for the product photo, Jarallax replaces Stellar for the parallax backgrounds, Tom Select replaces bootstrap-select in the product-type filter, and small built-in modules replace Waypoints, animate.css and the number counter. Scrollax and jQuery Easing, which nothing used, are gone. Lucide SVG icons replace Font Awesome 4.7 and the Flaticon font, and a subset of Font Awesome 7 Brands draws the social logos, with the X logo in place of the old bird. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: the home page went from 6.1 MB and 59 requests to 1.8 MB and 43 requests, the contact page from 2.4 MB to 592 KB, and the download from 6.8 MB to 5.3 MB. Every photo has an AVIF version with the JPEG as the fallback, and the full-screen preloader is gone.
No third-party requests: Spectral is self-hosted, the icons are local SVGs, the contact page shows an OpenStreetMap map that loads only when a visitor clicks “Show map”, and a Google Analytics 4 snippet stays commented out until you add your own ID. Before, every page loaded its font from Google Fonts, Font Awesome and bootstrap-select from CDNs, and the Google Maps script.
Working forms: the contact form, the blog comment form and the checkout send through PHP handlers in includes/, each with a spam trap and an in-page message, and the checkout emails you the order as an order request. Before, the contact form posted the page to itself, and the comment form and the checkout posted nowhere.
Accessibility: a skip link, a main landmark and one h1 per page (the inner pages had none), labelled form fields, names on icon-only links, visible focus rings and WCAG AA text contrast, with darker body and meta greys, dark text on the green and orange badges, brighter text and darker overlays on the photos, a thicker outline on the hero heading, and a cart remove button and checkboxes you can see.
Fixed: the Products menu opens from the keyboard and on click (it opened on hover only, and a hover followed by a click closed it), the menu button shows its icon and “View All” its arrow, which never displayed before, and the cart, mini cart and checkout totals add up. The product quantity no longer goes down to 0, the cart quantities are number fields, and product, post, tag, category, pagination and footer links lead to real pages instead of nowhere.
New demo content: twelve fictional products with matching categories and prices, brand-free Unsplash photos of unlabelled bottles, decanters and glasses for the products, categories, backgrounds and blog, store copy in place of placeholder text, three customer testimonials, six blog posts and a full cocktail article with comments, fictional contact details and responsible-drinking notes.