StealThis .dev

Photography — Image Grid Hover

A gallery-dark, image-first photo grid where each frame stays quiet until you point at it, then a caption panel wipes up with a clip-path reveal, the image lifts and scales, and the title, photographer and category fade in on a staggered timeline. Includes category filter chips, a keyboard-focusable lightbox, an aspect toggle, and a live shot counter — all vanilla, all self-contained, tuned for a portfolio feel down to phone widths.

Open in Lab
html css vanilla-js
Targets: JS HTML

Code

A gallery-grade photo grid built for portfolios and editorial sites. Each tile holds a full-bleed image behind a caption panel that is clipped out of view until interaction. On hover or keyboard focus the image scales and lifts, a soft gradient scrim deepens, and the caption wipes upward via an animated clip-path, with the title, photographer credit and category label fading in on a short staggered cascade so the type reads like a curtain being drawn.

Above the grid, uppercase category chips filter the collection with an animated count, an aspect toggle switches every frame between a tall portrait ratio and a wide landscape ratio, and a running counter reports how many shots are currently on view. Clicking any frame opens a minimal lightbox with the full caption and Escape-to-close plus arrow-key navigation.

The whole component ships as three files with no dependencies. Interactions are keyboard reachable with visible focus rings, contrast meets WCAG AA against the dark surface, reduced-motion preferences collapse the animations, and a responsive breakpoint reflows the grid to a single column at phone widths.