Skip to content

Fix Now Playing layout shift from the unconstrained backdrop image - #89

Merged
sanylax0 merged 1 commit into
mainfrom
claude/repo-review-improvements-yvk3t7-backdrop-layout
Jul 18, 2026
Merged

sanylax0 merged 1 commit into
mainfrom
claude/repo-review-improvements-yvk3t7-backdrop-layout

Conversation

@sanylax2

Copy link
Copy Markdown
Collaborator

What

Follow-up to #88: the cached-backdrop rewrite dropped the GeometryReader that used to pin the artwork's frame to the screen. A bare .resizable().scaledToFill() Image reports its own scaled size to layout, so the backdrop ZStack inflated wider than the screen and the page's centered content (title, transport, chevrons) was shoved off to the side.

How

The image now lives in an .overlay on a Color.clear, which takes exactly the proposed size — the fill image renders and overflows visually (then .clipped() trims it) but can never influence the layout again. Gradient fallback, crossfade, and scrim are unchanged.

Testing

On device: Now Playing content should be centered again with the blurred art filling edge-to-edge; rotate/pager-flip to confirm no sideways offset anywhere.

🤖 Generated with Claude Code

https://claude.ai/code/session_013TJoWkqg8bzkGdzxWhWjWP


Generated by Claude Code

The cached-backdrop rewrite dropped the GeometryReader that used to pin
the artwork's frame; a bare scaledToFill Image reports its own scaled
size, inflating the backdrop ZStack past the screen and shoving the
page's centered content sideways. Contain the image in a Color.clear
overlay so it fills without ever influencing layout.
@sanylax0
sanylax0 merged commit 6cdfef0 into main Jul 18, 2026
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants