Motion

Motion is a powerful tool that should be used sparingly in the driving context. It is appropriate only when it can help inform drivers without distracting their attention from the road.

Guidance at a glance (TL;DR):

  • Avoid distracting users with unnecessary motion
  • Use motion to increase users’ understanding and build their proficiency
  • Make your motion language flexible enough for all relevant hardware
  • Use the recommended motion pattern for your situation

Motion principles

When designing motion for Android for Cars interfaces, keep three basic principles in mind: be safe, be informative, and be flexible.

Safe

Driving is the user's primary task – everything else is secondary. Treat the user’s attention as a limited resource, and avoid using motion to create unnecessary distractions.

eye gif

Informative

Use motion to convey information that helps users. For example, motion can increase users' understanding of the product by demonstrating hierarchical and spatial relationships between elements. Motion can also help to build users' proficiency with the interface by indicating available interactions.

Informative gif

Flexible

Define a motion language that is scalable and flexible enough to adjust to screens of all sizes and shapes, as well as to all types of user input.

Flex screen gif

Motion patterns

To support a consistent user experience across all apps, Android Automotive provides recommendations for specific motion patterns to use in the following situations:

  • Switching between same-level views
  • Moving to a detail view
  • Extending an existing action
  • Minimizing and expanding an action
  • Disrupting an action

All of the motion patterns in this section are based on standard easing, as discussed in the Material Design Easing guidelines. That is, the motions speed up quickly and slow down more gradually, to draw focus to the end of the transition.


Switching between same-level views

When switching between views at the same level of hierarchy in an app, such as tabs in the app bar or songs in a playlist, use a side-to-side motion. The horizontal movement reinforces the idea of staying at the same level within the app.

Peer transition example
A swift crossfade takes the user from a navigational app to a media app and back again in Android Automotive

Example

In Android Automotive OS, the side-to-side motion when switching from the Home tab to the Playlists tab in a media app reinforces that both tabs are top-level views of content

Moving to a detail view

When moving from a higher-level view of content to a detail view, use a z-depth motion that scales up the lower layer and fades it in as the higher layer fades out. This motion reinforces the parent-child relationship between the higher-level view and the detail view, drawing focus to the latter.

Parent to child transition
From a parent screen, the child element lifts up and expands in place

Example

Switching to a detail view
In the Android Automotive OS media template, when the user clicks on a specific album in a grid of albums, the song list for that album scales up and expands to bring the details into focus

Extending an existing action

When a user is in an action and takes a related action, use a vertical (up or down) motion to introduce the secondary action on a full-screen overlay, with a scrim background, on top of the primary action. Being able to see the primary action through the scrim reinforces that the user is still in that action.

When closing the secondary action, use the reverse of this motion. The reverse motion should take less time than the original motion, since the user is done with the secondary action and is ready to exit.

Secondary action overlay
Here, the secondary action rises up from the primary action on an overlay, while the primary action remains partially visible behind the scrim

Example

Android Auto OS action overlay example
In the Android Automotive OS media template, when the user taps the overflow button to expand the control bar, additional controls rise up and appear on on overlay

Minimizing and expanding an action

When expanding an ongoing action that has been minimized into a smaller onscreen format to allow multitasking, use an expanding window mask with a full-screen fade-in.

When minimizing an ongoing action, use the reverse of this motion. The minimizing motion should take less time than the expanding motion, since the user is essentially leaving this action and is ready to get it out of the way.

Expanding a minimized screen
The minimized action expands to full screen as it fades in on top of the current action

Example

Android Automotive OS control bar example
In the Android Automotive OS media template, the minimized control bar expands into the full playback view – and then contracts back into its minimized form when the user taps the down arrow

Disrupting an action

When a short, non-blocking action needs to appear suddenly on top of an ongoing action, slide it down or up from the edge of the screen (with a partial scrim) or fade it into the middle (with a full scrim). Start the motion from the location closest to where you want the new action to appear.

Short action example
When the disruptive action should appear near the top of the screen, slide it in from the top with a partial scrim

Example

Dialog example
When a disruptive action appears in the middle of the Android Automotive OS media template, it fades in with a full scrim to focus user attention temporarily on the new action – in this case, a request for permission to use location data