Music: dim pack dialog alternate rows - #74564
Open
breville wants to merge 1 commit into
Open
Conversation
The rebrand mapped the alternate rows onto --background-neutral-secondary, the dialog's own surface color, so every other row matched the chrome around the list and the list's boundary stopped reading. Before the rebrand the rows sat at #363E48, the midpoint between the list background and the chrome. Use --background-neutral-alpha-5, a 5% white wash over the list background in dark theme, which lands within a couple of levels of that old midpoint. Unlike color-mix() it works down to our Chrome 109 and Safari iOS 16 floor, and unlike a half-opacity ::before overlay it needs no stacking context. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
8 tasks
moshebaricdo
approved these changes
Aug 12, 2026
moshebaricdo
left a comment
Contributor
There was a problem hiding this comment.
This is a great solution! Our new grayscale is generally warmer, so this meshes nicely and doesn't require adding an edge-case step between 95 and 100. This variable would also invert in a theoretical Music Lab light mode and would be a faint gray, lighter than background-neutral-secondary.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
[written by Claude]
Every other row in the track picker was the same color as the dialog around it, so the list lost its edge and read as one flat surface. This puts the alternate rows back below the chrome, the way they sat before the rebrand.
Fast-follow for #73649 (comment).
Before
After
How
Alternate rows now use
--background-neutral-alpha-5, a 5% white wash over the list background, instead of--background-neutral-secondary, which is the dialog's own surface color.The three surfaces used to be
#292F36list,#363E48row,#424D59chrome — the row was the exact midpoint of the other two. In dark theme the wash composites to#1e1e1e, between the list's#121212and the chrome's#282b2f, landing within a couple of levels of that old midpoint.This avoids
color-mix(), which starts at Chrome 111 and Safari iOS 16.2, both above our floor. It also avoids a half-opacity::beforeoverlay, which works but leans on z-index to get the color right.One for @moshebaricdo
The wash comes out neutral, and the chrome is faintly cool —
#282b2fruns 7 levels blue, where#1e1e1eruns zero. Ideally the rows would sit in the same family as the chrome.That isn't reachable today: in dark theme the alpha tokens are all white, and the list background under them,
--neutral-base-black#121212, is the one step in the ramp with no tint, so any wash lands neutral. A cool result needs a cool color at partial alpha, which CSS can't do withoutcolor-mix()orrgb(from …)— both above our browser floor.The underlying gap is that nothing lives between
#121212and#282b2f. A step in there would be cool by construction and would serve dark-theme striping anywhere, not just this dialog. Happy to file that separately if it's worth doing — the wash is a fine placeholder until then.Testing
Loaded the track picker locally and sampled the rendered pixels: list
#121212, alternate row#1e1e1e, chrome#282b2f. The token resolves under every brand —brandLegacyShim.cssdefines it forcodeandcodeai, mapping to--neutral-white-alpha-5in dark theme.