Skip to main content
These are the values the Tella Motion commands take, the same over MCP and the REST API. inspect_motion_node_properties (REST: GET /v1/motion/documents/{id}/nodes?path=…) shows a node’s properties with their current values, keys and key IDs.

Properties

setProperty, setKeyframes, editKeyframe, removeKeyframes, setExpression and bindProperty name a property with property. Commands take values in the units below. Percentages are fractions, even where the editor shows %: opacity 0.5 is half, scale 2 doubles. Some properties exist only on some nodes: color on titles and shapes, volume and pan on anything with sound. Blur, shadow, corner and colour properties are added to a node’s style when you first set them.

Other numbers a node stores

Any other animatable number is a field: property, named by where it sits in the node. inspect_motion_node_properties lists a node’s with their exact names. Common ones:
  • An effect’s parameters: field:@e.<effectId>/effect/<param>, e.g. field:@e.glow1/effect/radius.
  • A title’s weight on a variable font: field:content/style/fontWeight (1–1000), e.g. a word settling from 300 to 700 as it lands. The fonts table says which fonts can animate it.

Easing

Keys ease into the next key. Commands take these names wherever a field says easing: setTimeRemap keys take linear, hold or ease; setCurve keys take linear, hold, ease, easeIn or easeOut.

In and Out animations

animate takes in and out, each {kind, duration, easing?} with kind one of fade, slideLeft, slideRight, slideUp, slideDown or pop.

Text animations

setTextAnimation animates a title per unit (character, word or line), starting from start, end, center, edges or random. Presets: typewriter, fade, rise, drop, pop, blur, slideLeft, slideRight, spread, spin.

Expressions

setExpression adds one of these to a property; the value and keys underneath stay editable.
  • {"kind": "wiggle", "frequency", "amount", "seed"?}: random drift, frequency wiggles per second, amount in the property’s units. {"kind": "noWiggle"} removes it.
  • {"kind": "loop", "direction": "in" | "out", "mode": "cycle" | "pingPong" | "offset" | "continue", "keyframes"?}: repeats the keys after the last (out) or before the first (in). {"kind": "noLoop", "direction"} removes it.
bindProperty and setCurve take a different kind of expression: a number, {"curve": name}, {"time": "seconds"}, {"op", "args"} with op one of add, subtract, multiply, divide, min, max, abs, negate, sin, cos, pow, sqrt, floor, round, mod, mix, clamp, step, smoothstep, or {"project": {"point", "camera"}, "axis"} for where a canvas point lands when a lens shader films the canvas as a tilted plane.

Blend modes

setProperty with property: "blendMode" takes normal or: clear, src, dst, srcOver, dstOver, srcIn, dstIn, srcOut, dstOut, srcATop, dstATop, xor, plus, modulate, screen, overlay, darken, lighten, colorDodge, colorBurn, hardLight, softLight, difference, exclusion, multiply, hue, saturation, color, luminosity, linearBurn, vividLight, linearLight, pinLight, hardMix, subtract, divide, darkerColor, lighterColor, stencilAlpha, stencilLuma, silhouetteAlpha, silhouetteLuma, dissolve.

Fonts

addTitle and setTitle take a font by slug. weight takes 100 (thin) to 900 (black); a font that can’t draw a weight draws the nearest one it has, and the batch result’s notes say so. list_motion_fonts (REST: GET /v1/motion/fonts) returns this list.

Your own fonts

Fonts uploaded to your library or your workspace’s (with the font picker in the editor) work too: list_motion_fonts returns them under libraryFonts, and addTitle and setTitle take one by its id (mi_…) as font. A family uploaded as several files lists the weight of each, and a title draws the file nearest its weight. A font uploaded as one file draws the weights that file has: its weight animates only if the file is a variable font.
Last modified on October 27, 2026