Vacation is a travel agency and holiday-rental website template built on Bootstrap 5. There are six pages: home, about, destinations, a blog archive, a single article and contact. The layout is responsive and works on phones, tablets and desktops.
The home page opens with a full-screen hero and a video button, then a trip search, services, counters, destinations, featured tours, a traveller-review slider and the latest posts. The destinations page filters twelve tours by place, trip type, length and price; the blog searches and paginates its nine articles without a server. The article page has a sidebar, comments and a comment form, and the contact page has a 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 with the original proportions, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel on the reviews slider and icons are Lucide SVGs.
Lighter pages: the six pages went from 27.4 MB and 296 requests to 5.9 MB and 152 requests, and the home page from 7.4 MB to 1.3 MB. Every photo has an AVIF version with the JPEG as the fallback, real dimensions and lazy loading below the first screen, and the preloader is gone.
No third-party requests: Poppins is self-hosted, the old icon fonts are replaced by Lucide icons and a small social-logo subset, the map loads only when clicked, and a Google Analytics 4 snippet stays commented out until you add your own ID.
Working search: the trip search filters the tours with a result count and a reset link, and the blog search and pagination work in the page.
Working forms: the contact and comment forms send through php/send-email.php, with visible labels, validation, a spam trap and an in-page message. Before, they posted nowhere.
Accessibility: a skip link and a main landmark on every page, one h1 per page, a named menu button, keyboard-reachable slider controls and text that meets WCAG AA contrast over the photos.
New photos and fictional demo tours, prices, reviews and articles replace the repeated placeholder text.