Keyframes & Transforms
Keyframes animate layer properties over time. Add keyframes to property tracks to control position, scale, rotation, and anchor point — all interpolated with configurable easing curves.
Transform Properties
Each layer (and layer group) can have property tracks for these transforms:
| Property | Unit | Default | Range | Description |
|---|---|---|---|---|
| Position X | cells | 0 | unbounded | Horizontal offset |
| Position Y | cells | 0 | unbounded | Vertical offset |
| Scale X | × | 1.0 | 0.1–10 | Horizontal scale multiplier |
| Scale Y | × | 1.0 | 0.1–10 | Vertical scale multiplier |
| Rotation | ° | 0 | -3600–3600 | Rotation in 1° increments (supports multiple full rotations) |
| Anchor X | cells | center | unbounded | Horizontal rotation/scale center |
| Anchor Y | cells | center | unbounded | Vertical rotation/scale center |
Anchor point defaults to the canvas center. Adjust it to rotate or scale around a different point.
Static Properties
When a property has no keyframe track, its value is set via static properties on the layer. This provides a constant value for the entire timeline without requiring keyframes.
Working with Keyframes
Adding a Property Track
Adding Keyframes
Selecting Keyframes
| Method | Action |
|---|---|
| Click | Select a single keyframe (yellow highlight) |
| Shift+Click | Add keyframe to selection |
| Click track background | Deselect all |
Moving Keyframes
Drag a selected keyframe diamond horizontally to move it to a different frame.
Duplicating Keyframes
Hold Alt and drag a keyframe to create a duplicate at the new position. A ghost preview shows the duplicate location during the drag.
Deleting Keyframes
Select one or more keyframes and press Delete, or use the delete button in the keyframe editor panel.
Easing Curves
Each keyframe has an easing curve that controls how values transition to the next keyframe.
Presets
| Preset | Bezier | Description |
|---|---|---|
| Linear | (0, 0, 1, 1) | Constant speed, no acceleration |
| Hold | — | No interpolation — jumps to next value |
| Ease In | (0.42, 0, 1, 1) | Starts slow, accelerates |
| Ease Out | (0, 0, 0.58, 1) | Starts fast, decelerates |
| Ease In-Out | (0.42, 0, 0.58, 1) | Slow start and end |
| Ease Out Back | (0.34, 1.56, 0.64, 1) | Overshoots then settles |
| Ease In Back | (0.36, 0, 0.66, -0.56) | Pulls back before moving |
| Bounce | (0.34, 1.4, 0.64, 1) | Slight bounce at the end |
Custom Curves
Select Custom to edit the cubic bezier control points directly. The easing curve editor provides a 160×160 interactive canvas where you can drag control point handles.
Control points (x1, y1) and (x2, y2) define the curve shape:
- X values are clamped to 0–1
- Y values can exceed 0–1 for overshoot effects
Keyframe Editor Panel
When a keyframe is selected, the editor panel on the right shows:
| Field | Description |
|---|---|
| Frame | Frame number (editable) |
| Value | Property value with min/max/step constraints |
| Easing | Preset selector and interactive curve editor |
| Loop | Toggle keyframe looping on the track |
| Delete | Remove the keyframe |
Keyframe Looping
Enable Loop Keyframes on a property track to repeat the keyframe pattern infinitely after the last keyframe. The pattern cycles from the first to last keyframe values.
Sync Keyframes to Frames
When enabled on a layer, keyframes within a content frame's time range move with the frame during drag operations. This keeps keyframe timing aligned with content when repositioning frames on the timeline.
Layer Groups
Layer groups cascade transforms to all child layers:
Group Transform Order
Individual layer transforms are applied first, then group transforms are applied to the composited result. This means:
- Layer position moves the layer content
- Group position moves the entire group as a unit
Ungrouping
Right-click a group → Ungroup to dissolve the group while keeping all child layers and their individual transforms intact.
Common Workflows
Slide Animation
Animate an element sliding across the screen:
- Add a Position X property track to the layer
- At frame 0, set Position X = 0
- At frame 30, set Position X = 40
- Set easing to Ease In-Out for smooth motion
Scale Pulse
Create a pulsing scale effect:
- Add Scale X and Scale Y tracks
- Frame 0: Scale X = 1.0, Scale Y = 1.0
- Frame 12: Scale X = 1.3, Scale Y = 1.3
- Frame 24: Scale X = 1.0, Scale Y = 1.0
- Enable Loop Keyframes on both tracks
- Set easing to Ease In-Out
Rotation
Rotate content around a custom point:
- Set Anchor X and Anchor Y to the desired rotation center
- Add a Rotation property track
- Frame 0: Rotation = 0°
- Frame 24: Rotation = 360°
- Enable Loop Keyframes for continuous rotation