Tasteit is a restaurant website template for restaurants, bistros and family kitchens, built on Bootstrap 5. The layout is responsive and mobile-ready. There are 13 pages: home, about, chefs, menu, booking, blog, six story pages and contact.
The home page has a full-screen hero slider, a booking form, a welcome section, menu highlights, guest testimonials, the chefs and the latest stories. The menu page lists 42 different dishes and drinks in six columns (brunch, lunch, dinner, desserts, wine and drinks), each with a photo, a price and its ingredients. The inner pages add an about page with counters and testimonials, a chefs page, a booking page, a blog with six stories, each on its own page with comments, a comment form and a sidebar, and a contact page with a contact form and a map that loads on click. Tasteit gives you a ready-made site for a restaurant, a bistro or a family kitchen.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.5.0 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 testimonials, Jarallax replaces Stellar on the parallax backgrounds, small built-in modules replace Waypoints, animate.css and the number counter, the booking form uses the browser’s own date and time fields instead of the jQuery pickers, and unused plugins such as Magnific Popup and Scrollax are gone. Icons are Lucide SVGs, and the social logos are a small Font Awesome 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 home page went from 8.2 MB and 74 requests to 2.9 MB and 55 requests, and the contact page from 2.7 MB to 886 KB. Every photo has an AVIF version with the JPEG as the fallback, the three large hero photos are re-encoded, and the full-screen preloader is gone. The download grows from 11.6 MB to 13.3 MB because it now includes the AVIF copies, the Sass sources and the new story pages.
No third-party requests: Roboto and Dancing Script are self-hosted, the contact page map is 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 an icon font from a CDN, its web fonts from Google Fonts and the Google Maps script.
Working forms: the booking, contact, blog comment and footer newsletter forms send through the PHP handlers in includes/ (PHP on your host), with visible labels, a spam trap and an in-page message. Before, the booking form had no field names, and none of the forms posted anywhere.
Accessibility: a skip link and a main landmark on every page, one h1 per page, a real menu button, names on icon-only links, labelled form fields, visible keyboard focus, 44–48 px hero slider arrows and dots that are always visible, reduced-motion support and WCAG AA text contrast, with white button labels on a deeper red, darker body and meta text, and a soft shade behind the header over the hero photos.
Fixed: the chef cards’ social icons, the blog meta icons and the hero slider arrows never showed, and they now render; the logo’s “it” vanished on the white sticky menu bar and now stays visible; on tablets the welcome text ran over the chef photo and the booking button label was cut off; the home page had two h1 headings; and post links, tags, categories and archives that pointed nowhere now lead to real pages.
Demo content that fits a restaurant: 42 dishes and drinks with their own names, ingredients and prices (every dish used to share one placeholder name), restaurant copy, consistent opening hours and contact details, four chefs, four different guest testimonials and six stories, each opening its own page (every blog card used to open the same post). The names and the address are fictional, and twelve demo photos are replaced with Unsplash photos.