Repository navigation
spec(Slider): every pointer tracks from the grab point; a finger's release coasts - #9407
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
AI review status for this pull request.
|
Contributor
Author
|
/approve-spec 5458551 |
Contributor
Author
|
/approve-spec 4c022ba |
4 tasks done
This branch was successfully deployed
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.
Maintainer impact
onChangeEndfires when it stops, with the value on screen. Mouse and pen drags end at release.onChangeEndnow arrives after the coast settles (about 0.6 s). Ships as a patch[fix]by the owner's ruling (2026-11-01: "touch timing: I don't think these are breaking. Can you name a desirable scenario?").Exact decision needed
How every pointer drags a Slider thumb, and when a finger's drag ends.
Existing authority searched
component:Slider(FR1–FR6, ORD2, DEC-1–DEC-3),spec:AST-094(FR4, FR9, FR13, FR19, FR42, FR43),spec:AST-017(FR1, FR3, FR28, FR31, FR53, DEC-25),spec:AST-020/FR15,spec:AST-085,design:reduced-motion,design:user-states,architecture:public-component-apiINV16. None states how a pointer drags a thumb or whenonChangeEndfires after a coast; Slider's record owns both.Decision
The owner chose these on 2026-11-01: every pointer tracks from the grab point, and a finger's release coasts with
onChangeEndat its end.onChangeEndfires once its coast settles.onChangecontinues through a finger's coast;onChangeEndreports the rendered value once the thumb has stopped.springs.sliderReleasemotion role (touch only); track tap/click still sets the value; reduced-motion behavior. Marked as an implementation gap.[fix]by the owner's ruling (2026-11-01). No desirable use depends on the released drag: a thumb press that jumps the value is a defect, a slow drag still ends at the lift, andonChangeEndstill carries the value the person sees settle; only a touch flick'sonChangeEndarrives later.This unblocks #8189, #8190 and #8669, which rebase onto it and name their rule FR7 in the record's current folder. #8168 is to be dropped: #8190 already carries its translate-based movement.
Rejected alternatives
Claim scope and non-goals
Pointer tracking, the finger's coast and
onChangeEndtiming only. Keyboard (AR1), anatomy, theming targets and Tooltip/Field composition are unchanged. Focus placement after a finger drag is not decided here.Evidence and implementation relationship
UIKit measurements of UISlider (target, threshold, release spring, projection share) and the before/after browser tests in the implementation pull requests above. No implementation in this PR.
Writing rubric results
Scope
Validation
pnpm install --frozen-lockfilepnpm check:knowledge: Knowledge templates and records are aligned.git diff --check: clean