Add real-time accent color clipping to glass indicator#3
Open
ryanashcraft wants to merge 9 commits intomainfrom
Open
Add real-time accent color clipping to glass indicator#3ryanashcraft wants to merge 9 commits intomainfrom
ryanashcraft wants to merge 9 commits intomainfrom
Conversation
Replace discrete per-index color switching with continuous accent masking that tracks the glass indicator's animated position. Each segment now has two content views (base inactive + accent active), with the accent view masked to the indicator rect via CAShapeLayer — matching native UITabBar clipping behavior during drag. Key changes: - Track _UILiquidLensView presentation layer position via CADisplayLink - Structural fallback finds indicator as sibling of segments container - Segment-frame fallback with diagnostic log if indicator not found - DisplayLinkProxy avoids CADisplayLink retain cycle - Display link pauses after 3 stable frames to save power - Presentation-layer coordinate conversion on both sides - Fix retain cycle in onReselect closure with [weak coordinator] Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add 1.1.0 changelog entry for real-time accent color clipping. Remove "Color clipping during drag" from known limitations since it's now been addressed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4ec0371 to
a3f1143
Compare
Fixes accent mask getting stuck when user pauses mid-drag then resumes. The display link would pause after 3 stable frames and never restart because only touchesBegan unpaused it. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Mask the base (inactive) content view with the inverse of the indicator rect so the two layers never overlap. Previously both rendered at the mask boundary, causing the inactive color to bleed through due to antialiasing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Ensures accent masks track the indicator's settle animation after the user lifts their finger or the touch is cancelled. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace rectangular mask paths with rounded rect using cornerRadius of height/2, matching the capsule shape of the glass indicator. Converts the full indicator capsule into local coordinates so rounded corners are preserved even during partial overlap. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
This is great! Excited to see what you will come up with for the overlapping items. 😝 |
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.
Track the glass indicator's animated position via CADisplayLink and mask accent-colored content views to it, matching native UITabBar clipping behavior during drag.