Fixed Aspect-Ratio Image Grid
Every tile the same shape, so the grid reads as one object rather than a collage. The right default for product shots — and the wrong one for editorial photography, where cropping to a square throws away the composition.
Create a responsive image grid: four columns on desktop, three on tablet, two on mobile, with a consistent gap. Wrap each image in a 4:3 aspect-ratio box with object-fit: cover so the grid never reflows as images resolve, and set explicit width and height attributes on every img. Use loading="lazy" and decoding="async" on everything below the first row, and eager loading plus fetchpriority="high" on the first row so the largest contentful paint is not deferred. Add a hover state that lifts the tile slightly and fades in a caption over a gradient scrim; drive the same state from :focus-visible so keyboard users see it. Render each item as a figure with figcaption.



