Luigi’s is an Italian restaurant and pizzeria website template built on Bootstrap 5. It has six pages: home, about us, menu, blog, contact and an elements page. The home page has a full-screen photo hero, a short story, a best-sellers grid and a food menu that filters by pizza, pasta, salads and desserts.
The about page adds a testimonial slider and animated counters, the menu page lists pizzas, pasta and a full dish list, and the blog page has three posts with a search box, a newsletter form, latest posts and offer banners. The contact page has a working contact form and a map that loads on click, and the elements page shows the buttons, accordion, tabs, progress rings and icon boxes used across the design. Luigi’s gives a pizzeria or family restaurant a ready-made site.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.1.2 and jQuery 3.2.1), compiled from Sass with the Bootstrap 4 proportions the design was drawn with, and plain JavaScript with no jQuery. Swiper 14 replaces the old Swiper 3 testimonial slider, and small built-in scripts replace Waypoints, ProgressBar.js and the jQuery menu, filter and counter code. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: the home page went from 2.4 MB and 32 requests to 0.7 MB and 28 requests, and the contact page from 2.0 MB and 34 requests to 0.4 MB and 18 requests. Every photo has an AVIF version with a JPEG fallback, real dimensions and lazy loading below the first screen.
No third-party requests: Open Sans and the heading font (Kaushan Script) are self-hosted, the Ionicons font is replaced by Lucide SVG icons and a small social-logo subset, and the contact page map is an OpenStreetMap map (no API key needed) that loads only when a visitor clicks “Show map”. A Google Analytics 4 snippet stays commented out until you add your own ID.
Working forms: the contact form and the blog newsletter form send through php/send-email.php, with validation, a spam trap and an in-page message. The blog search is a standard GET form.
Accessibility: a skip link and a main landmark on every page, one h1 per page, a real menu button, buttons for the menu tabs and accordion, names on icon and image links, visible focus rings, reduced-motion support and WCAG AA text contrast with a slightly deeper red.
Fixed: the logo and food icons are crisp SVG, header and footer links point to real pages, the testimonial slider shows one slide on phones, and the menu items, prices and photos now match.