Skip to content

Releases: rafaelaugustos/jolt

v0.1.0-beta.4

v0.1.0-beta.4 Pre-release
Pre-release

Choose a tag to compare

@rafaelaugustos rafaelaugustos released this 15 Oct 07:11
0cb9639

Animate background, border and text colors with animate() on iOS and Android, using OKLab interpolation and native playback.

  • Colors support keyframes, springs, per-property timing, repeats, stagger, interruption and selective stopping. Explicit formatted-span colors are preserved.
  • Add liquid() for native texture deformation of raster images on iOS, with pause/resume, lifecycle cleanup and Reduce Motion support.
  • Add the interactive assistant demo and a palette playground, with updated English and Portuguese guides.

Android: rebuild the native app after upgrading to include the Java color target. A JavaScript-only update cannot install it.

The color guide documents iOS text limitations and the image-background fallback, which preserves the image and applies the final model color without playback.

npm install @rafaelaugusto/jolt@next

Validated with 368 tests, type checks, builds and native checks on the iOS simulator and Android emulator.

Full changelog

v0.1.0-beta.3

v0.1.0-beta.3 Pre-release
Pre-release

Choose a tag to compare

@rafaelaugustos rafaelaugustos released this 15 Oct 04:00
e174121

This beta adds text entrances, loaders and circular reveals on iOS, decay motion on both platforms, and fixes for Android playback.

  • animateText() reveals an iOS Label by letter or word while preserving its layout and accessibility settings. Composed characters and joined emoji stay together; stop restores the full text and Reduce Motion skips the effect. (#89)
  • loader() adds native iOS dots, bars and ring indicators, with layout updates, cleanup and a static Reduce Motion fallback. (#83)
  • reveal() and conceal() animate circular masks on iOS, with continuous reversal and preservation of existing masks. (#84)
  • decay() adds exponential translation with velocity in DIPs per second and optional projected snap points. It shares interruption and stopping with animate(). (#85)
  • Android X/Y rotations use the view's perspective and display density, including flips ending at zero. (#86)
  • Android opacity animations temporarily cache eligible containers in hardware layers and restore them on completion, stop, replacement or unload. App-configured layers and oversized content trees are preserved. (#87)
  • Android sequences and velocity handover follow the native animation clock, including animator duration scale, delays, repeats and disabled animations. (#88)

The README, demo and English/Portuguese guides include the new APIs and their limits. An Android fade benchmark records playback and memory tradeoffs.

Install from the beta channel:

npm install @rafaelaugusto/jolt@next

Documentation · Full changelog

v0.1.0-beta.2

v0.1.0-beta.2 Pre-release
Pre-release

Choose a tag to compare

@rafaelaugustos rafaelaugustos released this 15 Oct 01:20
8e5e220

This beta adds native iOS effects for loading states, feedback and celebrations.

  • confetti() emits a short burst from a view. particles() supports continuous effects such as snow, sparks and bubbles. Both include cleanup and Reduce Motion support. (#81)
  • animate() can trigger haptic feedback on arrival or at explicit progress points. Interrupting or stopping the animation cancels pending feedback. (#80)
  • shimmer() adds a native looping highlight to loading placeholders, follows layout changes and preserves existing masks. (#79)
  • symbolEffect() brings bounce, pulse, scale, variable color and animated replacement to SF Symbols on iOS 17 and later. (#78)
  • Native iOS animations request up to 120 Hz on compatible displays. iPhone apps need CADisableMinimumFrameDurationOnPhone in Info.plist; iOS chooses the actual refresh rate. (#77)
  • An on-device benchmark measures the startup cost of animating 50 and 200 staggered views, with recorded iPhone results. (#76)

The new effects are documented in the README and the English and Portuguese guides.

Install from the beta channel:

npm install @rafaelaugusto/jolt@next

Documentation · Full changelog

v0.1.0-beta.1

v0.1.0-beta.1 Pre-release
Pre-release

Choose a tag to compare

@rafaelaugustos rafaelaugustos released this 14 Oct 21:50
c8ca69a

This beta fixes attention presets on views that are already moved, rotated or scaled, and adds two APIs for reusing and controlling animations.

  • shake, pulse and the other attention presets now use the view's current values. Custom animations can opt in with relative: true; relative: false keeps absolute keyframes. (#73)
  • definePreset() registers keyframes and a transition under a typed name, usable in animate() and sequence(). (#72)
  • stop(view, ['x', 'scale']) stops selected properties while the others keep animating. scale stops both axes. (#71)
  • Infinite animations on iOS keep running after the app returns from the background. (#67)
  • The documentation now has a site with English and Portuguese guides. (#69)

Install from the beta channel:

npm install @rafaelaugusto/jolt@next

Full changelog

v0.1.0-beta.0

v0.1.0-beta.0 Pre-release
Pre-release

Choose a tag to compare

@rafaelaugustos rafaelaugustos released this 13 Oct 23:06
275d150

First beta of Jolt: animations for NativeScript in one call, played natively.

  • animate() with presets, keyframes, tweens and springs, for opacity, position, scale and rotation
  • the motion is computed once and handed to Core Animation on iOS and ObjectAnimator on Android, nothing runs in JavaScript per frame
  • springs with real physics, plus smooth, snappy and bouncy
  • interrupting an animation picks up from where the view is, at the speed it was going
  • 25 presets, stagger for lists, sequence() for choreography and press() for touch feedback

It hasn't been through real apps yet, so it's published under next:

npm install @rafaelaugusto/jolt@next

See the README for transitions, presets and how it works.