Desktop: alphabet quick-jump strip on the Albums, Artists and Tracks views #15

Open
opened 2026-08-18 05:54:00 +00:00 by logan · 0 comments
Collaborator

Report

An A-Z strip down the side of the album, artist and track library views to jump straight to a letter.

Findings

  • All three are virtualized: artists-view and genres-view use lit-virtualizer directly, cover-grid splits into two virtualizers, and track-list is virtualized with memoized sort caches.
  • scrollToIndex already exists on the grids (and cover-grid must pick the half holding the index and rebase — see utils/roving-grid.ts notes). The focus after a long scroll is taken on a time budget, not at updateComplete, because the card is produced a few hundred ms later.

Direction

The strip resolves a letter to an index in the currently sorted array and calls scrollToIndex. Two things to get right: it is only meaningful while the sort field is a name (hide or disable it under a year/date sort), and it needs a keyboard path plus an accessible name per letter — 26 tab stops is too many, so a single roving tab stop over the strip.

**Report** An A-Z strip down the side of the album, artist and track library views to jump straight to a letter. **Findings** - All three are virtualized: `artists-view` and `genres-view` use `lit-virtualizer` directly, `cover-grid` splits into two virtualizers, and `track-list` is virtualized with memoized sort caches. - `scrollToIndex` already exists on the grids (and `cover-grid` must pick the half holding the index and rebase — see `utils/roving-grid.ts` notes). The focus after a long scroll is taken on a *time* budget, not at `updateComplete`, because the card is produced a few hundred ms later. **Direction** The strip resolves a letter to an index in the currently sorted array and calls `scrollToIndex`. Two things to get right: it is only meaningful while the sort field is a name (hide or disable it under a year/date sort), and it needs a keyboard path plus an accessible name per letter — 26 tab stops is too many, so a single roving tab stop over the strip.
logan added the Area/Library-UIKind/FeaturePlatform/Desktop
Priority
Medium
3
labels 2026-08-18 14:36:06 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: yonlu/yellowjacket#15