Look is a website template for model agencies, talent agencies and photographers, built on Bootstrap 5. It has seven pages: home, about, models, a model profile, blog, a blog post and contact. The home page opens with a full-screen model slider that shows each model’s measurements, followed by an about block with a video, a model grid with a caption on hover, client stories, services and the latest posts. A menu button opens a full-screen overlay menu, and the layout is responsive and mobile-ready.
The models page lists the roster, the profile page has a photo carousel with measurements, the blog has a sidebar with search, categories and tags, and the contact page has a working contact form and a map that loads on click. Look gives you a ready-made site for a model or talent agency, a casting studio or a fashion photographer.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.1.0 and jQuery), compiled from Sass together with the theme and the Bootstrap 4 proportions the design was drawn with, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel, a video dialog replaces Magnific Popup, small built-in modules replace Waypoints, AOS and animateNumber, and the unused Stellar, Scrollax and date and time pickers are gone. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: the seven pages went from 27.9 MB and 336 requests in total to 7.3 MB and 169 requests. The home page went from 6.1 MB and 57 requests to 1.6 MB and 33 requests, and the contact page from 2.2 MB and 48 requests to 0.6 MB and 17 requests. Every photo has an AVIF version with the JPEG as the fallback, and the full-page preloader is gone.
No third-party requests: Rubik and Josefin Sans are self-hosted, the icon fonts are replaced by Lucide SVG icons and a 1 KB social-logo subset, the contact page map loads from OpenStreetMap only when a visitor clicks “Show map” (no API key), the video loads from YouTube’s privacy-enhanced player only after a click, and a Google Analytics 4 snippet stays commented out until you add your own ID. Before, every page loaded its fonts from Google Fonts and the Google Maps script with a sample key.
Working forms: the contact form and the blog comment form send through PHP handlers in includes/, with validation, a spam trap and an in-page message. Before, they had no action and no field names, so nothing could be sent.
Accessibility: a skip link and a main landmark on every page, one h1 per page, a real menu button, a full-screen menu that moves focus to its first link, keeps the page behind out of reach, closes with Esc and returns focus to the button, names on image and icon links, visible focus rings, reduced-motion support and WCAG AA text contrast, with a darker pink for pink text and buttons and a shade behind the hero captions.
Demo content: new Unsplash portraits for the models, client stories and comments (credited in the README), fictional names and contact details, and model-agency copy in the blog sidebar in place of food categories.
Fixed: the unused “Request a quote” dialog repeated on every page is removed, links that went nowhere now open real pages, and the home slider keeps its 750 px height on every screen.