Interaction ProTip #2: Choose your ease

  • 5 min Read Time
  • #protip #easing #interaction

Easing is a basic building block for interaction work. In case it's completely new to you, you can think of it as how motion feels.

Most things in the real world exhibit some form of easing, where they perhaps start slow and accelerate and slow down again. Very few things start immediately, move linearly, then stop abruptly. In fact, the most obvious thing that fits that description is a robot, which is almost the definition of something artificial or unnatural. Including easing in our work, then, makes it feel more natural and real.

Remapping time. #

In its most basic form easing is a simple remapping function. Let's assume we want to move a box from left to right over - say - 1 second. One option is simply to divide the distance by the time and move an equal amount each frame. That is linear motion, which we just decided was robotic and weird. But we can take the linear value of how far we are through the motion (a number between 0 and 1) and plug into an easing equation and have it remapped to something awesomer!

There are a bunch of easing equations you can use, but generally they fall into three groups: in, out and in-out.

Ease In #

These start slow and get faster as they go, coming to and abrupt stop at the end. Essentially they "ease in" to the motion and the graph looks like this:

An ease in curve

Ease Out #

These start quickly and slow down at the end of the motion, coming to a nice easy settle. As the name implies, they "ease out" of the motion.

An ease out curve

Ease In-Out #

The combination of the above, these start slow and end slow. Bit like a car accelerating and decelerating.

An ease in-out curve

Easing in interfaces #

Now that we've defined our eases, you'll likely want to know which is the right kind for interaction work.

A quintic ease out curve

Resources #

There are some libraries and tools I heartily recommend you take a look at: