Skip to content

feat(web): TrackRow on search track results behind track_rows - #14686

Merged
dylanjeffers merged 3 commits into
mainfrom
design/track-row-search-collections
Oct 21, 2026
Merged

dylanjeffers merged 3 commits into
mainfrom
design/track-row-search-collections

Conversation

@dylanjeffers

Copy link
Copy Markdown
Contributor

What

Stacked on #14685. Search track results (the Tracks tab and the tracks section of All results) render Harmony TrackRow when track_rows is on. Default off, no change otherwise. Mobile keeps tiles. The desktop tile spacing styles are skipped in row mode so rows stack flush.

Collection pages: left as they are

The collection page uses EditAwareTracksTable, which is already a dense row layout: 48px rows, sortable Added/Plays/Reposts columns, hover-revealed play and actions, and drag reorder plus remove in the owner's edit mode. Replacing it with TrackRow would lose sorting and reordering for no density gain. If we want the two to match visually, the follow-up is to restyle the table's row to the TrackRow tokens, not to swap the component.

Verified

  • tsc and eslint clean for web
  • Dev server, flag forced on: /search/tracks?query=lofi renders 11 rows per screen at full width with artwork, badges, favorites and durations.

🤖 Generated with Claude Code

@changeset-bot

changeset-bot Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 2fee8ee

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@dylanjeffers
dylanjeffers force-pushed the design/track-row-feed-profile branch from 9a38655 to f78973c Compare October 20, 2026 00:14
@dylanjeffers
dylanjeffers force-pushed the design/track-row-search-collections branch 2 times, most recently from fb5fc2a to dab0de6 Compare October 20, 2026 00:19
@dylanjeffers
dylanjeffers force-pushed the design/track-row-feed-profile branch from f78973c to 43e9d12 Compare October 20, 2026 00:19
dylanjeffers and others added 3 commits October 21, 2026 16:04
The profile page passes the row variant to its Tracks and Reposts lineups
when the `track_rows` flag is on. `TrackRow` gains an optional `context`
line above the row, which the connected row uses to label the artist
pick. In row mode the lineup drops the two-column grid it uses for small
tiles so rows span the full width.

Feed stays on tiles on purpose: a feed item is a post with who reposted
it and inline playlists, and the tile carries that better than a row.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Reposts mixes playlists into the track lineup. With rows the cards sat flush
against the row above; give them a top margin in row layout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Search's track results pass the row variant to TrackLineup when the
`track_rows` flag is on, and drop the tile spacing styles in row mode.

Collection pages are left on their tracks table: it is already a dense
48px row with sortable columns and drag reorder in edit mode, which the
row does not replace.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@dylanjeffers
dylanjeffers force-pushed the design/track-row-feed-profile branch from 43e9d12 to 326e804 Compare October 21, 2026 23:05
@dylanjeffers
dylanjeffers force-pushed the design/track-row-search-collections branch from dab0de6 to 2fee8ee Compare October 21, 2026 23:05
Base automatically changed from design/track-row-feed-profile to main October 21, 2026 23:05
@pull-request-size pull-request-size Bot added size/M and removed size/S labels Oct 21, 2026
@dylanjeffers
dylanjeffers merged commit 26ae1d3 into main Oct 21, 2026
4 checks passed
@dylanjeffers
dylanjeffers deleted the design/track-row-search-collections branch October 21, 2026 23:05
dylanjeffers added a commit that referenced this pull request Oct 21, 2026
…14689)

## What

Stacked on #14686. Collection pages keep their sortable, reorderable
tracks table, but with `track_rows` on the table takes the TrackRow
look.

`Table` gets an `isDense` prop (a `.dense` modifier on the wrapper,
applied on both the virtualized and plain render paths):

- flat surface: no card shadow or white background; the page shows
through
- 56px rows (was 64), hover and focus-within fill with `surface-1`
instead of a box shadow
- active row title in the accent text color
- header in sentence case at 12px/500 subdued, with a single divider
under it
- tabular numerals in cells
- `TracksTable`: 40px artwork without a border, subdued artist line,
flat disabled and locked rows

`CollectionPage` reads `FeatureFlags.TRACK_ROWS`, passes `isDense`, and
makes its outer wrapper transparent so the hover fill is visible.
Sorting, filter, drag reorder, remove and edit mode are untouched.
Library and dashboard tables are not changed in this PR; they can opt in
with the same prop.

## Verified

- eslint, stylelint and `tsc` clean for web
- Dev server, flag forced on, Hot & New on Audius playlist: 13 tracks
per screen (was 10), hover reveals repost, favorite and menu with the
surface fill, light and dark.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant