Añade de forma aditiva (sin migrar componentes) los tokens de la sección B.1 del plan de refactor: radios (tag/thumb), tamaños de carátula e icono, anchos de contenedor, tracking/leading tipográfico, colores de botón (--color-btn*), recetas @utility de tipografía (text-display-*, text-eyebrow, text-body, text-count), trazo de icono (stroke-thin/regular/bold), superficies/grids (glass-bar, grid-cards*, theme-transition) y el stagger de .animate-enter vía --i. Añade variables de layout (--mf-player-side-w, --mf-menu-w, --mf-submenu-w, --mf-range-*) y z-index semántico en theme.css. Limpia utilidades de color sin uso (--color-accent-dim/glow/hair/line/muted, --color-on-accent) y borra --mf-sidebar-bg (sin importadores) de theme.css y tokens.ts. Scrollbar pasa a tokens con variante de modo claro. Verificado con npm run build (Tailwind compila los @utility con variantes responsive dentro de @apply). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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.