Skip to content

feat(web): TrackRow on profile Tracks and Reposts behind track_rows - #14685

Merged
dylanjeffers merged 2 commits into
mainfrom
design/track-row-feed-profile
Oct 21, 2026
Merged

dylanjeffers merged 2 commits into
mainfrom
design/track-row-feed-profile

Conversation

@dylanjeffers

Copy link
Copy Markdown
Contributor

What

Stacked on #14684. The profile page's Tracks and Reposts lineups render Harmony TrackRow when track_rows is on. Default off, no change otherwise.

  • TrackRow gets an optional context node: one 12px line above the row, aligned with the title column, used here for "Artist Pick" with the pin icon. It adds 16px to that row only.
  • TrackRowTile takes showArtistPick and fills context when the track is the owner's pick, matching the tile's label.
  • TrackLineup no longer applies the two-column grid container in row mode (profile Tracks uses LineupVariant.GRID for small tiles; rows span the column).
  • ProfilePage (desktop) reads the flag and passes tileVariant to the artist Tracks lineup, the artist Reposts lineup and the user Reposts lineup.

Feed is intentionally left on tiles

A feed item is a post: who reposted it, inline playlists, comment activity. The tile carries that; a 56px row would strip it. Rows are for catalog surfaces (Trending, profiles, search, collections). Keeping Feed on tiles also leaves a control surface for reading the row experiment.

Verified

  • tsc clean for harmony and web; eslint clean
  • Dev server, flag forced on: Ljazz profile Tracks shows the pinned track with the "Artist Pick" line, then rows at full column width; Reposts tab renders rows. Radio Juicy (no pick) renders plain rows.

🤖 Generated with Claude Code

@changeset-bot

changeset-bot Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 326e804

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-feed-profile branch from f78973c to 43e9d12 Compare October 20, 2026 00:19
Base automatically changed from design/track-row to main October 21, 2026 23:03
dylanjeffers and others added 2 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>
@dylanjeffers
dylanjeffers force-pushed the design/track-row-feed-profile branch from 43e9d12 to 326e804 Compare October 21, 2026 23:05
@dylanjeffers
dylanjeffers merged commit 6ed5fd6 into main Oct 21, 2026
5 checks passed
@dylanjeffers
dylanjeffers deleted the design/track-row-feed-profile branch October 21, 2026 23:05
dylanjeffers added a commit that referenced this pull request Oct 21, 2026
## 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](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