The Physics and Mathematics of Bézier Curves in CSS
The CSS Transitions Level 1 specification parameterizes motion acceleration over time using third-order parametric Bézier curves. A cubic Bézier curve is defined by four coordinate points in a 2D unit plane: P0(0, 0), P1(x1, y1), P2(x2, y2), and P3(1, 1). The horizontal axis (X) represents normalized time from 0.0 to 1.0 (0% to 100% duration), and the vertical axis (Y) represents animation progression or displacement. The function is declared in CSS as cubic-bezier(x1, y1, x2, y2).
/* Parametric Cubic Bézier Formula:
B(t) = (1-t)³P0 + 3(1-t)²tP1 + 3(1-t)t²P2 + t³P3 for t ∈ [0, 1] */
.smooth-modal {
transition-property: transform, opacity;
transition-duration: 350ms;
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1); /* Custom Apple Ease-Out */
}