Roberto is a website template for hotels, resorts and guesthouses, built on Bootstrap 5, with a calm design in white, navy and teal. The layout is responsive and mobile-ready and works in all popular web browsers. It comes with seven pages: home, rooms, room details, about, blog, blog post and contact.
The home page has a hero slider, an availability search with dates and guests, an about block with services, a room slider with prices and features, guest testimonials, a strip of hotel highlights and the latest news. The rooms page lists rooms with a booking sidebar (dates, guests and a price range), the room details page adds a photo carousel, amenities and reviews, and the about page has a video, the hotel’s services and a call to action. The blog has a sidebar, comments and a comment form, and the contact page a working contact form and a click-to-load map.
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 hero, room, testimonial and highlight sliders, Jarallax 3 runs the parallax headers, native date and range inputs replace the date picker and price slider, a keyboard-operable dialog replaces the mobile menu, and the guest photo now follows the testimonial on show. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: all seven pages together went from 17.2 MB and 348 requests to 6.4 MB and 213 requests, and the home page from 4.6 MB to 1.9 MB. Every photo has an AVIF version with the JPEG as the fallback, real dimensions and lazy loading below the fold, and each page preloads its hero photo.
No third-party requests: Poppins is self-hosted, the icon fonts are replaced by Lucide SVG icons and a 1.2 KB social-logo subset (the Twitter bird is now the X logo), the about video loads from YouTube’s privacy-enhanced player only after a click, the contact map loads only after a click, and a Google Analytics 4 snippet stays commented out until you add your own ID.
Working forms: the contact and comment forms send through php/send-email.php and the newsletter forms through php/subscribe.php, with validation, a spam trap and an in-page message; the availability and booking forms send the dates, guests and price range to the rooms page, and the header search goes to the blog. Before, none of the forms sent anything.
Accessibility: a skip link and a main landmark on every page, one h1 per page, labelled buttons, links and form fields, keyboard access to the menu, submenu, search bar, sliders and room carousel, a visible focus ring, and a darker teal and greys where text failed WCAG AA contrast.
Hotel content throughout: room details, guest reviews, blog posts and contact details in place of placeholder text, new guest portraits, the current menu item marked on every page and typos fixed. Page titles, descriptions, Open Graph tags and Hotel structured data are added.