diff --git a/docs/superpowers/specs/2026-04-23-web-ui-library-views-design.md b/docs/superpowers/specs/2026-04-23-web-ui-library-views-design.md new file mode 100644 index 00000000..a2991654 --- /dev/null +++ b/docs/superpowers/specs/2026-04-23-web-ui-library-views-design.md @@ -0,0 +1,320 @@ +# Web UI Library Views — Design Spec + +**Date:** 2026-04-23 +**Status:** Design approved +**Follows:** [Web UI Auth](2026-04-22-web-ui-auth-design.md) — this spec is the first data-consuming feature on top of the auth foundation. + +## Goal + +Let an authenticated user browse the server's music library — artists, artist detail with albums, album detail with tracks — entirely in the SPA. After this lands, `/` is a real library index, deep links like `/artists/abc-123` resolve to pages with data, and the `cover_url`/`stream_url` forward references emitted by the JSON API finally have consumers. + +## Non-goals + +Explicit YAGNI — documented so they don't drift back in: + +- No track detail page. Track metadata is already visible inline in the album view; a dedicated `/tracks/:id` page would show identical fields with no action affordances (the player plan adds playback; that's where click-to-play belongs). +- No search UI. `/search` keeps the auth plan's "Coming soon" placeholder. Search deserves its own sub-plan — different UX concerns (debouncing, faceted results, empty states). +- No playback. All track rows are non-interactive; `