Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2001 commits
Select commit Hold shift + click to select a range
e6ab0b9
Merge #8061 (d9a1e1ad19: an in-band touch on an element wider than th…
vjeux Oct 27, 2026
e7b5b3c
Merge #8076 (e6ab0b9cd9: #8061 d9a1e1ad19, an in-band screen-edge tou…
vjeux Oct 27, 2026
e718566
Merge #8270 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641) into #8309
vjeux Oct 27, 2026
1e44dc3
Merge #8315 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641) into #8336
vjeux Oct 27, 2026
9486526
Merge #8309 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8641's moving…
vjeux Oct 27, 2026
03155c3
Merge the #8589 watcher-test fix (1b6e19f7b0: the real-touch test rea…
vjeux Oct 27, 2026
3d7fa2e
Merge #8336 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
82fe8b7
Merge #8356 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
d835d1c
Merge #8320 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
ee5387a
Merge #8293 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
aebbb7c
test(motion): retire the gate that kept the menus off the gestures table
vjeux Oct 27, 2026
23ade34
Merge #8358 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
9fa271e
Merge #8360 (#8076 e6ab0b9cd9: FR18 per DEC-22, #8641; #8589's watche…
vjeux Oct 27, 2026
110a7bd
Merge #8336 03155c374e (F2's fZ: #8076 e6ab0b9cd9, the watcher-test f…
vjeux Oct 27, 2026
ce2777f
Merge #8336 03155c374e (the dependencies of #8205)
vjeux Oct 27, 2026
a01f567
Merge the helper base ce2777fa87 (this PR's parents only)
vjeux Oct 27, 2026
281a621
Merge #8205 a01f567dc9 (F2's fZ, #8336 03155c374e)
vjeux Oct 27, 2026
e90fc8a
test(gestures): a finger from a browser that sends Touch Events but e…
vjeux Oct 27, 2026
00ab452
fix(gestures): the host reads no Touch Events where it takes fingers …
vjeux Oct 27, 2026
1d43d0d
Merge #8336 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
898d317
Merge #8320 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
169cd73
Merge #8293 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
cb552b2
Merge #8356 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
11a1a2d
test(motion): the uikit barrel keeps UIKIT_CLICK for importers writte…
vjeux Oct 27, 2026
d8651c2
fix(motion): the uikit barrel keeps UIKIT_CLICK, with the click guard…
vjeux Oct 27, 2026
c246cf6
Merge #8360 (the uikit barrel keeps UIKIT_CLICK) into the every-point…
vjeux Oct 27, 2026
8966147
Merge #8076 (e6ab0b9c: DEC-22's 10 px rule and the arena fix) into th…
vjeux Oct 27, 2026
4457556
Merge main (844d734d: the shared touch hit area, #8635) into the sele…
vjeux Oct 27, 2026
741c291
Merge main (the shared touch hit area merged as #8635, taken as is) a…
vjeux Oct 27, 2026
9e328e7
test(interaction-harness): wheel and pen input drivers for every-poin…
vjeux Oct 27, 2026
f562631
Merge #8358 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
22f0517
Merge #8360 (the host takes a finger once where it reads its pointer …
vjeux Oct 27, 2026
96a7f00
Merge #8666 (wheel and pen input drivers) into #8665 for FR43 follow-ups
vjeux Oct 27, 2026
66c863f
Merge #8535 (the backward self-test dates the run by its own clock) i…
vjeux Oct 27, 2026
ad9e942
test(interaction-harness): wheel() resolves once the page has the step
vjeux Oct 27, 2026
45eade4
Merge #8666 ad9e94246d (wheel() resolves once the page has the step) …
vjeux Oct 27, 2026
d56c7ac
Merge #8085 (741c291c2f: re-folded on main with her #8635 merged, #80…
vjeux Oct 27, 2026
6f56ef9
test(core): Core's root, hooks and utils entries carry no gesture code
vjeux Oct 27, 2026
57b5bbd
fix(core): the haptic switch's attribute lives in utils, so Core's pu…
vjeux Oct 27, 2026
32ccda6
test(gestures): a claiming recognizer keeps its blocking touchmove un…
vjeux Oct 27, 2026
dbf5390
fix(gestures): a claiming recognizer's element keeps its blocking tou…
vjeux Oct 27, 2026
78d4c1d
test(gestures): a mouse or a pen pan takes no text selection once it …
vjeux Oct 27, 2026
7356a69
fix(gestures): a mouse or a pen pan takes no text selection once it c…
vjeux Oct 27, 2026
c69cf92
docs(gestures): the README and changeset name the claiming touchmove,…
vjeux Oct 27, 2026
7fc24e1
test(gestures): a right click or a ctrl-click on macOS starts no pres…
vjeux Oct 27, 2026
e78b2da
fix(gestures): a ctrl-click on macOS starts no press, as a right clic…
vjeux Oct 27, 2026
f4be8f0
Merge #8360 (the haptic switch's attribute lives in utils: Core's pub…
vjeux Oct 27, 2026
052a0e2
Merge #8665 f4be8f0f27 into the FR43 harness helper
vjeux Oct 27, 2026
3fb31dd
Merge main (6aea9bda01: #8663 merged, one release policy) into the ex…
vjeux Oct 27, 2026
b246458
test(interaction-harness): pen() presses once the page has presented …
vjeux Oct 27, 2026
84bca2c
Merge #8666 b246458d75 (pen() presses once the page has presented two…
vjeux Oct 27, 2026
170162d
Merge #8076 (main's #8663 rows in motion/README.md) into #8270
vjeux Oct 27, 2026
58dbb1a
Merge #8270 (#8076: main's #8663 rows in motion/README.md) into #8309
vjeux Oct 27, 2026
2e77071
Merge #8309 (#8076: main's #8663 rows in motion/README.md) into #8315
vjeux Oct 27, 2026
3b1b26d
Merge #8315 (#8076: main's #8663 rows in motion/README.md) into #8336
vjeux Oct 27, 2026
ca71fce
Merge #8336 (#8076: main's #8663 rows in motion/README.md) into #8320
vjeux Oct 27, 2026
fe527be
Merge #8320 (#8076: main's #8663 rows in motion/README.md; this pull …
vjeux Oct 27, 2026
0dd683d
Merge #8358 (#8076: main's #8663 rows in motion/README.md) into #8360
vjeux Oct 27, 2026
c5465c2
Merge #8356 (#8076: main's #8663 rows in motion/README.md) into #8358
vjeux Oct 27, 2026
52e5eb7
Merge #8293 (#8076: main's #8663 rows in motion/README.md) into #8356
vjeux Oct 27, 2026
f785deb
Merge #8360 (#8076: main's #8663 rows in motion/README.md) into the e…
vjeux Oct 27, 2026
2121d8f
Merge the row press release change (with #8076 at 3fb31ddb) into the …
vjeux Oct 27, 2026
01b48e5
Merge #8076 (3fb31ddb: main through #8663, the motion README's rows u…
vjeux Oct 27, 2026
3e73461
Merge the list dividers change (with #8076 at 3fb31ddb) into the sele…
vjeux Oct 27, 2026
b062955
Merge the selection hold change (with #8076 at 3fb31ddb) into the tou…
vjeux Oct 27, 2026
423bddd
Merge #8336 3b1b26d530 (F2's fZ2: the host reads a finger once, from …
vjeux Oct 27, 2026
6b6cb57
Merge #8336 3b1b26d530 (the dependencies of #8205)
vjeux Oct 27, 2026
0dbeabf
Merge the helper base 6b6cb57b7a (this PR's parents only)
vjeux Oct 27, 2026
cc5353d
Merge #8205 0dbeabfaaa (F2's fZ2, #8336 3b1b26d530)
vjeux Oct 27, 2026
cad75e1
Merge #8665 f785debd7b (on #8076 3fb31ddb3e) into the FR43 harness he…
vjeux Oct 27, 2026
a3511eb
test(gestures): a mouse drag a pan claimed selects no page text, in W…
vjeux Oct 27, 2026
389db4e
fix(core): usePressTracker rebuilds its tracker when its options change
vjeux Oct 27, 2026
49f872a
fix(gestures): a claimed mouse or pen drag holds selection off docume…
vjeux Oct 27, 2026
c1f24bf
test(gestures): a fine-pointer finger's press on an action group ends…
vjeux Oct 27, 2026
83fd470
Merge #8665 c1f24bf8ce (the WebKit document-wide selection hold) into…
vjeux Oct 27, 2026
48e8fb1
Merge #8085 (b06295571c: on #8076 3fb31ddb3e) into this change
vjeux Oct 27, 2026
9adc6f2
Merge #8360 (only the utils entry is pinned gesture-free) into the ev…
vjeux Oct 27, 2026
5588013
test(core): only the utils entry is pinned gesture-free; the root and…
vjeux Oct 27, 2026
f8ef6de
Merge #8665 9adc6f230b into the FR43 harness helper
vjeux Oct 27, 2026
0b2b013
test(gestures): a recognizer inside a shadow root gets its finger and…
vjeux Oct 27, 2026
c06acd5
fix(gestures): the host resolves what an input landed on through the …
vjeux Oct 27, 2026
3c8817f
test(gestures): the drag selection case reads the page once the selec…
vjeux Oct 27, 2026
98093a8
Merge #8665 3c8817f57d (shadow-root routing) into the FR43 harness he…
vjeux Oct 27, 2026
620fbfe
test(gestures): a recognizer inside a shadow root gets its finger and…
vjeux Oct 27, 2026
69cece7
Merge harness/web-input-drivers-on-f2 98093a84f3 (#8665 3c8817f57d, #…
vjeux Oct 27, 2026
13540ee
refactor(NumberInput): a press's own click is bounded by the click gu…
vjeux Oct 27, 2026
ed40bc8
test(NumberInput): a finger's move and lift send their pointer events…
vjeux Oct 27, 2026
acfde90
test(NumberInput): under a fine pointer the steppers' press is the ge…
vjeux Oct 27, 2026
20f1841
feat(NumberInput): one press tracker serves every pointer on the step…
vjeux Oct 27, 2026
203db56
test(NumberInput): a pen presses the steppers in a real browser under…
vjeux Oct 27, 2026
60ed024
test(NumberInput): a right click's press names no pointer for the foc…
vjeux Oct 27, 2026
d9c6430
fix(NumberInput): only a primary click names the pointer a stepper pr…
vjeux Oct 27, 2026
c3c119a
fix(gestures): the host resolves what an input landed on through the …
vjeux Oct 27, 2026
53a1e69
Merge #8336 (a recognizer inside a shadow root gets its finger: the h…
vjeux Oct 27, 2026
9a0d046
Merge #8320 (#8336: a recognizer inside a shadow root gets its finger…
vjeux Oct 27, 2026
6e42f12
Merge #8358 (#8336: a recognizer inside a shadow root gets its finger…
vjeux Oct 27, 2026
27d3958
Merge #8356 (#8336: a recognizer inside a shadow root gets its finger…
vjeux Oct 27, 2026
5805486
Merge #8293 (#8336: a recognizer inside a shadow root gets its finger…
vjeux Oct 27, 2026
c2cd3ba
Merge #8360 (#8336: a recognizer inside a shadow root gets its finger…
vjeux Oct 27, 2026
eac522c
fix(List): a link row follows its link from its touch hit area; the t…
vjeux Oct 27, 2026
b039876
test(core): the held-dip proofs wait for the dip to finish, not for 2…
vjeux Oct 27, 2026
ad7aa98
Merge #8665 c2cd3bac69 (on #8336 c3c119a466) into the FR43 harness he…
vjeux Oct 27, 2026
9e56700
Merge #8085 (eac522ce34) into this change
vjeux Oct 27, 2026
a0522db
fix(List): the touch target reads a page's size in rem or em, and aga…
vjeux Oct 27, 2026
e0587da
docs(core): the touch target says where 44 px isn't reached, and that…
vjeux Oct 27, 2026
c12ec3c
Merge #8085 (a0522db8ca: the touch target reads px, rem or em, and is…
vjeux Oct 27, 2026
1fc0c9e
docs(core): the touch target token reads px, rem or em, and is read a…
vjeux Oct 27, 2026
41d3e61
test(useMenuPress): the trigger keeps the released tolerance on a fin…
vjeux Oct 27, 2026
d06691b
fix(useMenuPress): the trigger takes its tolerance when its press sta…
vjeux Oct 27, 2026
a3527b9
test(useLongPress): the travel is measured on each axis, as its docum…
vjeux Oct 27, 2026
f62179d
fix(useLongPress): the tolerance is measured on each axis again, as d…
vjeux Oct 27, 2026
120350b
test(gestures): a scroll and its brake see a finger inside an open sh…
vjeux Oct 27, 2026
a0c57a3
fix(gestures): a scroll and its brake compare a finger along the flat…
vjeux Oct 27, 2026
a8b174a
Merge #8336 (the host compares a finger with a scroller along the fla…
vjeux Oct 27, 2026
c1186e4
Merge #8320 (#8336: the host compares a finger with a scroller along …
vjeux Oct 27, 2026
886749b
Merge #8293 (#8336: the host compares a finger with a scroller along …
vjeux Oct 27, 2026
af9cb4e
Merge #8356 (#8336: the host compares a finger with a scroller along …
vjeux Oct 27, 2026
1ffc9d8
Merge #8360 (the menu trigger takes its tolerance when its press star…
vjeux Oct 27, 2026
b390514
Merge #8358 (useLongPress measures its tolerance on each axis again, …
vjeux Oct 27, 2026
573b134
fix(List): only a tap in a link row's touch band follows its link
vjeux Oct 27, 2026
0f2397e
test(gestures): a claimed pen's stylus touchend is cancelled, as a fi…
vjeux Oct 27, 2026
5a64900
fix(gestures): a claimed pen's stylus touchend is cancelled, as a fin…
vjeux Oct 27, 2026
8687cd6
Merge #8665 5a64900f5e (flat-tree scroll checks, stylus touchend canc…
vjeux Oct 27, 2026
264c66d
test(gestures): a second finger fails a one-finger pan where fingers …
vjeux Oct 27, 2026
54b0a68
fix(gestures): a second finger fails a one-finger pan wherever finger…
vjeux Oct 27, 2026
5f6bc04
refactor(useLongPress): the per-press tolerance stays off the public …
vjeux Oct 27, 2026
6b3e60d
docs(gestures): the host's header and the host-owner changeset descri…
vjeux Oct 27, 2026
8c18aae
fix(List): the touch target is a plain 44 px until a token admits a p…
vjeux Oct 27, 2026
7279b3e
Merge #8665 6b3e60d3d8 (F2's reviewer-raised fixes) into the FR43 har…
vjeux Oct 27, 2026
0543c3e
Merge #8085 (8c18aae63e: the touch target is a plain 44 px until a to…
vjeux Oct 27, 2026
01cbe5c
test(core): a page raises the touch target through the token, read in…
vjeux Oct 27, 2026
59d866a
feat(core): the touch hit area reads the touch target token, in px, r…
vjeux Oct 27, 2026
5326798
test(gestures): a real-touch proof of the screen-edge pan on an eleme…
vjeux Oct 27, 2026
5fe3deb
test(gestures): a pinch whose second finger lands on another one-fing…
vjeux Oct 27, 2026
30b9aac
fix(gestures): the second-finger check runs again once the new finger…
vjeux Oct 27, 2026
4b8c2b0
docs(gestures): two changesets, the arena's claim comment and a test …
vjeux Oct 27, 2026
8d7da28
test(gestures): the screen-edge pan is locked to a finger; a widened …
vjeux Oct 27, 2026
83b2084
fix(gestures): the screen-edge pan is a finger's only; its options ta…
vjeux Oct 27, 2026
60fa6ea
feat(interaction-harness): sampleCurve samples a ::before or ::after
vjeux Oct 27, 2026
da02df9
test(selectionLock): a finger's and a pen's hold take the lock under …
vjeux Oct 27, 2026
42baf0f
fix(selectionLock): a finger's and a pen's hold take the lock under a…
vjeux Oct 27, 2026
ad5a5e4
test(NumberInput): a finger or pen held on a stepper selects nothing …
vjeux Oct 27, 2026
f7c19f7
Merge harness/web-input-drivers-on-f2 60fa6ea3e5 (#8665 6b3e60d3d8, s…
vjeux Oct 27, 2026
12ac451
Merge #8665 42baf0feb9 (merged FR41: a finger's and a pen's hold lock…
vjeux Oct 27, 2026
ec793b8
Merge the base 12ac451bd9 (#8665 42baf0feb9 and X1's harness helper 6…
vjeux Oct 27, 2026
da1099e
docs(List): the touch target comments cite component:List FR10, now c…
vjeux Oct 27, 2026
538039c
test(clickGuard): a guard whose view goes away lets its window run ou…
vjeux Oct 27, 2026
9c1d352
test(gestures): a cancelled mouse or pen press lifts the document-wid…
vjeux Oct 27, 2026
2d365a7
fix(gestures): a click guard whose view went away drops without touch…
vjeux Oct 27, 2026
156b9d7
test(clickGuard): no guard outlives the test that armed it
vjeux Oct 27, 2026
9960efe
fix(test-utils): the shared setup disarms every click guard as each t…
vjeux Oct 27, 2026
4130bcc
test(List): the busy-first-frame release proof runs in WebKit too
vjeux Oct 27, 2026
4b337df
test(interaction-harness): openStory returns once Storybook has finis…
vjeux Oct 27, 2026
96153e7
test(List): a busy first frame after the lift still plays the whole r…
vjeux Oct 27, 2026
d9d4468
test(core): a release ends when its animation does, not on a clock a …
vjeux Oct 27, 2026
1fd7580
fix(core): a release ends when its animation does, however late a bus…
vjeux Oct 27, 2026
fa8759f
test(interaction-harness): a busy-window proof can judge a component …
vjeux Oct 27, 2026
c089f83
test(interaction-harness): a wheel step at DPR 3 reaches the page as …
vjeux Oct 27, 2026
fc667ed
test(interaction-harness): a scripted touch's click, where the engine…
vjeux Oct 27, 2026
59652e5
revert(interaction-harness): sampleCurve's pseudoElement option leave…
vjeux Oct 27, 2026
8a3a099
test(interaction-harness): a short animation's busy proof is judged o…
vjeux Oct 28, 2026
1e7b500
revert(List): dividers stay drawn under a press, and no selection hold
vjeux Oct 28, 2026
a04559b
Merge the row press release change (#8077) into the touch row target …
vjeux Oct 28, 2026
6527c0f
fix(List): under a finger, a tap in a link row's own padding follows …
vjeux Oct 28, 2026
44daa7c
test(core): keep the press-coverage guard for components styled throu…
vjeux Oct 28, 2026
3846b6a
Merge main 70ea85903c into #8073
vjeux Oct 28, 2026
ca2543d
Merge remote-tracking branch 'origin/main' into HEAD
cixzhang Oct 28, 2026
10c62f5
test(core): a mouse press ending early leaves a held row to its owner
vjeux Oct 28, 2026
fdf8766
fix(core): a press ended early clears its paint through the one writer
vjeux Oct 28, 2026
63128d3
test(core): pressFeedback.test.ts drops its unused durationToMs import
vjeux Oct 28, 2026
f24e872
Merge #8446 ca2543df75 and #8073 63128d3530 into #8076
vjeux Oct 28, 2026
8c70274
Merge main (70ea8590: #8045, #8046 landed)
cixzhang Oct 28, 2026
5c1d37f
Merge main (70ea8590: #8045, #8046 landed)
cixzhang Oct 28, 2026
6f994bc
docs(core): the gestures README names both writers of the press attri…
vjeux Oct 28, 2026
8daabc8
Merge #8076 6f994bcdfb into #8360
vjeux Oct 28, 2026
73e90c2
docs(core): pressFeedback says paintPress writes the presses it track…
vjeux Oct 28, 2026
e6ca2f0
Merge #8360 73e90c2fa6 into #8665
vjeux Oct 28, 2026
b6034ad
Merge main 84e8552562 into #8666 (harness files: main's #8045 text wi…
vjeux Oct 28, 2026
678490f
test(gestures): under a fine pointer the host drops its page listener…
vjeux Oct 28, 2026
c22d219
fix(gestures): under a fine pointer the host drops its page listeners…
vjeux Oct 28, 2026
62870cd
docs(spec): AST-094 FR41 says a claimed mouse or pen drag suppresses …
vjeux Oct 28, 2026
e32bfc2
test(gestures): a pen's barrel button starts no press, as the gesture…
vjeux Oct 28, 2026
f4dae89
fix(gestures): a pen's barrel button starts no press
vjeux Oct 28, 2026
33511d9
docs(gestures): the README says what a pen does, and how the host lis…
vjeux Oct 28, 2026
c8d3056
Merge the touch foundation's folded head (#8076) into the row press r…
vjeux Oct 28, 2026
18a6fec
Merge main into the row press release change
vjeux Oct 28, 2026
323a8fd
docs(changeset): the press-tracking changeset names both writers of t…
vjeux Oct 28, 2026
8421812
Merge the row press release change's folded head (#8077) into the tou…
vjeux Oct 28, 2026
9f62384
Merge the canonical gesture foundation (#8360) into the row press rel…
vjeux Oct 28, 2026
a67c537
Merge the row press release change (#8077, on the canonical gesture f…
vjeux Oct 28, 2026
08a2a28
docs(interaction-harness): the engine-limits table aligns again, and …
vjeux Oct 28, 2026
f3b1290
test(useMenuPress): a finger held on the trigger keeps FR29's drift a…
vjeux Oct 29, 2026
1e1431f
fix(useMenuPress): a finger held on the trigger keeps FR29's drift al…
vjeux Oct 29, 2026
b184841
fix(core): a touch press's release lasts until its animation ends, ho…
vjeux Oct 29, 2026
7cee980
Merge the release-end controller change (split out on review) into th…
vjeux Oct 29, 2026
e369d36
docs(List): the row press layer's notes point at rowPressLayer.ts, an…
vjeux Oct 29, 2026
62d1808
Merge the row press release change (#8077, with its release-end contr…
vjeux Oct 29, 2026
aa87d85
test(core): the press coverage guard drops the xstyle exemption no fi…
vjeux Oct 29, 2026
9460fdb
test(core): drop a stylesheet-test filter and a helper the row layer …
vjeux Oct 29, 2026
8d482a2
fix(List): Item keeps its docblock, and the touch hit area's spec cov…
vjeux Oct 29, 2026
4f89e33
Merge the row press release change (#8077) into the touch row target …
vjeux Oct 29, 2026
ae13e0e
fix(List): a row's touch band wins over the row after it and starts p…
vjeux Oct 29, 2026
d9e7e85
fix(List): a swipeable row's touch band wins over the row after it, a…
vjeux Oct 29, 2026
c7e3ec3
fix(List): raise only the rows Item serves swipe actions on
vjeux Oct 29, 2026
1682f96
chore(gestures): the gesture files on this line have no unused bindings
vjeux Oct 29, 2026
856c4d1
test(gestures): a rotation re-based on every change releases at its r…
vjeux Oct 29, 2026
8310bcb
fix(gestures): a re-based rotation keeps its release velocity
vjeux Oct 29, 2026
fe7f5f9
test(motion): the Reduce Motion late-dip proof reads what the dip ani…
vjeux Oct 29, 2026
e4713e8
test(gestures): a finger inside an open shadow root is down in its sc…
vjeux Oct 29, 2026
839b33c
fix(gestures): a finger inside an open shadow root is compared along …
vjeux Oct 29, 2026
01d358b
test(gestures): an element stays an action group while any of its att…
vjeux Oct 29, 2026
1251af1
fix(gestures): an element is an action group while any of its attachm…
vjeux Oct 29, 2026
826534b
test(gestures): a tap on a moving sheet's shadow-root content reaches…
vjeux Oct 29, 2026
66e17cb
fix(gestures): the presented hit test descends into open shadow roots
vjeux Oct 29, 2026
1bf9da8
test(gestures): no touch-action rule stays once the last marked eleme…
vjeux Oct 29, 2026
db3d3f7
fix(gestures): a document's or shadow root's touch-action rules go wi…
vjeux Oct 29, 2026
82579aa
docs(gestures): presented hit testing names its review condition, and…
vjeux Oct 29, 2026
955fed4
docs(gestures): the README and the barrel point Lab at @astryxdesign/…
vjeux Oct 29, 2026
38acf83
docs(core): the input stream's notes name the stops it fixes, what st…
vjeux Oct 29, 2026
121937a
docs(changeset): the build changeset names the treeshakeCompensation …
vjeux Oct 29, 2026
2e2f92a
test(gestures): real-touch proofs for a still finger's sub-pixel jitt…
vjeux Oct 29, 2026
75392b2
test(gestures): a retargeted tap with only watchers attached activate…
vjeux Oct 29, 2026
1363a95
Merge #8360 75392b296a into #8665
vjeux Oct 29, 2026
4362f35
test(gestures): an element stays a group while any of its gestures is…
vjeux Oct 29, 2026
d975503
Merge #8360 75392b296a into #8336
vjeux Oct 29, 2026
ecc8779
fix(List): document the divider width the touch band reads
vjeux Oct 29, 2026
045f666
docs(core): the input stream's notes no longer list click among the g…
vjeux Oct 29, 2026
1adb531
Merge #8360 045f666f7a into #8665
vjeux Oct 29, 2026
bf1a58b
test(gestures): under a fine pointer an armed press cancels a claimed…
vjeux Oct 29, 2026
1585de0
fix(gestures): under a fine pointer an armed press cancels a claimed …
vjeux Oct 29, 2026
f46d28f
test(gestures): a press claimed at its own pointerdown keeps the page…
vjeux Oct 29, 2026
49c8e40
Merge #8085 (ecc877921d: main folded) into this change
vjeux Oct 29, 2026
bce55d5
fix(gestures): a press that claims at its own pointerdown keeps the p…
vjeux Oct 29, 2026
4de6442
docs(gestures): the host's notes, the selection test and FR41 say wha…
vjeux Oct 29, 2026
e99ac68
test(NumberInput): the WebKit tap proofs and the canceled pointerdown…
vjeux Oct 29, 2026
5741e27
Merge #8205 e99ac6893d (the WebKit tap proofs and the canceled pointe…
vjeux Oct 29, 2026
bc00fc3
test(NumberInput): the capsule's WebKit tap proof names its measured …
vjeux Oct 29, 2026
c6c02fc
docs(spec): FR41 says what a claimed drag does with the page's select…
vjeux Oct 29, 2026
283e7b2
Merge #8665 c6c02fcf2b into #8336
vjeux Oct 29, 2026
8d35612
Merge #8666 08a2a28331 (wheel and pen input drivers) into #8665 c6c02…
vjeux Oct 29, 2026
4c0e0a5
Merge harness/web-input-drivers-on-8665 8d35612855 (#8665 c6c02fcf2b,…
vjeux Oct 29, 2026
f9728e6
Merge #8241 49c8e40b0b and #8336 283e7b2e37
vjeux Oct 29, 2026
747b91a
Merge the base f9728e605b (#8241 49c8e40b0b and #8336 283e7b2e37)
vjeux Oct 29, 2026
902ef34
test(NumberInput): a finger's move and lift come after their pointer …
vjeux Oct 29, 2026
699d690
test(NumberInput): the hold proofs time each step from its own beat, …
vjeux Oct 29, 2026
bcb5f28
Merge #8205 67d597f80c (#8241 49c8e40b0b and #8336 283e7b2e37)
vjeux Oct 29, 2026
f91c157
Merge #8218 bcb5f28188 (#8241 49c8e40b0b and #8336 283e7b2e37)
vjeux Oct 29, 2026
2d1f7b4
Merge the harness helper 4c0e0a51dc (#8665 c6c02fcf2b and #8666 08a2a…
vjeux Oct 29, 2026
185e083
Merge the base 2d1f7b48df (#8218 bcb5f28188 and the harness helper 4c…
vjeux Oct 29, 2026
d217b02
test(NumberInput): the fine-pointer listener proof follows the host's…
vjeux Oct 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .changeset/build-stylex-cross-file-consts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/build': patch
---

[fix] `astryxStylex` resolves `defineConsts` values read from another file. With the `{stylexOptions}` form (the one Storybook uses), a file that read only constants from a `.stylex.ts` module lost that import once StyleX compiled it, so the constants never reached the CSS: a constant used as a media-query key failed the build ("Invalid empty selector") and one used as a value shipped as a custom property nothing declares. In either form, a constant defined on the other side of the layer split, or in an Astryx package (compiled with the library class-name prefix) and read from an app file (compiled with its own), stayed unresolved. The `{stylexOptions}` form now passes StyleX `treeshakeCompensation: true` by default (before, its babel pass ran with StyleX's default, `false`), as the plugin form already does; pass `treeshakeCompensation: false` in `stylexOptions` to restore the old behavior.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/click-guard.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture recognizers and the menu press model share one guard for the browser's click after a gesture that already acted, swallowing it for 400ms or until the next press. Keyboard and assistive-technology clicks (`detail` 0) always pass.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-arena-moving-cancel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: a claimed gesture cancelled while one of its fingers is moving keeps that moving finger claimed until it lifts, so the page never takes the drag over midway; a resting finger is still given back when its gesture is cancelled. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-browser-negotiation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: touch-action derivation, the native scroll probe and haptics for the gesture system. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-hook-fixes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture hooks call nothing back after unmount; `usePressTracker` brakes with the host by default and keeps one tracker, so an option change or a new ref never drops a press in progress; the recognizer's arena plumbing is `protected`. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-host-fixes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: gesture host fixes from review. A page scroll under a still finger keeps the press and its click; watchers and touches nothing can claim get passive listeners only; a claimed pen holds only its own stylus touches; an element's own `touch-action` is never widened; slotted content scrolls with its shadow-tree scroller. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-host-owner.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture host becomes the one document-level touch owner: the finger count, touch gates, and a kept press for continuous-tracking controls, whose element gets `touch-action: manipulation` where the pointer is coarse. A scroll lock's page hold and the finger-scroll watch keep their own listeners and ask the host only about the touches it owns. A second finger fails a one-finger pan that has not claimed, so the page can pinch. A scroll-edge pan holds a lone finger from the first move that pulls away from an edge every scroller under it is at, so those moves are cancelled before it begins; with a second finger anywhere on the screen the page keeps its pinch. The host follows the primary pointer when it changes; what it attaches under a fine pointer is in the every-pointer changeset (`gestures-every-pointer.md`). A press tracker whose hold acts (a stepper's hold-repeat) can bring a selection lock for its presses, as a recognizer can. Internal, for the touch components that adopt them; not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-host.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture system's DOM host (claims, click suppression, the browser's takeover, the pointer behind a contact). Not exported from the package entry point.

@vjeux
2 changes: 1 addition & 1 deletion .changeset/gesture-pan.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
'@astryxdesign/core': patch
---

[chore] Internal: the pan gesture recognizer, with UIKit's measured hysteresis and velocity filter. Not exported from the package entry point; no component uses it yet.
[chore] Internal: the pan gesture recognizer, with UIKit's measured hysteresis and velocity filter. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-press-tracking.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: UIControl press tracking with control and cell profiles and the gesture hooks. `paintPress` in `utils/pressFeedback.ts` writes `data-astryx-press` for every press it tracks; the action-group tracker writes its groups' presses itself. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture system's README for component authors, with its browser proof in Chromium and WebKit.

@vjeux
2 changes: 1 addition & 1 deletion .changeset/gesture-recognizer-core.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
'@astryxdesign/core': patch
---

[chore] Internal: the gesture recognizer core for touch presentations: UIKit's recognizer state machine and the arena that settles which recognizer owns a touch. Not exported from the package entry point; no component uses it yet.
[chore] Internal: the gesture recognizer core for touch presentations: UIKit's recognizer state machine and the arena that settles which recognizer owns a touch. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-recognizer-fixes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: gesture recognizer and arena fixes from review; a pan claims nothing before it begins at 10 pt; one velocity tracker for every gesture (`spec:AST-100`: UIKit's measured blend, a scrolling surface's release through the pan's `scrollVelocity()`, and FR2's release rules). Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-swipe-pinch-rotation-edge-hover.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: swipe, pinch, rotation, screen-edge pan and hover gesture recognizers. Not exported from the package entry point.

@vjeux
2 changes: 1 addition & 1 deletion .changeset/gesture-tap-long-press.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
'@astryxdesign/core': patch
---

[chore] Internal: tap and long-press gesture recognizers with UIKit's measured thresholds. Not exported from the package entry point; no component uses them yet.
[chore] Internal: tap and long-press gesture recognizers with UIKit's measured thresholds. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gesture-watcher.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: a recognizer created with `claimsTouches: false` is a watcher: passive listeners only, simultaneous with every recognizer, and it follows a touch the browser takes for a scroll to the lift. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/gestures-every-pointer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: gestures attach for every pointer, a mouse, a pen and a finger alike (AST-094 FR43). Under a fine primary pointer an element that uses a gesture keeps one passive `pointerdown` listener (a recognizer that claims a moving finger also keeps its blocking `touchmove`, and a kept press gets its own only during a press), the page's listeners last only a press and go at a window blur, and a hovering mouse or pen reaches a hover recognizer through two passive listeners on its element. A pen's barrel button, like a right click, starts no press. A right click or a ctrl-click on macOS starts no press. A finger's or a pen's hold that does something keeps text unselected under any primary pointer, a touchscreen laptop's included, while a mouse keeps its released behavior (FR41). A mouse or pen drag that a recognizer claims takes no text selection from then on, anywhere on the page, and a finger is read once where the browser sends Touch Events without exposing `ontouchstart`. A press tracker takes a mouse press as a press, painting at once with no scroll brake. The screen-edge pan is a finger's only: it stays off under a mouse, a trackpad and a pen, and takes no `allowedPointerTypes`, and `perEventPointer` is accepted and does nothing. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/input-stream.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[fix] The touch press feedback and the gesture recognizers now hear page-wide input through one shared stream on the window's capture phase, so an app's window-capture `stopPropagation`, or a document-capture `stopImmediatePropagation` registered before Core, no longer hides a touch from them. A recognizer that must claim a touch mid-gesture still needs the touch to reach its element. Each event type's listener is passive unless a subscriber cancels it (the gesture host's `touchend` and `contextmenu` while a claiming recognizer or press tracker is attached, the page hold's `touchmove` while it holds, and the click guard's `click` once it first arms), so a page of pressables registers no listener that can hold a scroll.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/list-row-press-compositor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[fix] A list row's touch press release keeps fading while the page runs script. `ListItem`, `Item` and `TreeList` rows used to stay fully pressed after the finger lifted until the main thread was free, and every frame of the fade repainted the row; the release now runs on the compositor, with the same color, clock and curve as before. Under a finger, while a row is pressed and through its release, the press paints on the row's `::before` and the row is its own stacking context; at rest nothing of it applies, so a row's own `::before` decoration and its children's stacking are as they were. During a press the layer is the row's `::before`, and any `::before` property a caller sets, from `xstyle` (which `Item` composes after the layer) or from a stylesheet, wins over the layer's: a decoration with its own size and background jumps to the row's corner, and the row shows no pressed fill until the release ends. Decoration that should stay through a press belongs on `::after` or a child element. With a mouse or trackpad the row is unchanged: no layer and no new stacking context.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/list-touch-hit-area.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[feat] Under a finger (a coarse primary pointer), an interactive `List` row's hit target grows toward 44px where its neighbors leave room: the shared touch hit area measures each row and stops at half the gap to the nearest neighboring row or control. Rows look and lay out exactly as before, and a mouse is unchanged. Under a finger a list row's `::after` is that invisible layer, so decorate a row with a child instead.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/long-press-one-source.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: `useLongPress` (ContextMenu's long press, and the held finger that opens a menu from its trigger) takes its default duration and tolerance, 500ms and 10px on either axis, from the same source as the long-press gesture recognizer. No behavior changes.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/menu-trigger-drift.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[fix] A finger held on a DropdownMenu trigger may drift up to 13px on each axis and still open the menu under every primary pointer, a phone's, a tablet's and a touchscreen laptop's alike, as AST-094 FR29 allows; it cancelled past 10px. No menu, row or trigger reads the pointer query.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/number-input-stepper-every-pointer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[feat] NumberInput: a mouse, a pen and a finger press the number steppers through one press model, under any primary pointer (AST-094 FR43). On a touchscreen laptop a finger's quick taps on a stepper no longer zoom the page. A held mouse keeps its press within 70 px of the steppers, as a finger does, and a right click presses nothing.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/number-input-stepper-hold.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[feat] NumberInput: a number stepper held down keeps stepping, under a finger, a pen or a mouse, on iOS and Android alike: once after half a second, as a native iOS stepper does, then on one steady ramp that starts at a quarter of a second and quickens by a tenth each step, down to a twentieth of a second. A tap steps exactly once, on the click the browser sends when it lifts. While a press steps, the field shows each value, and `onChange` is called once, with the final value, when the press ends; a controlled field then shows whatever value its parent passes back. Sliding onto the other stepper carries the repeat to it; sliding away pauses it, and coming back resumes it, never with a step at once. The pressed stepper lights at once and clears at once. A held finger selects no text and opens no callout: in iOS Safari, resting a finger on a stepper used to select the field's label and open the edit menu over the field. A scroll that starts on a stepper still scrolls and steps nothing, and keyboard and assistive-technology activation are unchanged.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/number-input-stepper-touch-control.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[feat] NumberInput: under a finger, on iOS and Android alike, the number steppers sit beside the field as one control shaped like the iOS stepper: a 94 px wide capsule at the field's size (28, 32 or 36 px tall) with − at the start and + at the end, mirrored in right-to-left layouts, a divider between them, and the theme's neutral fill and icon colours. The pressed half darkens at once, and a finger can slide across the divider. Each half is its own touch target, 47 px wide and as tall as the control. The field gives up the control's width and a gap, so an attached status still lines up with the input; a field narrower than 170 px keeps the steppers inside it. With a mouse, and inside an InputGroup, the steppers stay in the field as before.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/number-input-stepper-touch-focus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[feat] NumberInput: a finger on a number stepper steps the value without focusing the field, and so do a pen and an activation with no pointer (a screen reader, a programmatic `click()`) where the primary pointer is coarse, so on a phone the on-screen keyboard no longer slides up over the page with every tap. A field that is already being edited stays focused. A mouse click, and a pen or an activation with no pointer where the primary pointer is fine, still focus the field, so the arrow keys and the wheel keep stepping.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/presented-hit-testing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] On iOS, a touch on an element the compositor animator is moving reaches what is drawn: the animator reports each moving element's offset from its layout box, and the gesture host sends the touch, press bounds and the tap's click there instead of to the layout position iOS WebKit hit-tests.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/press-release-ends-with-its-animation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[fix] Under a finger, a press's release now lasts until its fade has played. The touch press controller ended the release on a clock started at the lift, so when the page's script delayed the fade's first frame, the release was cut short mid-fade. It now ends when the surface's release animation ends, or on its clock where no release animation runs (an instant release, a surface without one, or an engine without Web Animations). This applies to every surface the touch press controller drives: buttons, switches, checkboxes, cards, menu rows and list rows.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/reduced-motion-record.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: Reduce Motion for the touch presentations follows design:reduced-motion beyond the animator too. `reducedMotionFade()` gives code beside the animator the animator's own fade (an opacity-only 200 ms cross-fade on a coarse pointer or after a touch release, at once on any other pointer), `animator.reducedMotion()` reports which form a change takes for feedback that plays no fade of its own, and `reducedMotion.stylex.ts` holds the fade's constants for StyleX transitions. The fade's length is not a theme motion role. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/selection-touch-targets.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[feat] On a touch screen, a checkbox and a radio option are now as easy to hit as an iOS control, and nothing changes size: a standalone, labelled CheckboxInput and each RadioList option get an invisible hit area that reaches the new `--size-touch-target` size token (44 px, Apple's control size; a smaller value never lowers it) and stops at half the gap to each neighbour, so neighbouring targets never overlap. Between close neighbours a target stays smaller: a middle RadioList option reaches 32 px at the default 8 px gap. Under a finger a RadioListItem row's `::after` becomes its hit layer, so decorate a row with a child rather than its `::after`. A label-hidden checkbox inside another component's row (a MultiSelector option, a table selection cell, a task item) keeps that row's target. With a mouse or trackpad nothing changes. The CheckboxInput `size` docs now give the real box sizes.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/touch-selection-lock-gestures.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the gesture host applies a recognizer's own `selectionLock` to that recognizer's contact and imports no lock itself; a long press brings one only when it has a hold (a `minimumPressDuration` above 0), and `selectionLock: null` opts out. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/touch-selection-lock.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[fix] Where the primary pointer is fine (a mouse, a trackpad, a touchscreen laptop, a desktop pen tablet), the press feedback controller no longer registers a touch listener: it reads the primary pointer at the first finger or pen press and keeps its `touchcancel` listener only while that pointer is coarse.

@vjeux
2 changes: 1 addition & 1 deletion .changeset/uikit-constants-table.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
'@astryxdesign/core': patch
---

[chore] Internal: the UIKit constants table for touch presentations (springs, scroll physics, timing curves and navigation values), each value with its source and a checked list of the simulator measurements still owed. Not exported from the package entry point; no component reads it yet.
[chore] Internal: the UIKit constants table for touch presentations (springs, scroll physics, timing curves and navigation values), each value with its source and a checked list of the simulator measurements still owed. Not exported from the package entry point.

@vjeux
7 changes: 7 additions & 0 deletions .changeset/uikit-motion-animator-pseudo-element.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@astryxdesign/core': patch
---

[chore] Internal: the touch presentations' animator drives a pseudo-element such as a dialog's ::backdrop: a static filling animation holds its value after a curve ends and after `set`, a custom property on its host promotes it, and a Reduce Motion dip borrows and hands back the pseudo-element's own opacity. Not exported from the package entry point.

@vjeux
2 changes: 1 addition & 1 deletion .changeset/uikit-motion-animator.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
'@astryxdesign/core': patch
---

[chore] Internal: a compositor animator for touch presentations. It plays UIKit's springs, and scroll coasts (built by a separate coast module, so a surface that never coasts does not carry them; `decay` plays momentum, and sends a spring back from past an edge through the Reduce Motion policy: a cross-fade on a coarse pointer or after a touch release, at once elsewhere) as Web Animations on translate, rotate, scale and opacity, so they keep running while JavaScript is busy, and reads values and velocities back from the curves for interruption, retargeting and Reduce Motion cross-fades. Not exported from the package entry point; no component uses it yet.
[chore] Internal: a compositor animator for touch presentations. It plays UIKit's springs, and scroll coasts (built by a separate coast module, so a surface that never coasts does not carry them; `decay` plays momentum, and sends a spring back from past an edge through the Reduce Motion policy: a cross-fade on a coarse pointer or after a touch release, at once elsewhere) as Web Animations on translate, rotate, scale and opacity, so they keep running while JavaScript is busy, and reads values and velocities back from the curves for interruption, retargeting and Reduce Motion cross-fades. Not exported from the package entry point.

@vjeux
Loading