• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

humanspeak / svelte-motion / 26531902391
69%
main: 3%

Build:
Build:
LAST BUILD BRANCH: fix/release-cleanup-always-run
DEFAULT BRANCH: main
Ran 27 May 2026 06:55PM UTC
Jobs 1
Files 229
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 May 2026 06:52PM UTC coverage: 68.522% (+0.1%) from 68.399%
26531902391

push

github

web-flow
fix(motion): persist animated transforms after WAAPI completion (#383)

* fix(motion): persist animated transforms after WAAPI completion

A motion.* element with a transform-shortcut animate value (scaleX,
rotate, x, y, etc.) animated correctly but reverted to transform:none
once the WAAPI run finished, because the inline transform was cleared at
the 'ready' state and WAAPI's default fill:'none' surrenders the
property on completion.

- Promote the animate target to the inline-style baseline once the enter
  animation has COMPLETED (new enterAnimationSettled flag set in the
  animateWithLifecycle onComplete), so the element holds its target. The
  target must not be applied during the run — flipping the inline value
  mid-animation shows the target for the one frame it changes (a visible
  snap), since WAAPI's composite doesn't override that exact frame.
- Collapse keyframe-array targets to their resting (last) element via a
  new resolveRestingValues helper (animate={{x:[0,100,50]}} rests at 50),
  mirroring upstream's buildTransform reading a settled scalar.
- Filter the inline baseline through filterReducedMotionKeyframes so
  transforms stay stripped under reduced motion.

Verified against framer-motion: inline style is built from resolved
values every render (use-props.ts), buildTransform reads settled scalars
and emits 'none' for identity (so identity targets like scaleX:1 are
correctly 'none' — the bug only bites non-identity targets).

Adds unit coverage (resolveRestingValues + persistence) and an e2e route
+ spec, including an addInitScript frame-recorder guard that asserts no
start-of-animation snap.

Closes #377

* fix(motion): omit empty-array keys in resolveRestingValues

CodeRabbit follow-up on #383: resolveRestingValues({ x: [] }) returned
value[-1] = undefined, yielding { x: undefined }. Harmless downstream
(mergeInlineStyles guards null/undefined) but untidy in isolation — now
empty-array keys are dropped. Adds a unit test.

Refs #377

530 of 718 branches covered (73.82%)

Branch coverage included in aggregate %.

13 of 13 new or added lines in 2 files covered. (100.0%)

2117 of 3145 relevant lines covered (67.31%)

13.55 hits per line

Jobs
ID Job ID Ran Files Coverage
1 node-22 - 26531902391.1 27 May 2026 06:55PM UTC 229
68.52
GitHub Action Run
Source Files on build 26531902391
  • Tree
  • List 229
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #26531902391
  • 42209c12 on github
  • Prev Build on chore/package-updates (#26520002038)
  • Next Build on fix/animate-transform-persist (#26573009494)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc