UI catalog
Curated `@kkb/ui` primitives, isolated demo islands, and the full audio player composition in one verification route.
Layout
5Shell primitives, spacing helpers, and structural building blocks land here next.
Aspect-ratio shell
A fixed canvas for screenshots, artwork, or embedded visual demos.
Sticky rail, section counts, and anchored headings.
Reused by server-rendered examples and later client demo islands.
Focused cards rather than an exhaustive export dump.
Inspector rail
Narrow metadata column for layout controls and release notes.
Preview canvas
Main surface stays flexible while the side panels compress first.
Session notes
- Keep section shells server-owned.
- Hydrate only interaction-heavy surfaces.
- Use explicit demo islands per primitive family.
Input
6Form controls and selection patterns arrive here once the core catalog cards ship.
Keeps section nav visible on desktop.
Release channel
Verification code
Active spacing preset: Comfortable
Selected review date
Mar 21, 2026
Use a compact single-date picker when the flow needs lightweight scheduling.
Feedback
4Status, loading, and progress patterns will populate this section.
Final verification pass
Route-level checks now focus on browser QA and production validation.
Overlay
3Dialogs, drawers, and contextual overlays stay isolated inside small demo islands.
Modal dialog
closedUse blocking confirmation flows when the next step needs explicit acknowledgement.
Side sheet
closedSheets keep supporting controls close without interrupting the main canvas.
Alert dialog
idleReserve destructive confirmation for actions that can’t be undone.
Mobile drawer
collapsedDrawers work well for stacked actions on narrower screens and touch flows.
Popover
closedSmall contextual surfaces fit filters, metadata, and quick secondary controls.
Data
4Tables, inline code, shortcut patterns, and carousel cards with narrow local state.
| Primitive | Role | Status |
|---|---|---|
| Table | structured rows | server-owned |
| Code | inline tokens | static |
| Carousel | manual paging | client island |
Use server-owned sections and explicit client demos to keep hydration narrow.
const sections = ["layout", "menu", "data"] as const;Server sections
Keep page structure on the server and isolate richer interaction inside small islands.
Local data only
Slides stay static in-file so the demo remains narrow and predictable.
Manual navigation
Arrow controls are enough here. No autoplay, timers, or remote media.
Audio
4Waveform, transport primitives, and the full player composition using live app wiring.
buffered
71%
Test Tone (AAC) — KKB • audio/mp4; codecs=mp4a.40.2