- Rewrite VisualizerPanel for full-screen display with 3 modes:
- Bars: vertical audio bars with rounded corners
- Wave: smooth waveform with mirrored reflection
- Circular: radial bars emanating from center
- Extract colors from album artwork for dynamic coloring
- Add performance optimizations: 32 bars, 20fps throttling
- Pass artwork prop to enable color extraction
- Add mode switcher button to cycle through visualizations
Display modes:
- Coverflow: centered album art with track info
- Split: artwork + panel side by side (current default)
- Lyrics Focus: single line at a time, large centered text
- Queue Focus: full screen queue view
- Visualizer Focus: full screen visualizer
Background:
- Heavy CSS blur (120px) for abstract color blobs
- No recognizable image, just colors
Keyboard shortcuts: 1-5 to switch modes
Inspired by Cider 3's immersive player design.
Replace blur approach with full resolution artwork:
- Artwork scaled 115% to hide edges
- Strong vignette overlay fading to black at edges
- Gradient overlays for text readability (header, controls, lyrics)
- Slight desaturation for better contrast
- Simpler and more visually impactful
- Increase canvas blur size from 64x64 to 256x256 for smoother background
- Fix lyrics horizontal scroll by adding word-wrap and overflow-x: hidden
- Remove queue button from controls (use header tab instead)
- Add queue sync effect when immersive player is open
Addresses visual quality issues with pixelated background and long
German lyrics causing horizontal overflow.
- Create QueuePanel component for immersive mode
- Add queue tab to ImmersiveHeader with ListMusic icon
- Update ImmersivePlayer to render QueuePanel and pass queue data
- Add Q keyboard shortcut to switch to queue tab
- Pass queue tracks from +page.svelte to ImmersivePlayer
Users can now manage their queue without leaving immersive mode.