---
url: /styles/motion/transitions/applying-transitions.md
description: Transitions help guide people as they navigate an app
---

# Transitions

Transitions help guide people as they navigate an app

[Transition patterns](transition-patterns.md) · **Applying transitions**

::: info Note
M3 transitions use the legacy easing and duration system. They'll eventually be updated to use the motion physics system.
:::

## What makes a good transition?

Well-designed transitions should have these characteristics:

### Follows accessibility settings

Most platforms have a reduced animation setting to help users with a sensitivity to motion. If that setting is on, transitions should:

* Use subtle fades instead of intense sliding or scaling animations
* Disable decorative effects like parallax or shape morphing

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygy2t4f-GM3-Styles-Motion-Transitions-ApplyingTransitions-1-v01.mp4?alt=media" aria-label="Podcast is selected and exited quickly on the left, while a podcast is selected and exited more slowly on the right."></video>

1. Transitions with a default motion setting 
2. Transitions with a reduced motion setting turned on

<a id="1b704202-167d-48d5-bca1-614cf050de1b"></a>

### Consistent

Consistently applying the right type of transition helps make apps feel cohesive and predictable to use.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygy4536-GM3-Styles-Motion-Transitions-ApplyingTransitions-2-v01.mp4?alt=media" aria-label="Multiple apps move in tandem with the same motion effect, appearing in sync."></video>

These four Android apps use the same forward and backward transition, making them feel like a cohesive family of apps

<a id="b82b5150-609b-4540-903b-2b900ef830aa"></a>

### Stable layouts

Use skeleton loaders so that UI elements are coherent and stable during a transition. Avoid content shifting positions or instantly popping in as it loads. It can be distracting and frustrating to use.

::: tip Do
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygy6hgi-GM3-Styles-Motion-Transitions-ApplyingTransitions-3-1-v01.mp4?alt=media" aria-label="Podcast window opens with pulsing outline that frames content added slowly."></video>

Transitions should use skeleton loaders with a subtle pulsing animation to stabilize a layout as it loads
:::

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygy75ou-GM3-Styles-Motion-Transitions-ApplyingTransitions-3-2-v01.mp4?alt=media" aria-label="Podcast window opens with no outline, and content added into haphazard clusters."></video>

Content should not pop in and shift locations during a transition
:::

### No jarring jump cuts

Jump cuts should generally be avoided as a default setting since they can be disorienting. Instantly transitioning from one screen to the next offers no clues to help a user orient themselves.

If pure efficiency is a top priority, like opening a menu in a productivity app, a jump cut may be preferred.

::: tip Do
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygy7y9g-GM3-Styles-Motion-Transitions-ApplyingTransitions-4-1-v01.mp4?alt=media" aria-label="Items in a music library are smoothly transitioned between."></video>

Animated transitions help users orient themselves as they navigate
:::

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygy8zr2-GM3-Styles-Motion-Transitions-ApplyingTransitions-4-2-v01.mp4?alt=media" aria-label="Items in a library are selected with stark, quick transitions."></video>

For most common transitions, jump cuts are jarring and disorienting
:::

### Coherent spatial model

Transitions are used to establish a coherent spatial model. This helps users understand the physical layout of an app.

::: tip Do
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygya5u9-GM3-Styles-Motion-Transitions-ApplyingTransitions-5-1-v01.mp4?alt=media" aria-label="An image within a horizontal carousel is also scrolled horizontally."></video>

These carousel transitions have a coherent spatial layout while navigating between a collapsed and expanded view
:::

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyav9v-GM3-Styles-Motion-Transitions-ApplyingTransitions-5-2-v01.mp4?alt=media" aria-label="An image within a horizontal carousel is scrolled vertically."></video>

Switching between horizontal and vertical carousel layouts creates a confusing spatial model
:::

### Unified direction

A transition should have a unified direction of movement. Elements are grouped and move along a primary axis instead of moving in independent directions. Only important elements like hero images remain persistent throughout the transition. This helps guide a users focus.

::: tip Do
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygybwyn-GM3-Styles-Motion-Transitions-ApplyingTransitions-6-1-v01.mp4?alt=media" aria-label="Selected song expands in a cohesive upward direction, marked by two blue lines showing unified movement."></video>

This transition has a simple vertical motion that’s easy to follow
:::

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygycnpj-GM3-Styles-Motion-Transitions-ApplyingTransitions-6-2-v01.mp4?alt=media" aria-label="Selected song expands in a jarring manner with multiple elements moving in different directions, marked by multiple red lines."></video>

Don’t animate many persistent elements independently. The various moving parts are distracting
:::

### Clean fades

Fully fade out content before fading new content in. This avoids the overlap of partially transparent elements resulting in distracting and messy frames.

If a cross fade needs to occur, keep it quick and hide it during the fastest part of the transition.

::: tip Do
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygydts6-GM3-Styles-Motion-Transitions-ApplyingTransitions-7-1-v01.mp4?alt=media" aria-label="Selected restaurant information fades out as it shrinks to reveal Google Map beneath.."></video>

Fade content out before fading new content in to maintain a clean design
:::

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyekln-GM3-Styles-Motion-Transitions-ApplyingTransitions-7-2-v01.mp4?alt=media" aria-label="Restaurant information remains visible as it shrinks and reveals the map beneath."></video>

Avoid showing cross faded content, the overlap of partially transparent elements can result in messy and distracting frames
:::

Don't slowly fade components on top of other content as they enter or exit. This creates distracting cross faded frames. If a fade is needed, like with a Dialog entering in the middle of the screen, the fade should use a short duration to hide that part of the transition.

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyfxw6-GM3-Styles-Motion-Transitions-ApplyingTransitions-8-v01.mp4?alt=media" aria-label="Message window remains transparent with details visible as it shrinks causing text beneath to become obscured."></video>

Don't fade a bottom sheet as it enters and exits, it creates distracting cross faded frames
:::

### Simple style

Transitions are not receptive to highly stylized motion. They're frequent, often occupy large portions of the screen, and are primarily meant to help users accomplish a task.

::: tip Do
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyi588-GM3-Styles-Motion-Transitions-ApplyingTransitions-9-1-v01.mp4?alt=media" aria-label="Calendar event expands evenly and quickly comes to a rest."></video>

Transitions should have a simple style
:::

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyja80-GM3-Styles-Motion-Transitions-ApplyingTransitions-9-2-v01.mp4?alt=media" aria-label="Calendar event expands with window bouncing momentarily and bouncing again on collapse."></video>

Common transitions should not use overt style effects like bouncy springs
:::

## Choosing a transition pattern

Consider the following to choose the right transition for a given use case:

<a id="50f9fc3f-c7e2-4099-b614-7c36b1c5285d"></a>

### Container transform

This pattern is highly effective at creating a relationship between elements. It's also the most dramatic pattern in terms of style and should be reserved for the right context. Consider using it for:

1. Hero moments that should be expressive
2. Shallow hierarchies where you expand an element for more detail then collapse it
3. Creating a seamless connection between elements

**Read the research for the benefits of container transform**__&#xA0;[here](https://material.io/blog/motion-research-container-transform).__

::: tip Do
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygykdgf-GM3-Styles-Motion-Transitions-ApplyingTransitions-10-1-v01.mp4?alt=media" aria-label="Image within a carousel is selected and expands to fill the screen."></video>

A container transform creates a clear connection between the thumbnail and expanded image. It also makes this hero transition more expressive.
:::

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyl1ui-GM3-Styles-Motion-Transitions-ApplyingTransitions-10-2-v01.mp4?alt=media" aria-label="Battery life menu item among many setting options is selected and expanded to fill the screen."></video>

Don't use container transform in apps with deep hierarchies, the motion becomes excessive. The expressive style also doesn't fit this utility focused navigation.
:::

Use a container transform transition for hero moments rather than a forward and backward transition.

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyn2vj-GM3-Styles-Motion-Transitions-ApplyingTransitions-11-v01.mp4?alt=media" aria-label="A One-Year-Ago photo memory is selected and expanded to take over the screen."></video>

Don't use forward and backward transitions on hero moments like opening a photo memory
:::

<a id="41b11a78-b88f-4972-904c-880bc348acc8"></a>

### Forward and backward

