Skip to main content

Motion Language Reference

.motion is Motionly’s source format. The editor should create and update it visually, but agents and contributors need to keep the syntax clean.

Canvas

Text

Use size, not fontSize.

Asset

import accepts PNG/JPEG, static or animated SVG, GIF, MP4, WebM, MOV/M4V, and .lottie. Animated assets use the same editable layer transforms and timeline clip syntax as images.

Animation

Use easing, not ease.

Useful Properties

  • x
  • y
  • width
  • height
  • scale
  • rotation
  • originX / originY (normalized transform origin)
  • skewX / skewY
  • opacity
  • blur
  • brightness
  • shadow
  • size
  • color
  • fill, stroke, strokeWidth (simple path SVG overrides)
  • center
  • layer

Audio

Audio files persist in .motion, play during preview, remain on the bottom track, and export with MP4. Dragging audio horizontally updates start.

Timeline Tracks and Clips

Track roles are main, overlay, and audio. Track content records legacy/purpose metadata (primary, video, image, text, effect, or audio). Visual roles and content do not restrict editing: every visual track behaves as a simple layer, accepts any visual content, and allows gaps or overlaps. hidden suppresses a visual track, muted disables track audio, and order persists layer stacking. Audio remains bottom-only. Media clips use start, duration, trimIn, and trimOut. Regular text/image/overlay/effect elements use start and duration as a non-destructive visibility window, so trimming and splitting do not rewrite authored animations. Existing numeric clip tracks remain backward compatible.

Easing

Preferred:
  • power3.out
  • smooth
  • soft
  • ease-out
  • linear

Product Rule

Do not make .motion authoring the main user workflow. Keep it readable because it is the source of truth, but build UI controls first.