#nosave autosave off| Space | Play / Pause |
| ← → | Frame ±1 |
| Home | Jump to the first frame |
| End | Jump to the last frame |
| L | Toggle loop |
| G | Toggle grid (sizing + alignment) |
| Del | Delete the selected frame |
| Ctrl+D | Duplicate the selected frame |
| Ctrl+Z | Undo (the last change) |
| Ctrl+Shift+Z | Redo (the last undone change) |
| Ctrl+↑/↓ | Move the frame |
| Shift+click | Range select — from the anchor to the clicked frame |
| Ctrl+click | Toggle select (add / remove) |
| Right-click | Frame menu (supports multi-select) |
| ? | Show this help |
| Esc | Close dialog / menu |
An auto-save was found in browser storage (IndexedDB). Do you want to restore it?
💡 Auto-save runs in the background every 3 seconds. Your work is kept even if the page closes. Choosing Discard starts fresh (the previous auto-save is deleted).
All projects saved in this browser (IndexedDB). Click → open. ✕ → delete (cannot be undone). For a new project use "+ New Project" or the New button.
Keeps the frames marked as anchors fixed and fills in the ones between them by lerping with the selected easing.
🔒 Anchor = a frame you pinned with Lock in the inspector, or the ends of the range. With more than one anchor it builds a separate segment for each consecutive pair (e.g. lock 0, 50, 100 → two segments, a V-shaped move).
A cubic-bezier interpolation curve from this frame to the next anchor frame. The curve = the time/value relationship (equivalent to CSS cubic-bezier()). Linear = the global modal easing is used.
cubic-bezier(0,0,1,1)
Add keyframe points on the time axis for each property. Drag a point = move, double-click = add a new one, right-click = delete. The whole period is set in seconds; the result can be used from the motion preset list.
Tips:
Global motion presets saved in this browser (IndexedDB). Every project sees this list. Import = copy into the current project (becomes project-local and is included in the ZIP). ✕ = remove from the library (project-local copies are not affected).