Mirror the earlier light-mode pastel/colorful pass for dark mode: boost tc()'s lightness and chroma, and richen --mf-bg/--mf-elevated/ --mf-panel-bg/--mf-bar-bg/--mf-hairline the same way, so dark mode reads as colorful instead of near-grayscale. Sidebar, Queue, and MobileHeader used bg-bg directly, so in dark mode they stayed almost black regardless of hue. Add --mf-chrome-bg (an alias to --mf-bg in light mode, a solid color-mix of --mf-hero-tint into --mf-bg in dark mode) and switch those three to bg-chrome, so they read as a full, solid colored bar in dark mode instead of a fading gradient (per feedback: a whole bar, not a gradient). Also fixes glass-bar (PlayerBar/TabsBar): it set `background-image: var(--mf-bar-bg)`, but --mf-bar-bg is a plain color, not a valid <image>, so the declaration was silently dropped and these bars never actually showed their tint in either mode. Changed to background-color.
web-player
Musify's web client: SvelteKit 2 (adapter-node), Svelte 5 runes, Tailwind 4,
TypeScript. Authentication is server-side OIDC against Zitadel (openid-client
and jose) with an encrypted session cookie; the backend is called from load
functions and form actions through a typed openapi-fetch client.
Development
npm install
npm run dev # :5173
Configuration lives in .env (template in .env.example). Bring the
infrastructure stack up first (see ../deploy/README.md)
and copy the WEB_CLIENT_ID / WEB_CLIENT_SECRET it writes to deploy/.env
into this .env once, then run the dev server.
npm run check # svelte-check — must be clean before closing a change
npm run lint # prettier --check . && eslint .
npm run format # prettier --write .
npm run build # production build into build/
npm run gen:api # regenerate src/lib/api/schema.d.ts from the running API
Production
Built and run as a container by the production stack — see
../deploy/README.md. There the same variables come from
deploy/.env.prod through compose instead of from .env.
Conventions and the design system are documented in CLAUDE.md and
in the musify-web skill.