StealThis .dev

Video — Vimeo Grid

A cinematic hover-preview video grid where each thumbnail springs to life on hover with a muted looping clip, an animated scrub bar, duration and quality badges, and a soft amber glow. Move focus in and the still frame cross-fades to motion; move out and it settles back. Click any tile to open a letterboxed modal player with a working scrubber, play and mute toggles, timecodes in mono, and keyboard controls. Built with vanilla JS, film-forward and responsive.

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

Code

A hover-preview video grid built for a videographer’s portfolio. Each tile shows a still poster frame with a duration badge and quality chip. On hover or keyboard focus the poster cross-fades into a muted, looping motion preview while a thin amber progress bar scrubs across the bottom and the title slides up from the letterbox — a small, film-forward micro-interaction that makes the whole wall feel alive without any autoplay noise.

The grid is filterable by reel category (Commercial, Documentary, Music Video, Wedding) with animated count chips, and sortable by newest, longest, and most-viewed. Every card is a real button, so the wall is fully keyboard-navigable with visible focus rings and AA-contrast text over the cinematic dark surface.

Clicking a tile opens a letterboxed modal player: a large poster stage with a centered play control, a working scrub bar you can click or drag, play/pause and mute toggles, elapsed and total timecodes rendered in JetBrains Mono, and a live view counter. Escape or the backdrop closes it, focus returns to the originating tile, and a toast confirms actions. All interactions are vanilla JS — no frameworks, no real video files required.