/radio is a dedicated music space built from the playlists you define in lib/music-config.ts. Visitors browse playlists, select songs, and enjoy a visual player complete with a spinning album art animation, a five-bar audio visualizer, and floating lyric snippets drifting across the background.
Browsing playlists
The landing view shows a card grid — one card per playlist. Each card displays:- The playlist name and description
- A song count
- A preview of the first three song titles
The player
When you click a song, the player banner appears at the top of the page. It shows:- A spinning gradient tile (the album art placeholder) with a five-bar visualizer animation in the corner when playing
- The song title and artist
- The album name, if one is configured
- A play/pause toggle button
Floating lyrics
If a song haslyrics configured, individual lyric lines float up from the background while the player is active. This uses the same CSS float-up keyframe animation as the home page countdown screen.
Song data structure
Songs are defined inlib/music-config.ts. Every song must have at minimum a title and artist. All other fields are optional.
Playlist data structure
Adding and editing songs
To add songs or create new playlists, editlib/music-config.ts directly. See Configuring music for a step-by-step guide.
The radio page does not stream audio. It is a visual music experience — songs are displayed and animated but not played back through the browser’s audio API. Real audio playback can be added by wiring
coverUrl or a separate audioUrl field to an HTML <audio> element.