Easing and springs
Named eases including back, elastic and bounce, any cubic-bezier, closed-form springs, steps(n) and hold keys.
{ id: 'k1', frame: 30, value: 0.8, easing: 'back-out' }Code, or a model, describes the motion. Elah converts it into native clips and keyframes: not a video, not a black-box layer. Every animated property is a channel on a clip, with keys that have ids, frames, values and an easing. Coming in 1.0.
Named eases including back, elastic and bounce, any cubic-bezier, closed-form springs, steps(n) and hold keys.
{ id: 'k1', frame: 30, value: 0.8, easing: 'back-out' }Stagger from the start, centre, end or edges, at random, or across a grid, with repeat and yoyo, labels and relative positions. In HTML scenes and motion presets.
stagger: children 4fAnimate text by character, word or line, or scramble it into place.
split: word 3f; each: y: 0.5 -> 0 0.5s quad-outA clip travels an SVG path. Path morph and draw-on strokes are keys too.
path: (M 100 900 C 300 200 700 200 900 900) orientDrive a channel with wiggle, loop, sin and friends. An expression on a channel, set with setChannelExpression.
wiggle(freq, amp) // value + noiserotateX and rotateY with perspective on video, image, sequence and compound clips.
channels: { rotateY: { source: { kind: 'keyframes' }, keys: [ /* … */ ] } }Presets expand into real keyframes, so you can change them after.
in: pop-in 0.4s @0.2GPU effects, nine transitions, compound and sequence clips, Lottie and SVG import. Effect parameters are keyable channels.
channels: { 'fx.<effect>.<param>': { source: { kind: 'keyframes' }, keys: [ /* … */ ] } }Export needs a Chromium browser (Chrome or Edge). Effects and the six newer transitions need WebGL2.
3D tilt works on media and groups, not on text or shapes.