About this set
Two dark layouts for a photographer’s portfolio, where a black ground lets night and landscape photos glow. Portfolio home with a featured grid has the photographer’s name in spaced capitals, a small menu with the current page underlined in amber, a large intro line, and a grid of five night photographs: a wide feature beside a tall image, then three more, each with a title and a year under it. Series index lists three bodies of work as numbered rows with the title, place, years and photo count, three preview thumbnails that move from muted greyscale to colour on hover or focus, and an arrow that nudges up when the row is active; on phones the thumbnails drop under the title. Each title link stretches over its whole row, so the row is one big target without wrapping the images in the link. The Bootstrap version runs in data-bs-theme=”dark” with .nav, .col-md-8 and .col-md-4 for the grid and a flush .list-group with .stretched-link. The Tailwind version matches it with utilities. No JavaScript.
What’s included
- Portfolio home with a menu, intro line and featured photo grid
- Series index rows with numbers, metadata and preview thumbnails
- Whole row is clickable through one stretched title link
- Contrast checked on a near-black background
- Bootstrap version uses data-bs-theme="dark", .nav, .list-group and .stretched-link
Accessibility
The menu is a labelled nav with aria-current on the current page, and text colours reach at least 4.5:1 on the dark ground. Every photo, including the series previews, has descriptive alt text, and the series rows are a single link each named by the series title. Links show a 3px amber outline on focus, and the row highlight and arrow respond to focus as well as hover. Zoom and arrow movement stop under prefers-reduced-motion.
Customise it
All colours are custom properties on .pf and .si: --pf-bg, --pf-surface, --pf-ink, --pf-muted and --pf-accent. In Bootstrap the list colours are the --bs-list-group-* variables on .si-list; in Tailwind replace the #f2b56b, #15171c and #a3a7b0 values.





