06 — Motion System

Easing Functions


Three easing categories are defined in IDL: linear, decelerate, and accelerate. Each is expressed as a cubic-bezier tuple that is the normative representation. Platform implementations MUST reproduce the specified bezier values within a tolerance of ±0.01. Custom easing functions require RFC approval; ad-hoc cubic-bezier values in component declarations are Transform errors.

Easing Reference

CategoryTokenBezierUse Case
Linearmotion.easing.linearcubic-bezier(0, 0, 1, 1)Continuous, uniform animations — progress bars, loaders.
Deceleratemotion.easing.deceleratecubic-bezier(0, 0, 0.2, 1)Objects entering the screen — elements arriving from outside the viewport.
Acceleratemotion.easing.acceleratecubic-bezier(0.4, 0, 1, 1)Objects leaving the screen — elements departing from the viewport.

Easing and Perceptual Physics

The three easing categories map to physical motion archetypes. Decelerating easing gives arriving objects the quality of something that had velocity and came to rest — consistent with spatial metaphors for modal entry, panel expansion, and content loading. Accelerating easing gives departing objects the quality of something that built velocity to leave — consistent with modal dismissal and panel collapse. Linear easing is reserved for non-spatial, process-oriented animations.