Skip to content

UI Design

netcraker01 edited this page Jul 9, 2026 · 1 revision

UI Design

The Svelte frontend is a thin client over Rust state. This page covers screens, visual modes, and the design intent.

Principles

  • Dumb client. Svelte renders state from Rust and sends JSON commands back. It does not own audio or persistence.
  • Audio is durable. Reloading the UI does not stop playback.
  • Visuals are real-time. FFT data is streamed as binary events for smooth visualizers.

Screens

Screen Purpose
Home Landing / discover
Search Query across enabled sources
Library Saved tracks, favorites, history
Playlists Create and manage
Now Playing Current track + queue + controls
Album Album view
Artist Artist view
Settings Toggles, visuals, language, About

Visual modes

Real-time visualizers

Driven by live FFT data sent over binary IPC from the Rust FFT stage. Shown in Now Playing.

Cinematic ambient mode

Full-screen ambient visuals with configurable intensity (Settings). Intended for background listening without a busy UI.

Mini-player

v0.3.x skins with scale control. Choose skin and scale in Settings.

Settings UI surfaces

Setting UI location
Source toggles Settings
Normalize audio Settings
Mini-player skin / scale Settings
Cinematic mode / intensity Settings
Hide title bar (Linux) Settings
Language (EN/ES) Settings
About (version, repo links) Settings → About

Internationalization

English and Spanish are supported. Language is set in Settings.

Next step

Clone this wiki locally