shifty

The fastest TypeScript animation engine on the web

MIT License

Downloads
214.5K
Stars
1.5K
Committers
16

Bot releases are visible (Hide)

shifty - 3.0.3 Latest Release

Published by github-actions[bot] about 1 year ago

This release exposes the NPM package version via VERSION.

shifty - 3.0.2

Published by github-actions[bot] about 1 year ago

shifty - 3.0.1

Published by github-actions[bot] over 1 year ago

shifty - 3.0.0

Published by github-actions[bot] over 1 year ago

In this release

Updated documentation site: https://jeremyckahn.github.io/shifty/doc/

  • Convert Shifty to be authored in TypeScript
  • Publish ES6 artifacts
  • Improve runtime performance
  • Remove Core build
  • Switch from JSDoc to TypeDoc
  • Fix various minor bugs

Breaking changes

  • Tweenable.formulas has been renamed to Tweenable.easing
  • tweenConfig.step has been removed in favor of tweenConfig.render (behavior and API is unchanged).
  • tweenConfig.attachment has been removed in favor of tweenConfig.data (behavior and API is unchanged).
  • Tweenable#tweenable has been removed.
  • Tweenable#set() is now Tweenable#setState.
  • Tweenable#get() is now Tweenable#state (a getter, not a method).
  • Tweenable#hasEnded() is now Tweenable#hasEnded (a getter, not a method).
  • Tweenable#isPlaying() is now Tweenable#isPlaying (a getter, not a method).
  • Tweenable#setScheduleFunction has been removed. The static method Tweenable.setScheduleFunction method should be used instead.
  • Render handler parameters have been reordered:
    • In v2, the function signature was (state: TweenState, data: Data, timeElapsed: number) => void
    • In v3, the function signature is (state: TweenState, timeElapsed: number, data: Data) => void
  • Scene#play() has been renamed to Scene#tween.
  • Scene#isPlaying() is now Scene#isPlaying (a getter, not a method).
  • Scene#playingTweenables() has been removed.
  • unsetBezierFunction has been removed.
  • Shifty "Core" build has been removed.

See

  • #178
  • #177
shifty - 2.20.4

Published by github-actions[bot] over 1 year ago

Contains #175, a fix for #175: Scene#resume will avoid calling Tweenable#resume for tweens that have ended.

shifty - 2.20.3

Published by github-actions[bot] over 1 year ago

shifty - 2.20.1

Published by github-actions[bot] over 1 year ago

shifty - Cubic Bezier array easing support

Published by jeremyckahn almost 2 years ago

This release includes a new feature from @hoomanaskari (#171). Now you can specify an array of numbers to represent a cubic Bezier curve! Check out the updated API documentation for this feature:

shifty - Implement `Promise<unknown>`

Published by jeremyckahn about 2 years ago

This release contains #160, courtesy of @jspears. Thanks also to @arthuro555 for TypeScript guidance!

shifty - Add `shouldScheduleUpdate` method

Published by jeremyckahn about 2 years ago

This release fixes #156 by implementing shouldScheduleUpdate. It is recommended for use in projects that use both Shifty and Jest.

Thanks to @BoldBigflank for reporting this bug!

shifty - Adds `hasEnded` method

Published by jeremyckahn over 2 years ago

  • Implements hasEnded method (#151).

Thanks to @arthuro555 for adding this feature!

shifty - TypeScript types for Shifty

Published by jeremyckahn almost 3 years ago

This is a big one!

This release introduces TypeScript definitions for Shifty (requested in #68, implemented in #135). This is entirely thanks to the efforts of @arthuro555. Thank you @arthuro555! 👏 👏 👏

Types should "just work" in your TypeScript projects when you upgrade. Enjoy!

shifty - Improve support for `rgba` strings

Published by jeremyckahn almost 3 years ago

This release adds full support for rgba strings. It was mostly working before, but now rgba strings will have integer values instead of decimals for the rgb parts.

Thanks to @hoomanaskari for bringing attention to this!

  • #136
  • #137
shifty - Enable tween restarting

Published by jeremyckahn about 3 years ago

Fixes #133 by allowing completed tweens to restart when calling tween() upon a finished Tweenable.

Thanks to @tfsJoe for reporting this lack of functionality!

shifty - Improve ES5 targeting

Published by jeremyckahn almost 4 years ago

This is an extremely minor followup to v2.15.2. It just switches to a more declarative Webpack configuration: https://github.com/jeremyckahn/shifty/commit/76f01a047adec8405ec64d240b4eca4627e3c90e

I just wanted to isolate this change into its own patch release in case of the (extremely) off chance that there is a regression. However, it should be a safe upgrade.

shifty - Distribute ES5-compatible web build artifacts

Published by jeremyckahn almost 4 years ago

This is a fix for #129. Thanks @Hilbertangers!

shifty - Adds shifty.core.js build

Published by jeremyckahn almost 4 years ago

This builds adds a new build target for web environments: shifty.core.js. It contains a minimal version of the library:

shifty - Don't reuse private variables

Published by jeremyckahn almost 4 years ago

This release delivers a (very) small performance improvement. It serves more to make the code more maintainable, but it also speeds it up ever so slightly. You can see a full breakdown of the motivation and implementation in #128.

shifty - Add Tweenable#catch

Published by jeremyckahn almost 4 years ago

Defines Tweenable#catch to fix backwards compatibility with pre-2.14.0 versions.

See https://github.com/4ian/GDevelop/pull/2128 for the story behind this fix.

shifty - Performance optimization

Published by jeremyckahn almost 4 years ago

2.14.0 brings another round of performance improvements. This release brings Shifty's CPU performance characteristics in-line with GSAP's and delivers superior memory utilization.

To achieve this level of performance, a handful of small API modifications were made, but everything is fully backwards-compatible with 2.13.x.

  • Promises are no longer returned by Tweenable#tween and Tweenable#resume. They return their Tweenable instance.
  • To account for the changed return type, there is now Tweenable#tween that returns a Promise instance.
  • This release also re-introduces the finish option for tweenConfig.

Documentation: https://jeremyckahn.github.io/shifty/doc/index.html

Video about performance optimizations and techniques