Speed1×
Slow motion multiplier
Reduced motion
Show
Motion Lab
core@0.5.0Measured against the installed package
Generated byscripts/generate-motion-audit.mjs from packages/core/src and packages/lab/src at core@0.5.0, so these move when the packages do. Every finding carries the package it is in.121Component directories55 animate, 65 do not
1Easing tokens--ease-standard, for every job
9Duration tokensnamed by size, not by job
58Hardcoded duration / easing34 durations, 24 curves
40Animated files with no reduced-motion branchof 88 animated files
12Durations with no declared curvesilently getting the CSS default
34Transitions on transformacross 23 components
34getComputedStyle readsthe JS mirror's caseload
Where the brief and the code disagree
Only the rows that differ. Everything else in the audit checked out.| Measure | Brief | Measured | Reading |
|---|---|---|---|
| Component directories | 107 (90 core, 17 lab) | 121 (104 core, 17 lab) | Lab matches exactly. Core is higher than the brief’s 90 — the split it quotes is close but not current. |
| Animate something | 63 | 55 | Counted as component directories with at least one transition, animation or keyframe. The brief counted across core and lab together. |
| Hardcoded duration / easing | 28 | 58 | Higher, not lower. The brief undercounts: the sweep is bigger than budgeted, and about a quarter of it is a reduced-motion idiom rather than carelessness. |
| Files animating with no reduced-motion branch | 39 | 40 | Close. The gap is counting method, not a disagreement worth chasing. |
| Dead no-op transitions | 3, in Selector / ComplexSelector / MultiSelector | 1, in Lightbox | The brief’s three do not exist as described. The one real instance is a deliberate transitionProperty: none. Worth re-checking before it becomes a milestone line item. |
| CSS transition on transform | 20+ components | 34 sites, 23 components | The brief is right, and this row is a caution about the tool rather than the doc: two earlier versions of the audit script reported 13 across 9, because a wrapped value and a nested StyleX rule each hid matches. Trust a generated number only as far as its generator has been tested. |
How to use the bench
The rail applies everywhereSlow-mo stretches every duration without moving the token, so you can judge a 175ms curve at 8× and still export 175ms. Reduced motion drives the real policy switch. Show hides one half of every comparison.
Every slider writes a real tokenTune a value anywhere and every demo in the section updates, because they all read the same custom property. When it feels right, the export page emits the token block and the JS mirror.
Numbers are generated, prose is notCounts and file:line citations come from the audit script. Judgements about what they mean are written, and are the part worth arguing with.
Sections
Against the published pageStart
Which proposals are bug fixes and which are reversals of guidance Astryx publishes today.Semantic tokensFoundation
Whether six easings and eight durations are the right vocabulary, and what each value should be.SpringsFoundation
Whether the four named springs feel right, and whether they belong in the theme contract.JS token mirrorFoundation
What the mirror has to expose for charts, canvas and motion libraries.Export tuningFoundation
Nothing — it emits whatever the rest of the lab has been tuned to.The exit gapPresence
Whether presence surfaces should animate out at all, and what enter and exit cost.Small bugsPresence
Which of the structural findings are real once you look at the code.Hardcoded valuesEnforcement
What each hardcoded site becomes, and whether the swap is visible at all.Rubric benchEnforcement
Whether each criterion is checkable, and what a pass and a fail look like.Reduced motionEnforcement
Degrade or delete. The decision the 36-file sweep is waiting on.Live previewsCoverage
The coverage work: indicators, disclosure, chips, skeletons, lists.Preview planCoverage
What every remaining preview has to show before it is worth building.Motion libraryCompatibility
The three blockers, and whether Button keeps its press transition.Plan & open questionsPlan
Sequence, gates, and who has to answer what.