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

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

Build:
Build:
LAST BUILD BRANCH: fix/release-cleanup-always-run
DEFAULT BRANCH: main
Ran 28 May 2026 11:54AM UTC
Jobs 1
Files 236
Run time 2min
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

28 May 2026 11:52AM UTC coverage: 68.929% (+0.4%) from 68.522%
26573009494

push

github

web-flow
feat: add LazyMotion feature bundle parity (#384)

* 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

* feat(lazy-motion... (continued)

536 of 724 branches covered (74.03%)

Branch coverage included in aggregate %.

57 of 59 new or added lines in 8 files covered. (96.61%)

2 existing lines in 1 file now uncovered.

2166 of 3196 relevant lines covered (67.77%)

16.13 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
93.33
src/lib/components/LazyMotion.svelte

Coverage Regressions

Lines Coverage ∆ File
2
62.15
0.69% src/lib/html/_MotionContainer.svelte
Jobs
ID Job ID Ran Files Coverage
1 node-22 - 26573009494.1 28 May 2026 11:54AM UTC 236
68.93
GitHub Action Run
Source Files on build 26573009494
  • Tree
  • List 236
  • Changed 2
  • Source Changed 2
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #26573009494
  • 31e377a3 on github
  • Prev Build on fix/animate-transform-persist (#26531902391)
  • 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