Both Android and iOS should use platform defaults for forward and backward navigation. It's easy to implement and stays current as platforms update. They have a simple motion style suitable for such a common transition.

::: tip Do
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyo6nk-GM3-Styles-Motion-Transitions-ApplyingTransitions-12-1-v01.mp4?alt=media" aria-label="Individual message is selected with simple motion, and moves back with simple motion."></video>

Platform default forward and backward transitions are a sensible choice for common navigation
:::

::: warning Caution
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyoxdg-GM3-Styles-Motion-Transitions-ApplyingTransitions-12-2-v01.mp4?alt=media" aria-label="Individual message is selected, causing a more radical take-over of the screen."></video>

Container transform transitions require custom implementations and the motion may feel excessive when used frequently
:::

<a id="3d5c16ce-7350-4a33-9d2b-598a7591d4e6"></a>

### Lateral

Lateral transitions are used to browse peer content that's part of the same set, like navigating between tabs in a media library. By sliding content horizontally, it hints at being able to swipe the content area to navigate between peers.

::: tip Do
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyq7yo-GM3-Styles-Motion-Transitions-ApplyingTransitions-13-1-v01.mp4?alt=media" aria-label="Tabs in a music app shift horizontally without interruption when selected."></video>

A tab component uses a lateral transition type
:::

::: warning Caution
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyr0oo-GM3-Styles-Motion-Transitions-ApplyingTransitions-13-2-v01.mp4?alt=media" aria-label="Tabs in a music app fade as they rotate horizontally."></video>

Fading content as it slides makes the peer relationship and swipe gesture less obvious. The style also may be confused with a forward and backward transition.
:::

Don't use a Lateral transition for navigating hierarchical screens. Sliding content the full width of the screen is excessive for a high frequency transition. It also implies an equal peer relationship which isn't accurate to the hierarchy of the screens.

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygysi3q-GM3-Styles-Motion-Transitions-ApplyingTransitions-14-v01.mp4?alt=media" aria-label="Message selected within messaging app moves laterally."></video>

A lateral transition should not be used for common forward and backward navigation as it results in an excessive amount of motion
:::

<a id="ab8885f6-5517-419d-80de-bea50cd10467"></a>

### Top level

When tapping a navigation bar, rail or drawer, a quick fade is used to transition to a new destination. Top level destinations aren't necessarily related, so the motion intentionally does not create a connection between screens.

A lateral transition pattern is not recommended for this type of navigation. It implies you can swipe between top level destinations which conflicts with other components like carousels or swipe-able list items.

::: tip Do
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygytotc-GM3-Styles-Motion-Transitions-ApplyingTransitions-15-1-v01.mp4?alt=media" aria-label="Navigation between home and music app occurs with a quick fade, suggesting that items in each are distinct."></video>

A top level transition type is used with a navigation bar, rail and drawer
:::

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyuc8i-GM3-Styles-Motion-Transitions-ApplyingTransitions-15-2-v01.mp4?alt=media" aria-label="Navigation between home a music app occurs in a seamless lateral scroll, falsely suggesting that items in each are connected."></video>

Don't use a lateral transition to move between top level destinations. The gesture conflicts with carousel and list item gestures.
:::

<a id="56675bd6-5e69-4fa8-b075-d694e8cb3ad4"></a>

### Enter and Exit

This transition pattern is used to introduce a component in context of the screen’s main UI. It can be modal, like a dialog requiring a user to take action. Or it can allow for simultaneously using both regions of the UI, like a standard bottom sheet over a map.

Don't use this pattern for navigating hierarchical screens. Sliding content the full height of the screen is excessive and it creates an unclear relationship between screens.

::: tip Do
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygyvia4-GM3-Styles-Motion-Transitions-ApplyingTransitions-16-1-v01.mp4?alt=media" aria-label="Animation showing a standard bottom sheet using the enter and exit transition over a map."></video>

This bottom sheet uses an enter and exit transition pattern
:::

::: danger Don't
<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flygywcfr-GM3-Styles-Motion-Transitions-ApplyingTransitions-16-2-v01.mp4?alt=media" aria-label="Animation showing a card expanding to a full screen on click and using the enter and exit transition."></video>

Don't use an enter and exit pattern for navigating hierarchical screens
:::
