← Back to guides

What is Keyframe Animation?

The foundation of modern motion design — from Disney to diagrams

1

Origins in Traditional Animation

Keyframe animation originated in the golden age of hand-drawn animation. Senior animators — called key animators — would draw the most important frames of a sequence: the start pose, the end pose, and any critical positions in between. These were the keyframes.

Junior animators, known as in-betweeners, would then draw all the frames between those keyframes to create smooth motion. This division of labor made animation practical at scale.

2

How Digital Keyframes Work

In digital animation, the concept is the same — but the computer handles the in-betweening (called interpolation or tweening). You define property values at specific points in time, and the software calculates every frame in between automatically.

A keyframe has three components:

  • Target — which element to animate
  • Time — when (in milliseconds) this value applies
  • Value — the property value at that moment
Keyframe definition
// Fade in a box from invisible to fully visible
{ targetId: "box-1", property: "opacity",  time: 0,    value: 0 }
{ targetId: "box-1", property: "opacity",  time: 800,  value: 1 }

// Slide it 200px to the right
{ targetId: "box-1", property: "translateX", time: 0,   value: 0 }
{ targetId: "box-1", property: "translateX", time: 800, value: 200 }

The computer smoothly transitions the element's opacity from 0 to 1 and its horizontal position from 0 to 200 over 800 milliseconds. You only define the start and end — the engine fills in every frame.

3

Animatable Properties

Different properties produce different types of motion. In Excalimate, you can animate seven properties on any diagram element:

  • opacity — fade elements in and out (0 = invisible, 1 = visible)
  • translateX / translateY — slide elements horizontally or vertically
  • scaleX / scaleY — grow or shrink elements
  • rotation — spin elements around their center
  • drawProgress — progressively draw arrows and lines (0 = hidden, 1 = fully drawn)

Combining properties creates rich effects. For example, animating both opacity and scaleX/scaleY together produces a "pop-in" effect where an element appears and grows simultaneously.

4

Easing Functions

Easing controls how the interpolation happens between keyframes. Without easing, motion is linear — constant speed from start to finish, which feels mechanical and unnatural.

Easing functions add acceleration and deceleration to make animations feel organic. Common easing types include:

  • easeIn — starts slow, accelerates toward the end
  • easeOut — starts fast, decelerates to a stop
  • easeInOut — slow start and end, fast in the middle
  • easeOutBack — overshoots the target then settles back (bouncy)
  • easeOutBounce — bounces at the end like a ball dropping
  • step — instant jump with no interpolation
Easing examples
// Linear — constant speed, mechanical feel
{ targetId: "el", property: "opacity", time: 0,   value: 0, easing: "linear" }
{ targetId: "el", property: "opacity", time: 500, value: 1 }

// easeOutBack — overshoots then settles, natural bounce
{ targetId: "el", property: "scaleX", time: 0,    value: 0, easing: "easeOutBack" }
{ targetId: "el", property: "scaleX", time: 600,  value: 1 }

// easeInOutCubic — smooth start and end
{ targetId: "el", property: "translateY", time: 0,   value: -50, easing: "easeInOutCubic" }
{ targetId: "el", property: "translateY", time: 700, value: 0 }
5

Keyframe Animation in Excalimate

Excalimate brings keyframe animation to diagrams and whiteboard designs. Instead of animating characters or illustrations, you animate the elements of your diagrams — boxes, arrows, text, and shapes — to tell a visual story.

A common pattern is progressive reveal: elements appear one at a time, guided by keyframes, so your audience follows the narrative step by step instead of seeing everything at once.

Excalimate keyframe animation
create_animated_scene({
  elements: [ /* your diagram shapes */ ],
  keyframes: [
    { targetId: "title",  property: "opacity", time: 0,    value: 0 },
    { targetId: "title",  property: "opacity", time: 500,  value: 1, easing: "easeOut" },
    { targetId: "arrow",  property: "drawProgress", time: 500,  value: 0 },
    { targetId: "arrow",  property: "drawProgress", time: 1200, value: 1, easing: "easeInOut" },
    { targetId: "server", property: "scaleX",  time: 1200, value: 0 },
    { targetId: "server", property: "scaleX",  time: 1600, value: 1, easing: "easeOutBack" },
    { targetId: "server", property: "scaleY",  time: 1200, value: 0 },
    { targetId: "server", property: "scaleY",  time: 1600, value: 1, easing: "easeOutBack" },
  ]
})

This example fades in a title, then draws an arrow, then pops in a server box with a bounce — all orchestrated through keyframes with different easing curves.

6

Benefits Over Frame-by-Frame

Keyframe animation offers major advantages over manually creating each frame:

  • Efficiency — define just a few keyframes instead of hundreds of individual frames
  • Flexibility — change timing, values, or easing without redrawing anything
  • Small file size — keyframe data is tiny compared to frame-by-frame video
  • Smooth motion — the computer generates perfectly smooth interpolation
  • Non-destructive — adjust any keyframe without affecting the original design