Persistent bottom player with queue, favorites, cart, DJ mode, repeat, and cross-page persistence
Click artwork to play. Use the and buttons. State syncs via .wb-favorited and .wb-in-cart classes. First two are server-side pre-favorited. Click a title to visit the product page — playback continues.
Click any row to play. Equalizer bars animate on the active track. Hearts show favorite state.
| Name | Artist | BPM | Key |
|---|
A track with section markers. The bar updates the displayed info at each marker boundary. Click any section below or any marker on the waveform to jump.

Control everything programmatically.
WaveformBar.play({ url: 'song.mp3', title: 'Track', artist: 'Artist' });
WaveformBar.addToQueue({ url: 'next.mp3', title: 'Up Next' });
WaveformBar.cycleRepeat(); // off → all → one → off
WaveformBar.toggleFavorite();
WaveformBar.seekToMarkerByLabel('Chorus');
const track = WaveformBar.getCurrentTrack();
Play a track, then refresh or visit the product page. The bar restores your queue, position, and state.
First two cards have data-wb-favorited="true" simulating server-side favorites.
The bar auto-detects theme. See it in action on the light mode page.