Cubic Bézier easing

A cubic bezier easing defines the pace of an animation using a Bézier curve.

For JavaScript

The cubicBezier() function must be imported for the js animate():

import { animate, cubicBezier } from 'animejs';

animate(target, { x: 100, ease: cubicBezier(0, 0, 0.58, 1) });

For WAAPI

The waapi animate() function uses the browser native cubic bezier timing function and can be specified as a String directly in the ease parameter:

import { waapi } from 'animejs';

waapi.animate(target, { x: 100, ease: 'cubic-bezier(0, 0, 0.58, 1)' });

// Or

waapi.animate(target, { x: 100, ease: 'cubicBezier(0, 0, 0.58, 1)' });

Parameters

The cubic bezier function takes 4 parameters cubicBezier(x1, y1, x2, y2):

Name Type Info
x1 Number X coordinate of the first control point. Must be between 0 and 1.
y1 Number Y coordinate of the first control point. Can be any value (negative creates anticipation, >1 creates overshoot).
x2 Number X coordinate of the second control point. Must be between 0 and 1.
y2 Number Y coordinate of the second control point. Can be any value (negative creates anticipation, >1 creates overshoot).

Examples

Name Editor link
In cubic bezier curve Open in editor
Out cubic bezier curve Open in editor
InOut cubic bezier curve Open in editor
OutIn cubic bezier curve Open in editor

Cubic Bézier easing code example

import { animate, waapi, cubicBezier } from 'animejs';

animate('.row:nth-child(1) .square', {
  x: '17rem',
  rotate: 360,
  ease: cubicBezier(0.5, 0, 0.9, 0.3)
});

animate('.row:nth-child(2) .square', {
  x: '17rem',
  rotate: 360,
  ease: cubicBezier(0.1, 0.7, 0.5, 1)
});

waapi.animate('.row:nth-child(3) .square', {
  x: '17rem',
  rotate: 360,
  ease: 'cubicBezier(0.7, 0.1, 0.5, 0.9)'
});
<div class="medium row">
  <div class="square"></div>
  <div class="padded label">cubicBezier(0.5, 0, 0.9, 0.3)</div>
</div>
<div class="medium row">
  <div class="square"></div>
  <div class="padded label">cubicBezier(0.1, 0.7, 0.5, 1)</div>
</div>
<div class="medium row">
  <div class="square"></div>
  <div class="padded label">cubicBezier(0.7, 0.1, 0.5, 0.9)</div>
</div>