StealThis .dev
Pages Moyen

Music — Release Upload (tracks · art · metadata)

A dark, album-art-driven release-upload form for distributing music. Pick a generated gradient cover that themes the whole UI, fill in title, artist, label, genre, date and an explicit toggle, then build a reorderable tracklist where each row carries featured artists, an ISRC, a tiny waveform and a simulated audio-uploaded state. A three-step Details → Tracks → Review stepper validates as you go, while a sticky live preview card mirrors every field with a working scrubber, equalizer and simulated playback.

Ouvrir dans Lab
html css vanilla-js
Targets: JS HTML

Code

Release Upload (tracks · art · metadata)

A full distribution form for getting a fictional record onto stores, art-directed dark-first with an album-art-driven accent. The cover tile is a simulated drop-zone — clicking it cycles through CSS-drawn gradient covers, and the chosen art pulls a --cv-a/--cv-b accent pair that re-themes the buttons, focus rings, stepper, and waveforms. The details step gathers release title, primary artist, label, genre, release date, and an explicit-content switch, all wired to a live preview.

The tracks step is a reorderable list: each row has a drag handle, an inline title / featured-artists / ISRC field group, a tiny generated waveform, and an “audio uploaded ✓” state with a duration timestamp. Tracks can be added, removed (with a one-track floor), and dragged into a new order, and the running track count and total runtime update live. A three-step Details → Tracks → Review stepper guards forward navigation with per-step validation and surfaces issues through a small toast() helper, ending in a review checklist and a publish button that simulates distribution.

The sticky preview is a now-playing release card that mirrors the form in real time — cover gradient, title, artist, genre/year, explicit badge, and the full tracklist. Its play/pause button morphs between icons, drives an animated equalizer and a role="slider" scrubber (pointer-draggable and arrow-key seekable), advances through tracks on a timer, and reflects the currently playing row. Everything is keyboard-usable, AA-contrast, responsive down to ~360px, and honors prefers-reduced-motion.

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