Timeline Mode

Recording Mode

How recording works — automatic keyframe capture, intelligent change detection, and baseline state.

How recording works

Recording mode is the fastest way to animate. Instead of manually placing keyframes, you simply make changes on the Figma canvas and MotionKit captures them as keyframes at the current playhead position.

Starting a recording session

  1. Click the red ● Record button in the toolbar, or press R.
  2. The timeline border turns red to indicate recording is active.
  3. Move the playhead to the time where you want the keyframe.
  4. Modify any property in Figma — move, resize, rotate, change opacity, edit fill color, adjust effects, etc.
  5. A blue diamond (◆) keyframe appears automatically at the playhead position.

What gets recorded

MotionKit detects canvas changes via Figma's documentchange event. Any animatable property change — position, rotation, size, opacity, fill, stroke, effects, text styling, or vector paths — is captured as a keyframe.

Intelligent change detection

The recording system is smart about what it captures:

  • Hierarchical filtering — when you move a Group, all children report position changes. MotionKit detects whether a child's movement is inherited from its parent or is a genuine individual change, and only records the parent move.
  • Bounding box compensation — when a child moves inside a Group, the Group's bounding box changes. MotionKit suppresses the Group's spurious position change.
  • Transform suppression — when rotation or scale changes, the resulting X/Y position change is automatically suppressed since MotionKit's anchor-point transform system handles positioning.

Recording poll

Some properties don't trigger Figma's documentchange event (like certain effect properties). MotionKit runs a polling check every 150ms during recording to catch these changes by comparing the current state against a baseline snapshot.

Baseline state

When recording starts or preview begins, MotionKit captures a baseline state for every layer — the original position, size, rotation, opacity, and anchor point. All keyframe values are stored relative to this baseline. When you stop recording or preview, MotionKit restores the original state cleanly.

Tips for recording

  • Set keyframe 0 first — before recording, position the playhead at 0:00 and set your initial state. Then move the playhead forward and make changes.
  • Use locked layers — lock layers you don't want to accidentally animate.
  • Undo works — press ⌘/Ctrl + Z to undo the last keyframe creation.
  • Fine-tune after recording — record the broad strokes, then adjust keyframe timing and easing manually for polish.