Skip to content
We use motion to help convey meaning in our user interfaces.

Motion can reduce cognitive load on users and help inform them about how to use Pleo, as well as making the product delightful to use. It can help with:

  • Expectation. Motion can reduce the gap between what a user expects might happen, and what actually happens.
  • Continuity. This can apply to how a user moves through a feature from end to end, and also to the consistency of the user's experience across the application.
  • Narrative. How a series of discreet moments or interactions can be linked together through motion to create a coherent story.
  • Relationship. Informing a user through motion about how components and interactions relate to each other, in order to guide their understanding and decision making.

These guidelines aim to help you when creating motion for your components and features. But they might not be appropriate in every use case, so use your judgement when deciding what works best.

Looking for motion tokens? Check out the motion token documentation.

The motion of an element should be determined by the context of the motion, the size of the element that is moving, and the distance that the element is travelling.

An element can enter, move within, or exit the screen. This context affects both the duration and the easing that should be used for motion.

Elements that enter the screen should use an ease-out curve. They should start fast and slow down as they reach their destination. They should also take longer to reach their destination than elements exiting the screen. A real world example is a Drawer opening.

Elements that move within the screen should use an ease-in-out curve. They should start slow, speed up in the middle, and slow down again as they reach their destination. Their speeds sit in between entering and exiting elements. A real world example is a Button background changing on hover.

Elements that exit the screen should use an ease-in curve. They should start slow and speed up as they leave the screen. It should furthermore take less time for an element to leave the screen than it should for an element to enter the screen. A real world example is a Drawer closing.

The size of the moving element should affect the duration of the motion. Larger elements (e.g a Drawer) should move slower than smaller elements (e.g a Popover). As a rough guideline, the motion of large elements affect the layout of the page (for example an Accordion) whilst a small element does not (for example a Tooltip).

The distance that an element is moving should affect the duration of its motion. Elements that are travelling a long distance should move more slowly than elements that are travelling a short distance. An example of an element travelling a long distance is a Drawer component opening or closing, and an example of an element travelling a short distance is the "thumb" in a Switch component when toggling between off and on states.

If you have a collection of the same item all animating in at once, you may want to stagger the animations. For example, a list of items which are all entering the screen at the same time.

Think about the direction of the motion as an element enters or exits the screen. For example, a list item should move up as it enters the screen, and down as it exits. Which direction you choose to animate in should ideally be based on the user's expectations and the context of where the element sits on the page.

Motion should be used to enhance the user experience, not to distract from it. It should be used sparingly and with purpose. Too much motion, or extreme animations, can make for a chaotic and overwhelming user experience.

To help you apply the concepts described on this page, we have defined a collection of semantic motion tokens in Telescope. We use these tokens to achieve consistent motion throughout our products and features at Pleo.

This page is a draft. Its content is likely to change.