StealThis .dev
Pages Medium

Dating — Discovery Grid

A playful mobile-app discovery screen where singles browse a responsive grid of dating profiles. Each card pairs a gradient photo with name, age and city, an animated online dot, and a heart like-button that pops into view on hover or focus. A sticky filter bar tunes distance and age range with live range sliders and quick vibe chips, while a shuffle control and load-more button keep the feed feeling infinite and fresh.

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

Code

The Discovery Grid is the browse screen of a dating app, wrapped in a ~430px phone frame so it reads like a real handset. A sticky header holds a filter bar with two live range sliders (max distance and age range) plus a row of vibe chips (Nearby, New here, Verified, Online). Below it, profiles flow into a two-column card grid — each card is a rounded gradient portrait with an online status dot, a name and age, city and distance, and interest badges. Hovering or focusing a card reveals a floating heart button that pops with a spring animation.

Liking a profile animates the heart, floats a small burst, fires a toast, and moves that card to a Liked count in the header. The filter controls re-run instantly: dragging the distance or age sliders, or toggling a vibe chip, filters the visible cards with a soft fade and updates the live result count. A Shuffle button reorders the deck, and a Load more button appends a fresh batch of profiles for that never-ending, keep-swiping feel.

Everything is vanilla — no frameworks, no build step. Cards are keyboard reachable, the like buttons are real <button>s with aria-pressed, the sliders announce their values, and a @media (max-width:520px) block keeps the grid comfortable down to 360px. Fictional-but-believable profiles and Unsplash portraits make it feel populated without hotlinking anything unpredictable.