StealThis .dev
Pages Medium

Music — Browse / Genres / New Releases

A dark, cover-rich music discovery home for a fictional streaming app. A time-aware greeting sits above a New Releases scroller of CSS-drawn album cards with hover-play overlays, a vibrant gradient grid of genre and mood tiles, a Made for you mixes row, and a Top 50 charts preview with movement arrows, play counts and durations. Scrollers support drag and arrow navigation, a Music or Podcasts tab swaps the entire feed, and simulated playback drives a glassy now-playing bar with an animated equalizer and a draggable, keyboard-seekable scrubber.

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

Code

Browse / Genres / New Releases

A Spotify-home style discover page for the fictional app Resonant. A time-aware greeting opens the feed, followed by a horizontal New Releases scroller of album cards whose artwork is drawn entirely in CSS — layered gradients, a vinyl-style shape and a fading grid — themed from a per-card accent palette so each cover feels distinct. Hovering a card lifts it and reveals a green play overlay; clicking play starts simulated playback and marks the card as the active, now-playing tile.

Below the releases sits a vibrant Genres & moods grid of gradient tiles (Pop, Hip-Hop, Chill, Workout, Focus, Party, Indie, R&B, Electronic, Jazz) that lift and tilt on hover, a Made for you mixes row, and a Charts · Top 50 preview list with rank movement arrows, play counts and durations. Selecting a chart row plays it and animates an equalizer beside the title.

Every scroller works by dragging with the pointer or with the prev/next arrows, which auto-disable at each end, and is keyboard-scrollable. A Music / Podcasts tab swaps the entire feed — releases, mixes and charts — with a soft fade. Playback is fully simulated with timers: a glassy now-playing bar tracks elapsed time, exposes a draggable role="slider" scrubber with ArrowLeft/ArrowRight, Home and End seeking, and offers play/pause and like toggles that use aria-pressed. A small toast() helper confirms actions throughout.

Illustrative UI only — fictional artists, albums, tracks, and data. No real audio playback.