Skip to content

[5/10] fix: hold the first keyframe value and ease gaps like the render - #253

Merged
dazzatronus merged 1 commit into
mainfrom
derk/sdk-motion-keyframe-holds
Oct 26, 2026
Merged

dazzatronus merged 1 commit into
mainfrom
derk/sdk-motion-keyframe-holds

Conversation

@dazzatronus

@dazzatronus dazzatronus commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Before the first tween the preview ramped from the neutral value, so a delayed fade-in previewed as a fade-out followed by a fade-in. The render holds the first tween's from. Gaps between tweens were always linear in the preview, while the render takes the next tween's interpolation. KeyframeBuilder is now a point model like the render's, so both behaviours follow from it. Video speed keeps linear gaps, because the render handles speed on its own path.

Risk: out-only reveals and wipes no longer ramp across the whole clip.

Verify: npm test (2354, +5, two obsolete tests removed).

# PR Adds Why separate
1/10 #249 Internal type for the render's default curve Mechanical, no behaviour change
2/10 #250 Transitions match the render Transition presets
3/10 #251 shuffle* previews A missing preset
4/10 #252 Slide effects match the render Effect presets
5/10 #253 Keyframes hold and ease like the render Keyframe model
6/10 #254 Presets compose over keyframes Builds on 2–5
7/10 #255 The toolbar allows presets with keyframes UI change that needs 6/10
8/10 #256 Default fps matches the render Output settings
9/10 #257 shotstack-canvas 2.14.1 Dependency bump
10/10 #258 html5 capture sees the page's markup Uses 9/10's new inputs

Merge bottom-up, retargeting each PR after its predecessor lands. Since #248 the release workflow skips the release when the merged PR's title starts [n/m] with n < m, so 1/10 to 9/10 hold, and 10/10 releases the stack as one version.

Merge subject: [5/10] fix: hold the first keyframe value and ease gaps like the render. The repo squashes a single-commit PR under its commit message, so type this in the merge dialog.

@dazzatronus
dazzatronus force-pushed the derk/sdk-motion-keyframe-holds branch from a333889 to 8987f09 Compare October 26, 2026 23:19
@dazzatronus
dazzatronus merged commit 0039a74 into main Oct 26, 2026
1 check passed
@dazzatronus
dazzatronus deleted the derk/sdk-motion-keyframe-holds branch October 26, 2026 23:27
dazzatronus added a commit that referenced this pull request Oct 26, 2026
github-actions Bot pushed a commit that referenced this pull request Oct 27, 2026
## [2.29.2](v2.29.1...v2.29.2) (2026-10-27)

### Bug Fixes

* apply effect and transition presets over keyframes in preview ([#254](#254)) ([8ee2542](8ee2542))
* capture html5 clips animated only by their markup ([#258](#258)) ([78c88b6](78c88b6))
* default the output frame rate to the render's ([#256](#256)) ([16d560e](16d560e))
* **deps:** use shotstack-canvas 2.14.1 ([#257](#257)) ([8db1111](8db1111))
* hold the first keyframe value and ease gaps like the render ([#253](#253)) ([0039a74](0039a74))
* let keyframed clips take effects and transitions in the toolbar ([#255](#255)) ([a4127fe](a4127fe))
* preview slide effects with the render's distances ([#252](#252)) ([4afc59a](4afc59a))
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 2.29.2 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant