An interactive glossary
The Vocabulary of Motion
Every term in UI animation — shown as a live demo where it moves, defined where it's a concept, with the code behind each one.
Vocabulary & definitions adapted from animations.dev · built with Framer Motion
Fade
An element appears or disappears by changing opacity.
Slide in
An element enters by sliding in from off-screen.
Scale in
An element grows from smaller to full size, often paired with a fade.
Pop in
An element appears with a slight overshoot, like it bounces into place.
Reveal
Content is uncovered gradually, often by animating a clip-path or mask.
Enter / Exit
The animation an element plays when it's added to or removed from the screen.
— interactive, try it aboveStagger
Animate several items one after another with a small delay between each.
Orchestration
Deliberately timing multiple animations so they feel like one coordinated motion.
Duration
How long an animation takes.
Delay
Time before an animation starts.
Keyframes
Defined points in an animation (0%, 50%, 100%) that the browser fills the gaps between.
— interactive, try it aboveInterpolation / Tween
Generating all the in-between frames between a start and end value, so motion is continuous.
Fill mode
Whether an element keeps its first or last frame's styles before and after the animation runs.
Stepped animation
An animation divided into discrete steps, like a clock's second hand or a countdown.
— interactive, try it aboveEasing
The rate at which an animation speeds up or slows down.
— interactive, try it aboveEase-out
Starts fast, ends slow. The default for most UI and anything responding to the user.
— interactive, try it aboveEase-in
Starts slow, ends fast. Usually avoided for UI; can feel sluggish.
— interactive, try it aboveEase-in-out
Slow, fast, slow. Good for elements already on screen moving from A to B.
— interactive, try it aboveLinear
Constant speed. Avoid for UI; reserve for spinners or marquees.
— interactive, try it aboveCubic-bezier
A custom easing curve you define for precise control — here, an overshoot.
— interactive, try it aboveAsymmetric easing
A curve that accelerates and decelerates at different rates.
— interactive, try it aboveSpring
Motion driven by physics — stiffness, damping, mass — instead of a fixed duration.
— interactive, try it aboveStiffness / Tension
How strongly the spring pulls toward its target. Higher feels snappier.
— interactive, try it aboveDamping
How quickly a spring settles. Lower damping means more bounce and oscillation.
— interactive, try it aboveMass
How heavy the animated element feels. More mass makes it slower.
— interactive, try it aboveBounce
A spring that overshoots and settles, adding playfulness.
Interruptible
An animation that can be smoothly redirected mid-flight instead of finishing first.
— interactive, try it abovePerceptual duration
How long a spring feels finished, even though it keeps micro-settling.
Momentum
Motion that carries velocity, especially after a drag or interruption.
Velocity
How fast and in which direction an element is moving.
Translate
Move an element along the X or Y axis.
— interactive, try it aboveScale
Make an element bigger or smaller.
— interactive, try it aboveRotate
Spin an element around a point.
— interactive, try it aboveSkew
Slant an element along the X or Y axis, shearing it out of its rectangle.
— interactive, try it above3D tilt / Flip
Rotate in 3D space (rotateX / rotateY) under a perspective to add depth.
— interactive, try it abovePerspective
How strong the 3D effect looks — a lower value exaggerates depth.
— interactive, try it aboveTransform origin
The anchor point a scale or rotation grows or spins from.
— interactive, try it aboveOrigin-aware animation
Elements animate from their trigger rather than from their own center.
— interactive, try it aboveLayout animation
When an element's size or position changes, it animates to the new spot instead of snapping.
— interactive, try it aboveHeight animates to fit its content instead of snapping open. The container clips the overflow while it expands.
Accordion / Collapse
A section smoothly expands and collapses its height to show or hide content.
— interactive, try it aboveMorph
One shape smoothly turns into another shape, e.g. the Dynamic Island.
— interactive, try it aboveDirection-aware transition
Content slides one way going forward and the opposite way going back.
— interactive, try it aboveCrossfade
One element fades out as another fades in, in the same spot.
— interactive, try it aboveContinuity transition
A change that keeps the user oriented by visually connecting before and after.
Carousel / Slider
A horizontal pager that slides and snaps between slides, with dot indicators.
— interactive, try it aboveScroll reveal
Elements fade or slide into place as they enter the viewport.
— interactive, try it abovescroll — progress is tied to position
Scroll-driven animation
An animation whose progress is tied directly to scroll position.
— interactive, try it aboveParallax
Background and foreground move at different speeds while scrolling, creating depth.
— interactive, try it abovePage transition
An animation that plays when navigating from one page or route to another.
— interactive, try it aboveView transition
The browser morphs between two states or pages, connecting shared elements.
— interactive, try it aboveHover
A visual change when the cursor moves over an element.
— interactive, try it abovePress / Tap
A subtle scale-down when an element is clicked, so it feels physical.
— interactive, try it aboveHold to confirm
A progress effect that fills up while the user holds a button.
— interactive, try it aboveDrag
Moving an element by grabbing it, with elastic constraints.
— interactive, try it above- ≡Inbox
- ≡Drafts
- ≡Sent
- ≡Archive
Drag to reorder
Dragging items in a list to rearrange them, while the others shift.
— interactive, try it aboveSwipe to dismiss
Dragging an element off-screen to close it, like a drawer or toast.
— interactive, try it abovethe edge
Rubber-banding
Resistance and snap-back when you drag past a boundary (the iOS overscroll feel).
— interactive, try it aboveShake / Wiggle
A quick side-to-side jitter signaling an error or rejected input.
— interactive, try it aboveRipple
A circle expanding from the point of a tap, confirming the press.
— interactive, try it aboveTooltip
A small label that fades and scales in from its anchor on hover or focus.
— interactive, try it abovepull down to refresh ↓
Pull to refresh
Drag a list down past the top to trigger a refresh, with a spinner that appears as you pull.
— interactive, try it aboveMarquee
Text or content that scrolls continuously in a loop.
— interactive, try it aboveLoop
An animation that repeats, a set number of times or infinitely.
— interactive, try it aboveAlternate (yoyo)
A loop that plays forward then reverses each iteration.
— interactive, try it aboveOrbit
An element circling around another in a continuous path.
— interactive, try it abovePulse
A gentle repeating scale or opacity change to draw attention.
— interactive, try it aboveFloat
A gentle, continuous up-and-down drift that makes a static element feel alive.
— interactive, try it aboveIdle animation
Subtle motion that plays while an element is just sitting there.
— interactive, try it aboveBlur
A blur filter used to soften an element or mask tiny imperfections.
— interactive, try it aboveClip-path
Clipping an element to a shape, used for reveals, masks, and before/after sliders.
— interactive, try it aboveMask
Revealing parts of an element using a shape or gradient — like clip-path, but with soft edges.
— interactive, try it aboveBefore / after slider
A draggable divider that wipes between two overlaid images to compare them.
— interactive, try it aboveLine drawing
An SVG path that draws itself in, like an invisible pen tracing it.
— interactive, try it aboveText morph
Text that animates character by character when it changes.
— interactive, try it aboveTypewriter
Text appearing one character at a time, as if being typed.
— interactive, try it aboveNumber ticker
Digits rolling or counting up to a value.
— interactive, try it aboveTabular numbers
Fixed-width digits so numbers don't shift around as they change.
— interactive, try it aboveSkeleton / Shimmer
A placeholder with a moving sheen shown while content loads.
— interactive, try it aboveConfetti / Particles
A burst of particles that fly out and fall — a celebratory success moment.
— interactive, try it aboveProgress / Loader
A determinate bar that fills toward a value, or an indeterminate sweep when the duration is unknown.
— interactive, try it aboveAnticipation
A small wind-up in the opposite direction before a move, hinting at what's about to happen.
— interactive, try it aboveFollow-through
Looser parts keep moving and settle slightly after the main element stops.
— interactive, try it aboveSquash & stretch
Deforming an element as it moves to convey weight, speed, and flexibility.
— interactive, try it aboveReference glossary
Concepts that shape motion but aren't a standalone demo — the rest of the vocabulary.
Performance
- Frame rate (FPS)
- Frames drawn per second. 60fps is the baseline; 120fps on newer displays.
- Jank
- Visible stutter when the browser drops frames because it can't keep up.
- Dropped frame
- A frame the browser missed its deadline to draw, causing a tiny hitch.
- Compositing
- Letting the GPU move or fade an element on its own layer without redoing layout or paint.
- will-change
- A CSS hint that an element is about to animate, so the browser can promote it ahead of time.
- Layout thrashing
- Animating width, height, top, or left forces the browser to recalculate layout repeatedly.
Principles
- Purposeful animation
- Motion should orient, give feedback, or show relationships — not just decorate.
- Perceived performance
- The right animation makes an interface feel faster, even when it isn't.
- Frequency of use
- The more often a user sees an animation, the shorter and subtler it should be.
- Spatial consistency
- Animate so an element keeps its identity and position across states.
- Hardware acceleration
- Animating transform and opacity lets the GPU keep motion smooth.
- Reduced motion
- Respecting prefers-reduced-motion by toning down or removing motion.