Repository navigation
Bleed now-playing gradient halfway into Library/Queue backdrops - #127
Merged
Merged
Conversation
Replace the per-page edge-crossfade with a single shared PagerBackdrop behind the whole vertical scroll content. It draws the album gradient at full strength over the now-playing page and continues its top/bottom edge colors halfway into the Library and Up Next pages before settling into the flat systemGroupedBackground, so paging feels continuous instead of hitting a flat wall. The layer is static and scrolls with the content, so it needs no per-scroll-frame state (removed scrollFraction / onScrollGeometryChange / NowPlayingBackgroundFade). Pages are now transparent; Up Next hides its list background so the bleed shows through.
sanylax0
approved these changes
Jul 21, 2026
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.
Summary
On the vertical pager, the now-playing album gradient previously ended at the page boundary and the Library / Up Next (Queue) pages were a flat
systemGroupedBackground(black in dark mode / white in light), so paging hit a flat wall. This makes the album gradient persist ("bleed") about halfway into the Library and Up Next screens before fading into the flat background, so paging feels continuous.Approach
Replaced the previous per-page backgrounds / edge-crossfade with a single shared
PagerBackdropbehind the whole scroll content (sized to the full 3-page height). It composes: basesystemGroupedBackground; a top-extensionLinearGradient(flat → gradient top-edge color) over the Library page's bottom half; the reusedAlbumBackdropat full strength over the now-playing page; a bottom-extensionLinearGradient(gradient bottom-edge color → flat) over the Up Next page's top half. Because it's one static layer that scrolls with the content, the gradient stays continuous across page boundaries with no seam and no per-scroll-frame work.Edge colors reuse the same palette
AlbumBackdropdraws (BackdropRendererper-URL cache), with aTheme.gradientColors(seed:)fallback before the artwork palette resolves so the bleed is always present.Cleanup
Removed the now-unused
NowPlayingBackgroundFade, thescrollFractionproperty onMainPagerState, and the.onScrollGeometryChangehandler (page-tracking kept). Added.scrollContentBackground(.hidden)to the Up NextList(Library already had it) so the bleed shows through; queue/library rows stay opaque for legibility.Files
App/Continuity/Views/MainPagerView.swiftApp/Continuity/Views/Theme.swiftApp/Continuity/Views/UpNextView.swiftTesting
App-target SwiftUI can't be compiled on Linux CI (only ContinuityCore is Linux-testable); validated by review. Tuned for dark mode — light mode may need follow-up tuning. Device/simulator render verification pending.
Slack thread: https://continuity-org.slack.com/archives/C0BCTF2C5NK/p1784611489906939
Generated by Claude Code