# MotionScheme

Artifact: [androidx.compose.material3:material3](https://developer.android.com/jetpack/androidx/releases/compose-material3) [View Source](https://cs.android.com/search?q=file:androidx/compose/material3/MotionScheme.kt+class:androidx.compose.material3.MotionScheme) Common/AllAndroid/JVM
- Cmn

  ```
  interface MotionScheme
  ```

*** ** * ** ***

A motion scheme provides all the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`s for a `https://developer.android.com/reference/kotlin/androidx/compose/material3/MaterialTheme`.

Motion schemes are designed to create a harmonious motion for components in the app.

There are two built-in schemes, a `https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#standard()` and an `https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#expressive()`, that can be used as-is or customized.

You can customize the motion scheme for all components in the `https://developer.android.com/reference/kotlin/androidx/compose/material3/MaterialTheme`.

## Summary

| ### Public companion functions |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#expressive()()` Returns an expressive Material motion scheme. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme` | `https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#standard()()` Returns a standard Material motion scheme. | Cmn |

| ### Public functions |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#defaultEffectsSpec()()` A default effects motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#defaultSpatialSpec()()` A default spatial motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#fastEffectsSpec()()` A fast effects motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#fastSpatialSpec()()` A fast spatial motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#slowEffectsSpec()()` A slow effects motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#slowSpatialSpec()()` A slow spatial motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`. | Cmn |

## Public companion functions

### expressive

Cmn

```
fun expressive(): MotionScheme
```

Returns an expressive Material motion scheme.

The expressive scheme is Material's recommended motion scheme for prominent UI elements and hero interactions. It provides a visually engaging motion feel.

### standard

Cmn

```
fun standard(): MotionScheme
```

Returns a standard Material motion scheme.

The standard scheme is Material's basic motion scheme for utilitarian UI elements and recurring interactions. It provides a linear motion feel.

## Public functions

### defaultEffectsSpec

Cmn

```
fun <T : Any?> defaultEffectsSpec(): FiniteAnimationSpec<T>
```

A default effects motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`.

This motion spec is designed to be applied to animations that do not change the shape or bounds of the component. For example, color animation.

`https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#defaultEffectsSpec()` is the generic data type that will be animated by the system, as long as the appropriate `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` for converting the data to and from an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` is supplied.

### defaultSpatialSpec

Cmn

```
fun <T : Any?> defaultSpatialSpec(): FiniteAnimationSpec<T>
```

A default spatial motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`.

This motion spec is designed to be applied to animations that may change the shape or bounds of the component. For color or alpha animations use the `effects` equivalent which ensures a "non-spatial" motion.

`https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#defaultSpatialSpec()` is the generic data type that will be animated by the system, as long as the appropriate `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` for converting the data to and from an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` is supplied.

### fastEffectsSpec

Cmn

```
fun <T : Any?> fastEffectsSpec(): FiniteAnimationSpec<T>
```

A fast effects motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`.

This motion spec is designed to be applied to animations that do not change the shape or bounds of the component. For example, color animation.

`https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#fastEffectsSpec()` is the generic data type that will be animated by the system, as long as the appropriate `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` for converting the data to and from an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` is supplied.

### fastSpatialSpec

Cmn

```
fun <T : Any?> fastSpatialSpec(): FiniteAnimationSpec<T>
```

A fast spatial motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`.

This motion spec is designed to be applied to animations that may change the shape or bounds of the component. For color or alpha animations use the `effects` equivalent which ensures a "non-spatial" motion.

`https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#fastSpatialSpec()` is the generic data type that will be animated by the system, as long as the appropriate `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` for converting the data to and from an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` is supplied.

### slowEffectsSpec

Cmn

```
fun <T : Any?> slowEffectsSpec(): FiniteAnimationSpec<T>
```

A slow effects motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`.

This motion spec is designed to be applied to animations that do not change the shape or bounds of the component. For example, color animation.

`https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#slowEffectsSpec()` is the generic data type that will be animated by the system, as long as the appropriate `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` for converting the data to and from an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` is supplied.

### slowSpatialSpec

Cmn

```
fun <T : Any?> slowSpatialSpec(): FiniteAnimationSpec<T>
```

A slow spatial motion `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec`.

This motion spec is designed to be applied to animations that may change the shape or bounds of the component. For color or alpha animations use the `effects` equivalent which ensures a "non-spatial" motion.

`https://developer.android.com/reference/kotlin/androidx/compose/material3/MotionScheme#slowSpatialSpec()` is the generic data type that will be animated by the system, as long as the appropriate `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` for converting the data to and from an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` is supplied.