Uza is a website template for a creative or digital agency, with white and light-blue sections and a bright blue accent. It is built on Bootstrap 5, and the layout is responsive and works on phones, tablets and desktops. It comes with eight pages: home, about, services, portfolio, portfolio single, blog, single blog post and contact.
The home page has a hero with a laptop mock-up, an about section with a video button, three services, a portfolio slider, testimonials, a call to action and the latest blog posts. The about page adds the agency’s mission in tabs, a why-choose-us section, counters and a team slider, and the services page lists six services with counters and testimonials. The portfolio page has a category filter and eight projects, each with its own project page, and the blog lists twelve posts with search, category views and Load More, each with its own post page, related posts and a comment form. The contact page has a contact form and a map that loads on click, and every page has a newsletter box, a search window and a Login / Register demo dialog. Use Uza for an agency, a studio or a consultancy.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.1.3 and jQuery), compiled from Sass with the original proportions, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel on the portfolio, testimonial and team sliders, a small built-in filter sorts the portfolio, the counters count up when they scroll into view, a menu dialog that works from the keyboard replaces the old off-canvas menu, and a native dialog plays the video. Lucide SVG icons replace ElegantIcons and Font Awesome 4.7, and the social logos come from a small Font Awesome Brands subset (the Twitter bird is now the X logo). npm run build (Dart Sass and esbuild) compiles the minified stylesheet and script.
Lighter pages: all eight pages together went from 10.11 MB and 281 requests to 5.76 MB and 141 requests, and the contact page from 1.65 MB and 70 requests to 598 KB and 11. Every photo has an AVIF version with the JPEG or PNG as the fallback, real dimensions and lazy loading below the first screen, the Aileron font ships only the three styles the pages use (it shipped 16 styles in five formats), and the full-page preloader is gone. The download is 4.35 MB (it was 4.03 MB) because it now includes the Bootstrap Sass sources, the build scripts and the AVIF images.
No third-party requests until a visitor asks for them: the fonts and icons are self-hosted, the video loads from YouTube’s privacy-enhanced player only when a visitor presses play, the map on the contact page is OpenStreetMap (no API key needed) and loads only when a visitor clicks “Show map”, and a Google Analytics 4 snippet stays commented out until you add your own ID. Before, the contact page loaded a Google Maps embed and Google Fonts on every visit.
Working demos: the portfolio filter sorts eight distinct projects by category, and each project opens its own page with its client, date and links to the next and previous projects. Twelve distinct blog posts each open their own post page with related posts, and the blog has a working search, category views and a Load More button. Login / Register opens a demo dialog with validation and a register mode (nothing is stored), and the video button plays a stock clip; the old video link no longer played.
Working forms: the contact form, the blog comment form and the newsletter box on every page send through php/send-email.php, a safe mailer with validation, a spam trap and an in-page message. Before, they had no action and no labels, so nothing could be sent.
Accessibility: a skip link and landmarks on every page, one h1 per page, a menu button you can reach and open from the keyboard (it was not a button before), a mobile menu that keeps keyboard focus inside and closes with Esc, submenus that open from the keyboard and on the first tap on touch screens, labelled form fields, names on icon-only links, visible keyboard focus and WCAG AA text contrast, with a deeper blue for blue text and button fills and darker greys for body and secondary text. The portfolio and team slider dots sit in 44 px tap targets.
Fixed: links that went nowhere now open a real page, section or dialog, the search window searches the blog (it sent the query to the home page, which a static host refuses), the hero no longer fades between three identical copies, the footer credit stays on one line at every width, and typos are corrected.