# androidx.compose.animation.core

Common/All

In this page, you'll find documentation for types, properties, and functions available in the `androidx.compose.animation.core` package. For example:

- Animation APIs such as `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateDpAsState.composable#animateDpAsState(androidx.compose.ui.unit.Dp,androidx.compose.animation.core.AnimationSpec,kotlin.String,kotlin.Function1)`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)`, and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateRect.composable#(androidx.compose.animation.core.Transition).animateRect(kotlin.Function1,kotlin.String,kotlin.Function1)`.

- Infinite animation APIs such as `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)`, and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/rememberInfiniteTransition.composable#rememberInfiniteTransition(kotlin.String)`.

- Animation spec APIs such as `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#tween(kotlin.Int,kotlin.Int,androidx.compose.animation.core.Easing)`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#snap(kotlin.Int)`, and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframes(kotlin.Function1)`.

- Easing APIs such as `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#FastOutSlowInEasing()`, and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/CubicBezierEasing`.

If you're looking for guidance instead, check out the [Animations in Compose guide](https://developer.android.com/jetpack/compose/animation).

## Interfaces

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Animation` | This interface provides a convenient way to query from an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec` or `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatDecayAnimationSpec`: It spares the need to pass the starting conditions and in some cases ending condition for each value or velocity query, and instead only requires the play time to be passed for such queries. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec` stores the specification of an animation, including 1) the data type to be animated, and 2) the animation configuration (i.e. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec`) that will be used once the data (of type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec`) has been converted to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec` stores the specification of an animation, including 1) the data type to be animated, and 2) the animation configuration (i.e. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedDecayAnimationSpec`) that will be used once the data (of type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec`) has been converted to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec` | This describes `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec`s that are based on a fixed duration, such as `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TweenSpec`, and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SnapSpec`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | Easing is a way to adjust an animation's fraction. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FiniteAnimationSpec` is the interface that all non-infinite `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec`s implement, including: `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TweenSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SpringSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatableSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SnapSpec`, etc. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatAnimationSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatAnimationSpec` interface is similar to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec`, except it deals exclusively with floats. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatDecayAnimationSpec` | This animation interface is intended to be stateless, just like Animation. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition.Segment` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition.Segment` holds `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition.Segment#initialState()` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition.Segment#targetState()`, which are the beginning and end of a transition. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` class contains the definition on how to convert from an arbitrary type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector`, and convert the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` back to the type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec`s are stateless vector based animation specifications. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedDecayAnimationSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedDecayAnimationSpec`s are stateless vector based decay animation specifications. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedDurationBasedAnimationSpec` | Base class for `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec`s that are based on a fixed `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedDurationBasedAnimationSpec#durationMillis()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedFiniteAnimationSpec` | All the finite `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedAnimationSpec`s implement this interface, including: `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedKeyframesSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedTweenSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedRepeatableSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSnapSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSpringSpec`, etc. | Cmn |

## Classes

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Animatable` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Animatable` is a value holder that automatically animates its value when the value is changed via `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Animatable#animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Any,kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationResult` | AnimationResult contains information about an animation at the end of the animation. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope` provides all the animation related info specific to an animation run. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` contains the necessary information to indicate the state of an animation. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` class that is the base class of `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector3D` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector4D`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D` | This class defines a 1D vector. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D` | This class defines a 2D vector that contains two Float values for the two dimensions. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector3D` | This class defines a 3D vector that contains three Float value fields for the three dimensions. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector4D` | This class defines a 4D vector that contains four Float fields for its four dimensions. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/ArcAnimationSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec` that interpolates 2-dimensional values using arcs of quarter of an Ellipse. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/ArcMode` | Interpolation mode for Arc-based animation spec. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/CubicBezierEasing` | A cubic polynomial easing. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimation` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimation` is an animation that slows down from `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimation#(androidx.compose.animation.core.VectorizedDecayAnimationSpec,androidx.compose.animation.core.TwoWayConverter,kotlin.Any,androidx.compose.animation.core.AnimationVector)` as time goes on. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DeferredTargetAnimation` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DeferredTargetAnimation` is intended for animations where the target is unknown at the time of instantiation. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DeferredTransition` | A `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition` that supports a deferred phase, created via `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/rememberDeferredTransition.composable#rememberDeferredTransition(androidx.compose.animation.core.DeferredTransitionState,kotlin.String)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DeferredTransitionState` | A `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TransitionState` that supports a deferred phase before the automatic transition begins. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatExponentialDecaySpec` | This is a decay animation where the friction/deceleration is always proportional to the velocity. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatSpringSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatSpringSpec` animation uses a spring animation to animate a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatTweenSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatTweenSpec` animates a Float value from any start value to any end value using a provided `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatTweenSpec#(kotlin.Int,kotlin.Int,androidx.compose.animation.core.Easing)` function. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteRepeatableSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteRepeatableSpec` repeats the provided `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteRepeatableSpec#(androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)` infinite amount of times. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteTransition` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteTransition` is responsible for running child animations. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteTransition.TransitionAnimationState` | Each animation created using `https://developer.android.com/reference/kotlin/androidx/compose/animation/animateColor.composable#(androidx.compose.animation.core.Transition).animateColor(kotlin.Function1,kotlin.String,kotlin.Function1)`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateFloat.composable#(androidx.compose.animation.core.InfiniteTransition).animateFloat(kotlin.Float,kotlin.Float,androidx.compose.animation.core.InfiniteRepeatableSpec,kotlin.String)`, or `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateValue.composable#(androidx.compose.animation.core.InfiniteTransition).animateValue(kotlin.Any,kotlin.Any,androidx.compose.animation.core.TwoWayConverter,androidx.compose.animation.core.InfiniteRepeatableSpec,kotlin.String)` is represented as a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteTransition.TransitionAnimationState` in `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteTransition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframeBaseEntity` | Base holder class for building a keyframes animation. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec` creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedKeyframesSpec` animation. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec.KeyframeEntity` | Holder class for building a keyframes animation. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec.KeyframesSpecConfig` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec.KeyframesSpecConfig` stores a mutable configuration of the key frames, including `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpecBaseConfig#durationMillis()`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpecBaseConfig#delayMillis()`, and all the key frames. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpecBaseConfig` | Shared configuration class used as DSL for keyframe based animations. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec` creates a keyframe based `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec` using the Monotone cubic Hermite spline to interpolate between the values in `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec#config()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig` | Keyframe configuration class for `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/MutableTransitionState` | MutableTransitionState contains two fields: `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/MutableTransitionState#currentState()` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/MutableTransitionState#targetState()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/PathEasing` | An easing function for an arbitrary `https://developer.android.com/reference/kotlin/androidx/compose/ui/graphics/Path`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatableSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatableSpec` takes another `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec` and plays it `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatableSpec#(kotlin.Int,androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)` times. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SeekableTransitionState` | A `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TransitionState` that can manipulate the progress of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition` by seeking with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SeekableTransitionState#seekTo(kotlin.Float,kotlin.Any)` or animating with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SeekableTransitionState#animateTo(kotlin.Any,androidx.compose.animation.core.FiniteAnimationSpec)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SnapSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SnapSpec` describes a jump-cut type of animation. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SpringSpec` | Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SpringSpec` that uses the given spring constants (i.e. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SpringSpec#(kotlin.Float,kotlin.Float,kotlin.Any)` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SpringSpec#(kotlin.Float,kotlin.Float,kotlin.Any)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/StartOffset` | This class defines a start offset for `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#repeatable(kotlin.Int,androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/StartOffsetType` | This class defines the two types of `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/StartOffset`: `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/StartOffsetType#Delay()` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/StartOffsetType#FastForward()`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TargetBasedAnimation` | This is a convenient animation wrapper class that works for all target based animations, i.e. animations that has a pre-defined end value, unlike decay. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition` manages all the child animations on a state level. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition.TransitionAnimationState` | Each animation created using `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateFloat.composable#(androidx.compose.animation.core.InfiniteTransition).animateFloat(kotlin.Float,kotlin.Float,androidx.compose.animation.core.InfiniteRepeatableSpec,kotlin.String)`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateDp.composable#(androidx.compose.animation.core.Transition).animateDp(kotlin.Function1,kotlin.String,kotlin.Function1)`, etc is represented as a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition.TransitionAnimationState` in `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TransitionState` | Use with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/rememberTransition.composable#rememberTransition(androidx.compose.animation.core.TransitionState,kotlin.String)` to create a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition` that can be dynamically targeted with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/MutableTransitionState` or seekable with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SeekableTransitionState`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TweenSpec` | Creates a TweenSpec configured with the given duration, delay, and easing curve. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedFloatAnimationSpec` | A convenient implementation of `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedFloatAnimationSpec` that turns a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatAnimationSpec` into a multi-dimensional `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedFloatAnimationSpec`, by using the same `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatAnimationSpec` on each dimension of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` that is being animated. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedInfiniteRepeatableSpec` | This animation takes another `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedDurationBasedAnimationSpec` and plays it **infinite** times. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedKeyframesSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedKeyframesSpec` class manages the animation based on the values defined at different timestamps in the duration of the animation (i.e. different keyframes). | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedRepeatableSpec` | This animation takes another `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedDurationBasedAnimationSpec` and plays it `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedRepeatableSpec#(kotlin.Int,androidx.compose.animation.core.VectorizedDurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)` times. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSnapSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSnapSpec` immediately snaps the animating value to the end value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSpringSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedSpringSpec` uses spring animations to animate (each dimension of) `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector`s. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedTweenSpec` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedTweenSpec` animates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` value by interpolating the start and end value, in the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedTweenSpec#(kotlin.Int,kotlin.Int,androidx.compose.animation.core.Easing)` using the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedTweenSpec#(kotlin.Int,kotlin.Int,androidx.compose.animation.core.Easing)` curve. | Cmn |

## Objects

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationConstants` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Spring` | Physics class contains a number of recommended configurations for physics animations. | Cmn |

## Annotations

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/ExperimentalAnimationSpecApi` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/ExperimentalTransitionApi` |   | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InternalAnimationApi` |   | Cmn |

## Enums

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationEndReason` | Possible reasons for `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Animatable`s to end. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatMode` | Repeat mode for `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatableSpec` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/VectorizedRepeatableSpec`. | Cmn |

## Composables

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateDp.composable` | Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` animation as a part of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateDpAsState.composable` | Fire-and-forget animation function for `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateFloat.composable` | Creates an animation of Float type that runs infinitely as a part of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteTransition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateFloatAsState.composable` | Fire-and-forget animation function for `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateInt.composable` | Creates a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` animation as a part of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateIntAsState.composable` | Fire-and-forget animation function for `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateIntOffset.composable` | Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntOffset` animation as a part of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateIntOffsetAsState.composable` | Fire-and-forget animation function for `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntOffset`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateIntSize.composable` | Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize` animation as a part of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateIntSizeAsState.composable` | Fire-and-forget animation function for `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateOffset.composable` | Creates an `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` animation as a part of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateOffsetAsState.composable` | Fire-and-forget animation function for `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateRect.composable` | Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect` animation as a part of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateRectAsState.composable` | Fire-and-forget animation function for `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateSize.composable` | Creates a `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size` animation as a part of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateSizeAsState.composable` | Fire-and-forget animation function for `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateValue.composable` | Creates an animation of type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.InfiniteTransition).animateValue(kotlin.Any,kotlin.Any,androidx.compose.animation.core.TwoWayConverter,androidx.compose.animation.core.InfiniteRepeatableSpec,kotlin.String)` that runs infinitely as a part of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteTransition`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/animateValueAsState.composable` | Fire-and-forget animation function for any value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/createChildTransition.composable` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/createChildTransition.composable#(androidx.compose.animation.core.Transition).createChildTransition(kotlin.String,kotlin.Function1)` creates a child Transition based on the mapping between parent state to child state provided in `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.Transition).createChildTransition(kotlin.String,kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/rememberDeferredTransition.composable` | Creates and remembers a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DeferredTransition` for a given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DeferredTransitionState`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/rememberInfiniteTransition.composable` | Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteTransition` that runs infinite child animations. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/rememberTransition.composable` | Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition` and puts it in the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TransitionState#currentState()` of the provided `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#rememberTransition(androidx.compose.animation.core.TransitionState,kotlin.String)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/updateTransition.composable` | This sets up a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition`, and updates it with the target provided by `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#updateTransition(kotlin.Any,kotlin.String)`. | Cmn |

## Top-level functions summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Animatable<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D>` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/annotation/RememberInComposition https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#Animatable(kotlin.Float,kotlin.Float)(initialValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, visibilityThreshold: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` This `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#Animatable(kotlin.Float,kotlin.Float)` function creates a float value holder that automatically animates its value when the value is changed via `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D>` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)( initialValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, initialVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, lastFrameTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, finishedTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isRunning: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Factory method for creating an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)` for Float `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<T, V>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)( typeConverter: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<T, V>, initialValue: T, initialVelocity: T, lastFrameTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, finishedTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isRunning: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Factory method for creating an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)` with an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)` and an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationVector(kotlin.Float)(v1: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Factory method to create an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationVector(kotlin.Float,kotlin.Float)(v1: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, v2: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Factory method to create an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector3D` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationVector(kotlin.Float,kotlin.Float,kotlin.Float)(v1: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, v2: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, v3: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Factory method to create an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector3D` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector4D` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationVector(kotlin.Float,kotlin.Float,kotlin.Float,kotlin.Float)(v1: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, v2: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, v3: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, v4: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)` Factory method to create an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector4D` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimation<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D>` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Float,kotlin.Float)( animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatDecayAnimationSpec, initialValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, initialVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html )` `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Float,kotlin.Float)` is an animation that slows down from `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Float,kotlin.Float)` as time goes on. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TargetBasedAnimation<T, V>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec,androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any)( animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec<T>, typeConverter: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<T, V>, initialValue: T, targetValue: T, initialVelocity: T )` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec,androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any)` with the given start/end conditions of the animation, and the provided `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec,androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<T, V>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TwoWayConverter(kotlin.Function1,kotlin.Function1)( convertToVector: (T) -> V, convertFromVector: (V) -> T )` Factory method to create a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TwoWayConverter(kotlin.Function1,kotlin.Function1)` that converts a type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TwoWayConverter(kotlin.Function1,kotlin.Function1)` from and to an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` type. | Cmn |
| `suspend https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)( initialValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, targetValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, initialVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html>, block: (value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, velocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Target based animation that animates from the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)` towards the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)`, with an optional `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)`. | Cmn |
| `suspend https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)( typeConverter: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<T, V>, initialValue: T, targetValue: T, initialVelocity: T?, animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec<T>, block: (value, velocity) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Target based animation for animating any data type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)`, so long as `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)` can be converted to an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` using `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)`. | Cmn |
| `suspend https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)( initialValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, initialVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatDecayAnimationSpec, block: (value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, velocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Decay animation that slows down from the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)` starting at `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)` until the velocity reaches 0. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#exponentialDecay(kotlin.Float,kotlin.Float)( frictionMultiplier: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, fromInclusive = false) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, absVelocityThreshold: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, fromInclusive = false) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html )` Creates a decay animation spec where the friction/deceleration is always proportional to the velocity. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteRepeatableSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)( animation: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec<T>, repeatMode: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatMode, initialStartOffset: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/StartOffset )` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteRepeatableSpec` that plays a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec` (e.g. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TweenSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec`) infinite amount of iterations. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframes(kotlin.Function1)(init: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec.KeyframesSpecConfig<T>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec` animation, initialized with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframes(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframesWithSpline(kotlin.Function1)(init: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig<T>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec` animation, initialized with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframesWithSpline(kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframesWithSpline(kotlin.Float,kotlin.Function1)( periodicBias: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, init: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig<T>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Creates a *periodic* `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec` animation, initialized with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframesWithSpline(kotlin.Float,kotlin.Function1)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatableSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#repeatable(kotlin.Int,androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)( iterations: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, animation: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec<T>, repeatMode: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatMode, initialStartOffset: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/StartOffset )` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatableSpec` that plays a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec` (e.g. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TweenSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec`) the amount of iterations specified by `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#repeatable(kotlin.Int,androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SnapSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#snap(kotlin.Int)(delayMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Creates a Snap animation for immediately switching the animating value to the end value. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SpringSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)(dampingRatio: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, stiffness: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, visibilityThreshold: T?)` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SpringSpec` that uses the given spring constants (i.e. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TweenSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#tween(kotlin.Int,kotlin.Int,androidx.compose.animation.core.Easing)(durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, delayMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, easing: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing)` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TweenSpec` configured with the given duration, delay and easing curve. | Cmn |
| `suspend inline R` | `<R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#withInfiniteAnimationFrameMillis(kotlin.Function1)( crossinline onFrame: (frameTimeMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> R )` Like `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)`, but applies the `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/InfiniteAnimationPolicy` from the calling `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` if there is one. | Cmn |
| `suspend R` | `<R : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#withInfiniteAnimationFrameNanos(kotlin.Function1)( onFrame: (frameTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html) -> R )` Like `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameNanos(kotlin.Function1)`, but applies the `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/InfiniteAnimationPolicy` from the calling `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` if there is one. | Cmn |

## Extension functions summary

|---|---|---|
| `suspend https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<T, V>.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)( animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec<T>, sequentialAnimation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, block: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope<T, V>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Decay animation that slows down from the current velocity and value captured in `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` until the velocity reaches 0. | Cmn |
| `suspend https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<T, V>.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)( targetValue: T, animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec<T>, sequentialAnimation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, block: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope<T, V>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Target based animation that takes the value and velocity from the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` as the starting condition, and animate to the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)`, using the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html>.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(kotlin.Float,kotlin.Float)( initialValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, initialVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html )` Calculates the target value of a Float decay animation based on the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(kotlin.Float,kotlin.Float)`. | Cmn |
| `T` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec<T>.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any)( typeConverter: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<T, V>, initialValue: T, initialVelocity: T )` Calculates the target value of a decay animation based on the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any)` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any)`, and the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any)` that converts the given type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any)` to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D>` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D>.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).copy(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)( value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, velocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, lastFrameTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, finishedTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isRunning: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Creates a new `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` of Float `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).copy(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)` type from a given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` of the same type. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<T, V>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<T, V>.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).copy(kotlin.Any,androidx.compose.animation.core.AnimationVector,kotlin.Long,kotlin.Long,kotlin.Boolean)( value: T, velocityVector: V?, lastFrameTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, finishedTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html, isRunning: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html )` Creates a new `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` from a given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState`. | Cmn |
| `V` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<T, V>.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.TwoWayConverter).createZeroVectorFrom(kotlin.Any)( value: T )` Creates an AnimationVector with all the values set to 0 using the provided `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` and the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.TwoWayConverter).createZeroVectorFrom(kotlin.Any)`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec<T>` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatDecayAnimationSpec.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.FloatDecayAnimationSpec).generateDecayAnimationSpec()()` Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec` from a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatDecayAnimationSpec` by applying the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatDecayAnimationSpec` on every dimension of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` that `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.FloatDecayAnimationSpec).generateDecayAnimationSpec()` converts to. | Cmn |
| `T` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?, V : https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector> https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Animation<T, V>.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.Animation).getVelocityFromNanos(kotlin.Long)( playTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html )` Returns the velocity of the animation at the given play time. | Cmn |

## Top-level properties summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#Ease()` Easing Curve that speeds up quickly and ends slowly. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseIn()` Easing Curve that starts slowly and ends quickly. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInBack()` ![EaseInBack Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_back.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInBounce()` ![EaseInBounce Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_bounce.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInCirc()` ![EaseInCirc Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_circ.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInCubic()` ![EaseInCubic Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_cubic.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInElastic()` ![EaseInElastic Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_elastic.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInExpo()` ![EaseInExpo Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_expo.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInOut()` Easing Curve that starts slowly, speeds up and then ends slowly. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInOutBack()` ![EaseInOutBack Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_back.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInOutBounce()` ![EaseInOutBounce Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_bounce.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInOutCirc()` ![EaseInOutCirc Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_circ.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInOutCubic()` ![EaseInOutCubic Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_cubic.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInOutElastic()` ![EaseInOutElastic Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_elastic.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInOutExpo()` ![EaseInOutExpo Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_expo.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInOutQuad()` ![EaseInOutQuad Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_quad.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInOutQuart()` ![EaseInOutQuart Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_quart.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInOutQuint()` ![EaseInOutQuint Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_quint.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInOutSine()` ![EaseInOutSine Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_sine.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInQuad()` ![EaseInQuad Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_quad.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInQuart()` ![EaseInQuart Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_quart.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInQuint()` ![EaseInQuint Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_quint.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseInSine()` Easing Curve that starts slowly and ends quickly. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseOut()` Easing Curve that starts quickly and ends slowly. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseOutBack()` ![EaseOutBack Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_back.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseOutBounce()` ![EaseOutBounce Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_bounce.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseOutCirc()` ![EaseOutCirc Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_circ.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseOutCubic()` ![EaseOutCubic Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_cubic.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseOutElastic()` ![EaseOutElastic Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_elastic.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseOutExpo()` ![EaseOutExpo Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_expo.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseOutQuad()` ![EaseOutQuad Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_quad.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseOutQuart()` ![EaseOutQuart Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_quart.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseOutQuint()` ![EaseOutQuint Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_quint.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#EaseOutSine()` ![EaseOutSine Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_sine.gif) | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#FastOutLinearInEasing()` Elements exiting a screen use acceleration easing, where they start at rest and end at peak velocity. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#FastOutSlowInEasing()` Elements that begin and end at rest use this standard easing. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#LinearEasing()` It returns fraction unmodified. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#LinearOutSlowInEasing()` Incoming elements are animated using deceleration easing, which starts a transition at peak velocity (the fastest point of an element's movement) and ends at rest. | Cmn |

## Extension properties summary

|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D>` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.geometry.Offset.Companion).VectorConverter()` A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`, and vice versa. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector4D>` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.geometry.Rect.Companion).VectorConverter()` A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector4D`, and vice versa. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D>` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.geometry.Size.Companion).VectorConverter()` A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`, and vice versa. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D>` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.unit.Dp.Companion).VectorConverter()` A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D`, and vice versa. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpOffset, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D>` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpOffset.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.unit.DpOffset.Companion).VectorConverter()` A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpOffset` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`, and vice versa. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntOffset, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D>` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntOffset.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.unit.IntOffset.Companion).VectorConverter()` A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntOffset` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`, and vice versa. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D>` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.unit.IntSize.Companion).VectorConverter()` A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`, and vice versa. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D>` | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/-companion/index.html.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(kotlin.Float.Companion).VectorConverter()` A `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` that converts `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` from and to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D>` | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/-companion/index.html.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(kotlin.Int.Companion).VectorConverter()` A `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` that converts `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` from and to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D` | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.geometry.Offset.Companion).VisibilityThreshold()` Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.geometry.Rect.Companion).VisibilityThreshold()` Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.geometry.Size.Companion).VisibilityThreshold()` Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.unit.Dp.Companion).VisibilityThreshold()` Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpOffset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpOffset.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.unit.DpOffset.Companion).VisibilityThreshold()` Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpOffset`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntOffset` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntOffset.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.unit.IntOffset.Companion).VisibilityThreshold()` Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntOffset`. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize` | `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize.Companion.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.ui.unit.IntSize.Companion).VisibilityThreshold()` Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/-companion/index.html.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(kotlin.Int.Companion).VisibilityThreshold()` Visibility threshold for `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<*, *>.https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).isFinished()` Indicates whether the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` is for an animation that has finished, indicated by `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState#finishedTimeNanos()` having a specified value. | Cmn |

## Top-level functions

### Animatable

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/Animatable.kt+function:Animatable) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
@RememberInComposition
fun Animatable(
    initialValue: Float,
    visibilityThreshold: Float = Spring.DefaultDisplacementThreshold
): Animatable<Float, AnimationVector1D>
```

This `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#Animatable(kotlin.Float,kotlin.Float)` function creates a float value holder that automatically animates its value when the value is changed via `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)`. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#Animatable(kotlin.Float,kotlin.Float)` supports value change during an ongoing value change animation. When that happens, a new animation will transition `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#Animatable(kotlin.Float,kotlin.Float)` from its current value (i.e. value at the point of interruption) to the new target. This ensures that the value change is *always* continuous using `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)`. If `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` animation (i.e. default animation) is used with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)`, the velocity change will be guaranteed to be continuous as well.

Unlike `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#Animatable(kotlin.Float,kotlin.Float)` ensures mutual exclusiveness on its animation. To do so, when a new animation is started via `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)` (or `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)`), any ongoing animation job will be cancelled.

```kotlin
import androidx.compose.animation.core.Animatable
import androidx.compose.animation.core.spring
import androidx.compose.animation.core.tween
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.composed
import androidx.compose.ui.graphics.graphicsLayer

fun Modifier.fadeIn(): Modifier = composed {
    // Creates an `Animatable` and remembers it.
    val alphaAnimation = remember { Animatable(0f) }
    // Launches a coroutine for the animation when entering the composition.
    // Uses `alphaAnimation` as the subject so the job in `LaunchedEffect` will run only when
    // `alphaAnimation` is created, which happens one time when the modifier enters
    // composition.
    LaunchedEffect(alphaAnimation) {
        // Animates to 1f from 0f for the fade-in, and uses a 500ms tween animation.
        alphaAnimation.animateTo(
            targetValue = 1f,
            // Default animationSpec uses [spring] animation, here we overwrite the default.
            animationSpec = tween(500),
        )
    }
    this.graphicsLayer(alpha = alphaAnimation.value)
}
```

| Parameters |
|---|---|
| `initialValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | initial value of the animatable value holder |
| `visibilityThreshold: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = Spring.DefaultDisplacementThreshold` | Threshold at which the animation may round off to its target value. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Spring#DefaultDisplacementThreshold()` by default. |

### AnimationState

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationState.kt+function:AnimationState) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun AnimationState(
    initialValue: Float,
    initialVelocity: Float = 0.0f,
    lastFrameTimeNanos: Long = AnimationConstants.UnspecifiedTime,
    finishedTimeNanos: Long = AnimationConstants.UnspecifiedTime,
    isRunning: Boolean = false
): AnimationState<Float, AnimationVector1D>
```

Factory method for creating an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)` for Float `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)`.

| Parameters |
|---|---|
| `initialValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | initial value of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)` |
| `initialVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 0.0f` | initial velocity of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)`, 0 (i.e. no velocity) by default |
| `lastFrameTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = AnimationConstants.UnspecifiedTime` | last frame time of the animation, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationConstants#UnspecifiedTime()` by default |
| `finishedTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = AnimationConstants.UnspecifiedTime` | the time that the animation finished successfully, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationConstants#UnspecifiedTime()` by default. |
| `isRunning: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | whether the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)` is currently being updated by an animation. False by default |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D>` | A new `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)` instance |

### AnimationState

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationState.kt+function:AnimationState) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?, V : AnimationVector> AnimationState(
    typeConverter: TwoWayConverter<T, V>,
    initialValue: T,
    initialVelocity: T,
    lastFrameTimeNanos: Long = AnimationConstants.UnspecifiedTime,
    finishedTimeNanos: Long = AnimationConstants.UnspecifiedTime,
    isRunning: Boolean = false
): AnimationState<T, V>
```

Factory method for creating an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)` with an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)` and an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)`.

| Parameters |
|---|---|
| `typeConverter: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<T, V>` | `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` to convert type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)` from and to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` |
| `initialValue: T` | initial value of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)` |
| `initialVelocity: T` | initial velocity of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)` |
| `lastFrameTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = AnimationConstants.UnspecifiedTime` | last frame time of the animation, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationConstants#UnspecifiedTime()` by default |
| `finishedTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = AnimationConstants.UnspecifiedTime` | the time that the animation finished successfully, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationConstants#UnspecifiedTime()` by default. |
| `isRunning: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | whether the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)` is currently being updated by an animation. False by default |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<T, V>` | A new `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#AnimationState(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Long,kotlin.Long,kotlin.Boolean)` instance |

### AnimationVector

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationVectors.kt+function:AnimationVector) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun AnimationVector(v1: Float): AnimationVector1D
```

Factory method to create an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D`

| Parameters |
|---|---|
| `v1: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | value to set on the value field of `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D` |

### AnimationVector

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationVectors.kt+function:AnimationVector) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun AnimationVector(v1: Float, v2: Float): AnimationVector2D
```

Factory method to create an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`

| Parameters |
|---|---|
| `v1: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | value to set on the first dimension |
| `v2: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | value to set on the second dimension |

### AnimationVector

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationVectors.kt+function:AnimationVector) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun AnimationVector(v1: Float, v2: Float, v3: Float): AnimationVector3D
```

Factory method to create an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector3D`

| Parameters |
|---|---|
| `v1: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | value to set on the first dimension |
| `v2: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | value to set on the second dimension |
| `v3: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | value to set on the third dimension |

### AnimationVector

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationVectors.kt+function:AnimationVector) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun AnimationVector(v1: Float, v2: Float, v3: Float, v4: Float): AnimationVector4D
```

Factory method to create an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector4D`

| Parameters |
|---|---|
| `v1: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | value to set on the first dimension |
| `v2: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | value to set on the second dimension |
| `v3: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | value to set on the third dimension |
| `v4: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | value to set on the fourth dimension |

### DecayAnimation

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/Animation.kt+function:DecayAnimation) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun DecayAnimation(
    animationSpec: FloatDecayAnimationSpec,
    initialValue: Float,
    initialVelocity: Float = 0.0f
): DecayAnimation<Float, AnimationVector1D>
```

`https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Float,kotlin.Float)` is an animation that slows down from `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Float,kotlin.Float)` as time goes on. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Float,kotlin.Float)` is stateless, and it does not have any concept of lifecycle. It serves as an animation calculation engine that supports convenient query of value/velocity given a play time. To achieve that, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Float,kotlin.Float)` stores all the animation related information: `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Float,kotlin.Float)`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Float,kotlin.Float)`, decay animation spec.

**Note** : Unless there's a need to control the timing manually, it's generally recommended to use higher level animation APIs that build on top `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#DecayAnimation(androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Float,kotlin.Float)`, such as `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Animatable#animateDecay(kotlin.Any,androidx.compose.animation.core.DecayAnimationSpec,kotlin.Function1)`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)`, etc.

| Parameters |
|---|---|
| `animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatDecayAnimationSpec` | decay animation that will be used |
| `initialValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | starting value that will be passed to the decay animation |
| `initialVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 0.0f` | starting velocity for the decay animation, 0f by default |

### TargetBasedAnimation

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/Animation.kt+function:TargetBasedAnimation) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?, V : AnimationVector> TargetBasedAnimation(
    animationSpec: AnimationSpec<T>,
    typeConverter: TwoWayConverter<T, V>,
    initialValue: T,
    targetValue: T,
    initialVelocity: T
): TargetBasedAnimation<T, V>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec,androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any)` with the given start/end conditions of the animation, and the provided `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec,androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any)`.

The resulting `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Animation` assumes that the start value and velocity, as well as end value do not change throughout the animation, and cache these values. This caching enables much more convenient query for animation value and velocity (where only playtime needs to be passed into the methods).

**Note** : When interruptions happen to the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec,androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any)`, a new instance should be created that use the current value and velocity as the starting conditions. This type of interruption handling is the default behavior for both `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Animatable` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition`. Consider using those APIs for the interruption handling, as well as built-in animation lifecycle management.

| Parameters |
|---|---|
| `animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec<T>` | the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec` that will be used to calculate value/velocity |
| `typeConverter: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter<T, V>` | the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` that is used to convert animation type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec,androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any)` from/to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec,androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any)` |
| `initialValue: T` | the start value of the animation |
| `targetValue: T` | the end value of the animation |
| `initialVelocity: T` | the start velocity (of type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TargetBasedAnimation(androidx.compose.animation.core.AnimationSpec,androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any)` of the animation |

### TwoWayConverter

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VectorConverters.kt+function:TwoWayConverter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?, V : AnimationVector> TwoWayConverter(
    convertToVector: (T) -> V,
    convertFromVector: (V) -> T
): TwoWayConverter<T, V>
```

Factory method to create a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TwoWayConverter(kotlin.Function1,kotlin.Function1)` that converts a type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TwoWayConverter(kotlin.Function1,kotlin.Function1)` from and to an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` type.

| Parameters |
|---|---|
| `convertToVector: (T) -> V` | converts from type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TwoWayConverter(kotlin.Function1,kotlin.Function1)` to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` |
| `convertFromVector: (V) -> T` | converts from `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` to type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#TwoWayConverter(kotlin.Function1,kotlin.Function1)` |

### animate

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/SuspendAnimation.kt+function:animate) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
suspend fun animate(
    initialValue: Float,
    targetValue: Float,
    initialVelocity: Float = 0.0f,
    animationSpec: AnimationSpec<Float> = spring(),
    block: (value: Float, velocity: Float) -> Unit
): Unit
```

Target based animation that animates from the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)` towards the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)`, with an optional `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)`. By default, a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` will be used for the animation. An alternative `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)` can be provided to replace the default `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)`.

This is a convenient method for Float animation. If there's a need to access more info related to the animation such as start time, target, etc, consider using `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)`. To animate non-`https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` data types, consider the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(kotlin.Float,kotlin.Float,kotlin.Float,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)` overload/variant for generic types.

```kotlin
import androidx.compose.animation.core.RepeatMode
import androidx.compose.animation.core.animate
import androidx.compose.animation.core.infiniteRepeatable
import androidx.compose.animation.core.tween
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.Icon
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Favorite
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.graphicsLayer

@Composable
fun InfiniteAnimationDemo() {
    // Create a mutable state for alpha, and update it in the animation.
    val alpha = remember { mutableStateOf(1f) }
    LaunchedEffect(Unit) {
        // Animate from 1f to 0f using an infinitely repeating animation
        animate(
            initialValue = 1f,
            targetValue = 0f,
            animationSpec =
                infiniteRepeatable(animation = tween(1000), repeatMode = RepeatMode.Reverse),
        ) { value, /* velocity */ _ ->
            // Update alpha mutable state with the current animation value
            alpha.value = value
        }
    }
    Box(Modifier.fillMaxSize()) {
        Icon(
            Icons.Filled.Favorite,
            contentDescription = null,
            modifier =
                Modifier.align(Alignment.Center)
                    .graphicsLayer(scaleX = 3.0f, scaleY = 3.0f, alpha = alpha.value),
            tint = Color.Red,
        )
    }
}
```

| Parameters |
|---|---|
| `initialValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The initial value to animate from. |
| `targetValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The target value to animate to. |
| `initialVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 0.0f` | The velocity to use for the animation. 0f by default. |
| `animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html> = spring()` | The animation configuration that will be used. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` by default. |
| `block: (value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, velocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Will be invoked on every frame with the current value and velocity of the animation for that frame. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)` |   |

### animate

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/SuspendAnimation.kt+function:animate) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
suspend fun <T : Any?, V : AnimationVector> animate(
    typeConverter: TwoWayConverter<T, V>,
    initialValue: T,
    targetValue: T,
    initialVelocity: T? = null,
    animationSpec: AnimationSpec<T> = spring(),
    block: (value, velocity) -> Unit
): Unit
```

Target based animation for animating any data type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)`, so long as `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)` can be converted to an `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` using `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)`. The animation will start from the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)` and animate to the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)` value. The `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)` will be derived from an all-0 `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` unless specified. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animate(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any,kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Function2)` can be provided to create a specific look and feel for the animation. By default, a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` will be used.

This is a convenient method for target-based animation. If there's a need to access more info related to the animation such as start time, target, etc, consider using `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)`.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)` |   |

### animateDecay

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/SuspendAnimation.kt+function:animateDecay) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
suspend fun animateDecay(
    initialValue: Float,
    initialVelocity: Float,
    animationSpec: FloatDecayAnimationSpec,
    block: (value: Float, velocity: Float) -> Unit
): Unit
```

Decay animation that slows down from the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)` starting at `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)` until the velocity reaches 0. This is often used after a fling gesture.

This is a convenient method for decay animation. If there's a need to access more info related to the animation such as start time, target, etc, consider using `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)`.

| Parameters |
|---|---|
| `initialValue: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The initial value to animate from. |
| `initialVelocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | The initial velocity of the animation. |
| `animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatDecayAnimationSpec` | Defines the decay animation that will be used for this animation. Some options for this `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#animateDecay(kotlin.Float,kotlin.Float,androidx.compose.animation.core.FloatDecayAnimationSpec,kotlin.Function2)` include: `https://developer.android.com/reference/kotlin/androidx/compose/animation/package-summary#splineBasedDecay(androidx.compose.ui.unit.Density)` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#exponentialDecay(kotlin.Float,kotlin.Float)`. |
| `block: (value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, velocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Will be invoked on each animation frame with up-to-date value and velocity. |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)` |   |

### exponentialDecay

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/DecayAnimationSpec.kt+function:exponentialDecay) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?> exponentialDecay(
    frictionMultiplier: @FloatRange(from = 0.0, fromInclusive = false) Float = 1.0f,
    absVelocityThreshold: @FloatRange(from = 0.0, fromInclusive = false) Float = 0.1f
): DecayAnimationSpec<T>
```

Creates a decay animation spec where the friction/deceleration is always proportional to the velocity. As a result, the velocity goes under an exponential decay. The constructor parameter, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#exponentialDecay(kotlin.Float,kotlin.Float)`, can be tuned to adjust the amount of friction applied in the decay. The higher the multiplier, the higher the friction, the sooner the animation will stop, and the shorter distance the animation will travel with the same starting condition. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#exponentialDecay(kotlin.Float,kotlin.Float)` describes the absolute value of a velocity threshold, below which the animation is considered finished.

| Parameters |
|---|---|
| `frictionMultiplier: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, fromInclusive = false) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 1.0f` | The decay friction multiplier. This must be greater than `0`. |
| `absVelocityThreshold: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, fromInclusive = false) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = 0.1f` | The minimum speed, below which the animation is considered finished. Must be greater than `0`. |

### infiniteRepeatable

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationSpec.kt+function:infiniteRepeatable) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.10.0)

```
fun <T : Any?> infiniteRepeatable(
    animation: DurationBasedAnimationSpec<T>,
    repeatMode: RepeatMode = RepeatMode.Restart,
    initialStartOffset: StartOffset = StartOffset(0)
): InfiniteRepeatableSpec<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/InfiniteRepeatableSpec` that plays a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec` (e.g. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TweenSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec`) infinite amount of iterations.

For non-infinitely repeating animations, consider `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#repeatable(kotlin.Int,androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)`.

`https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)` can be used to either delay the start of the animation or to fast forward the animation to a given play time. This start offset will **not** be repeated, whereas the delay in the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)` (if any) will be repeated. By default, the amount of offset is 0.

```kotlin
import androidx.compose.animation.core.RepeatMode
import androidx.compose.animation.core.StartOffset
import androidx.compose.animation.core.StartOffsetType
import androidx.compose.animation.core.animateFloat
import androidx.compose.animation.core.infiniteRepeatable
import androidx.compose.animation.core.rememberInfiniteTransition
import androidx.compose.animation.core.tween
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.runtime.Composable
import androidx.compose.runtime.State
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.unit.dp

// This is an infinite progress indicator with 3 pulsing dots that grow and shrink.
@Composable
fun Dot(scale: State<Float>) {
    Box(
        Modifier.padding(5.dp)
            .size(20.dp)
            .graphicsLayer {
                scaleX = scale.value
                scaleY = scale.value
            }
            .background(Color.Gray, shape = CircleShape)
    )
}

val infiniteTransition = rememberInfiniteTransition()
val scale1 =
    infiniteTransition.animateFloat(
        0.2f,
        1f,
        // No offset for the 1st animation
        infiniteRepeatable(tween(600), RepeatMode.Reverse),
    )
val scale2 =
    infiniteTransition.animateFloat(
        0.2f,
        1f,
        infiniteRepeatable(
            tween(600),
            RepeatMode.Reverse,
            // Offsets the 2nd animation by starting from 150ms of the animation
            // This offset will not be repeated.
            initialStartOffset = StartOffset(offsetMillis = 150, StartOffsetType.FastForward),
        ),
    )
val scale3 =
    infiniteTransition.animateFloat(
        0.2f,
        1f,
        infiniteRepeatable(
            tween(600),
            RepeatMode.Reverse,
            // Offsets the 3rd animation by starting from 300ms of the animation. This
            // offset will be not repeated.
            initialStartOffset = StartOffset(offsetMillis = 300, StartOffsetType.FastForward),
        ),
    )
Row {
    Dot(scale1)
    Dot(scale2)
    Dot(scale3)
}
```

| Parameters |
|---|---|
| `animation: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec<T>` | animation that will be repeated |
| `repeatMode: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatMode = RepeatMode.Restart` | whether animation should repeat by starting from the beginning (i.e. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatMode#Restart`) or from the end (i.e. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatMode#Reverse`) |
| `initialStartOffset: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/StartOffset = StartOffset(0)` | offsets the start of the animation |

### keyframes

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationSpec.kt+function:keyframes) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?> keyframes(init: KeyframesSpec.KeyframesSpecConfig<T>.() -> Unit): KeyframesSpec<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec` animation, initialized with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframes(kotlin.Function1)`. For example:

```kotlin
import androidx.compose.animation.core.keyframes

keyframes {
    0f at 0 // ms  // Optional
    0.4f at 75 // ms
    0.4f at 225 // ms
    0f at 375 // ms  // Optional
    durationMillis = 375
}
```

Keyframes can also be associated with a particular `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` function:

```kotlin
import androidx.compose.animation.core.FastOutSlowInEasing
import androidx.compose.animation.core.LinearOutSlowInEasing
import androidx.compose.animation.core.keyframes

// Use FastOutSlowInEasing for the interval from 0 to 50 ms, and LinearOutSlowInEasing for the
// time between 50 and 100ms
keyframes<Float> {
    durationMillis = 100
    0f at 0 using FastOutSlowInEasing
    1.5f at 50 using LinearOutSlowInEasing
    1f at 100
}
```

Values can be animated using arcs of quarter of an Ellipse with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec.KeyframesSpecConfig#(androidx.compose.animation.core.KeyframesSpec.KeyframeEntity).using(androidx.compose.animation.core.ArcMode)` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/ArcMode`:

```kotlin
import androidx.compose.animation.core.ArcMode.Companion.ArcAbove
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.keyframes
import androidx.compose.ui.geometry.Offset

keyframes<Offset> {
    // Animate for 1.2 seconds
    durationMillis = 1200

    // Animate to Offset(100f, 100f) at 50% of the animation using LinearEasing then, animate
    // using ArcAbove for the rest of the animation
    Offset(100f, 100f) atFraction 0.5f using LinearEasing using ArcAbove
}
```

For a smooth, curvy animation across all the intervals in the keyframes, consider using `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframesWithSpline(kotlin.Function1)` instead.

| Parameters |
|---|---|
| `init: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec.KeyframesSpecConfig<T>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Initialization function for the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec` animation |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec.KeyframesSpecConfig` |   |

### keyframesWithSpline

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationSpec.kt+function:keyframesWithSpline) Added in [1.6.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.6.0)

```
fun <T : Any?> keyframesWithSpline(init: KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig<T>.() -> Unit): KeyframesWithSplineSpec<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec` animation, initialized with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframesWithSpline(kotlin.Function1)`.

For more details on implementation, see `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec`.

Use overload that takes a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` parameter to use periodic splines.

Example:

```kotlin
import androidx.compose.animation.core.keyframesWithSpline
import androidx.compose.ui.geometry.Offset

keyframesWithSpline {
    durationMillis = 200
    Offset(0f, 0f) at 0
    Offset(500f, 100f) at 100
    Offset(400f, 50f) at 150
}
```

```kotlin
import androidx.compose.animation.core.keyframesWithSpline
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.unit.IntOffset

keyframesWithSpline {
    durationMillis = 200
    IntOffset(0, 0) at 0
    IntOffset(500, 100) at 100
    IntOffset(400, 50) at 150
}
```

```kotlin
import androidx.compose.animation.core.keyframesWithSpline
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.unit.DpOffset
import androidx.compose.ui.unit.dp

keyframesWithSpline {
    durationMillis = 200
    DpOffset(0.dp, 0.dp) at 0
    DpOffset(500.dp, 100.dp) at 100
    DpOffset(400.dp, 50.dp) at 150
}
```

| Parameters |
|---|---|
| `init: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig<T>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Initialization function for the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec` animation |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig` |   |

### keyframesWithSpline

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationSpec.kt+function:keyframesWithSpline) Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.7.0)

```
fun <T : Any?> keyframesWithSpline(
    periodicBias: @FloatRange(from = 0.0, to = 1.0) Float,
    init: KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig<T>.() -> Unit
): KeyframesWithSplineSpec<T>
```

Creates a *periodic* `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec` animation, initialized with `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframesWithSpline(kotlin.Float,kotlin.Function1)`.

Use overload without `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframesWithSpline(kotlin.Float,kotlin.Function1)` parameter for the non-periodic implementation.

A periodic spline is one such that the starting and ending velocities are equal. This makes them useful to create smooth repeatable animations. Such as an infinite pulsating animation:

```kotlin
import androidx.compose.animation.core.LinearEasing
import androidx.compose.animation.core.RepeatMode
import androidx.compose.animation.core.animate
import androidx.compose.animation.core.infiniteRepeatable
import androidx.compose.animation.core.keyframesWithSpline
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Favorite
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableFloatStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.unit.dp

var alpha by remember { mutableFloatStateOf(0f) }
LaunchedEffect(Unit) {
    animate(
        initialValue = 0f,
        targetValue = 0f,
        animationSpec =
            infiniteRepeatable(
                // With a periodicBias of 0.5f it creates a similar animation to a sinusoidal
                // curve
                // so the transition as the animation repeats is completely seamless
                animation =
                    keyframesWithSpline(periodicBias = 0.5f) {
                        durationMillis = 2000

                        1f at 1000 using LinearEasing
                    },
                repeatMode = RepeatMode.Restart,
            ),
    ) { value, _ ->
        alpha = value
    }
}
Image(
    imageVector = Icons.Filled.Favorite,
    contentDescription = null,
    modifier = Modifier.size(150.dp).graphicsLayer { this.alpha = alpha },
    colorFilter = ColorFilter.tint(Color.Red),
)
```

The `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#keyframesWithSpline(kotlin.Float,kotlin.Function1)` value (from 0.0 to 1.0) indicates how much of the original starting and final velocity are modified to achieve periodicity:

- 0f: Modifies only the starting velocity to match the final velocity

- 1f: Modifies only the final velocity to match the starting velocity

- 0.5f: Modifies both velocities equally, picking the average between the two

| Parameters |
|---|---|
| `periodicBias: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | A value from 0f to 1f, indicating how much the starting or ending velocities are modified respectively to achieve periodicity. |
| `init: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig<T>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Initialization function for the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec` animation |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesWithSplineSpec.KeyframesWithSplineSpecConfig` |   |

### repeatable

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationSpec.kt+function:repeatable) Added in [1.10.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.10.0)

```
fun <T : Any?> repeatable(
    iterations: Int,
    animation: DurationBasedAnimationSpec<T>,
    repeatMode: RepeatMode = RepeatMode.Restart,
    initialStartOffset: StartOffset = StartOffset(0)
): RepeatableSpec<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatableSpec` that plays a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec` (e.g. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TweenSpec`, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/KeyframesSpec`) the amount of iterations specified by `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#repeatable(kotlin.Int,androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)`.

The iteration count describes the amount of times the animation will run. 1 means no repeat. Recommend `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#infiniteRepeatable(androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)` for creating an infinity repeating animation.

**Note** : When repeating in the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatMode#Reverse` mode, it's highly recommended to have an **odd** number of iterations. Otherwise, the animation may jump to the end value when it finishes the last iteration.

`https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#repeatable(kotlin.Int,androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)` can be used to either delay the start of the animation or to fast forward the animation to a given play time. This start offset will **not** be repeated, whereas the delay in the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#repeatable(kotlin.Int,androidx.compose.animation.core.DurationBasedAnimationSpec,androidx.compose.animation.core.RepeatMode,androidx.compose.animation.core.StartOffset)` (if any) will be repeated. By default, the amount of offset is 0.

| Parameters |
|---|---|
| `iterations: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | the total count of iterations, should be greater than 1 to repeat. |
| `animation: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DurationBasedAnimationSpec<T>` | animation that will be repeated |
| `repeatMode: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatMode = RepeatMode.Restart` | whether animation should repeat by starting from the beginning (i.e. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatMode#Restart`) or from the end (i.e. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/RepeatMode#Reverse`) |
| `initialStartOffset: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/StartOffset = StartOffset(0)` | offsets the start of the animation |

### snap

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationSpec.kt+function:snap) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?> snap(delayMillis: Int = 0): SnapSpec<T>
```

Creates a Snap animation for immediately switching the animating value to the end value.

| Parameters |
|---|---|
| `delayMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html = 0` | the number of milliseconds to wait before the animation runs. 0 by default. |

### spring

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationSpec.kt+function:spring) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?> spring(
    dampingRatio: Float = Spring.DampingRatioNoBouncy,
    stiffness: Float = Spring.StiffnessMedium,
    visibilityThreshold: T? = null
): SpringSpec<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/SpringSpec` that uses the given spring constants (i.e. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)`. The optional `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` defines when the animation should be considered to be visually close enough to round off to its target.

| Parameters |
|---|---|
| `dampingRatio: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = Spring.DampingRatioNoBouncy` | damping ratio of the spring. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Spring#DampingRatioNoBouncy()` by default. |
| `stiffness: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = Spring.StiffnessMedium` | stiffness of the spring. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Spring#StiffnessMedium()` by default. |
| `visibilityThreshold: T? = null` | optionally specifies the visibility threshold. |

### tween

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationSpec.kt+function:tween) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?> tween(
    durationMillis: Int = DefaultDurationMillis,
    delayMillis: Int = 0,
    easing: Easing = FastOutSlowInEasing
): TweenSpec<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TweenSpec` configured with the given duration, delay and easing curve.

| Parameters |
|---|---|
| `durationMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html = DefaultDurationMillis` | duration of the animation spec |
| `delayMillis: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html = 0` | the amount of time in milliseconds that animation waits before starting |
| `easing: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing = FastOutSlowInEasing` | the easing curve that will be used to interpolate between start and end |

### withInfiniteAnimationFrameMillis

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/InfiniteAnimationPolicy.kt+function:withInfiniteAnimationFrameMillis)

```
suspend inline fun <R : Any?> withInfiniteAnimationFrameMillis(
    crossinline onFrame: (frameTimeMillis: Long) -> R
): R
```

Like `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#(androidx.compose.runtime.MonotonicFrameClock).withFrameMillis(kotlin.Function1)`, but applies the `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/InfiniteAnimationPolicy` from the calling `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` if there is one.

### withInfiniteAnimationFrameNanos

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/InfiniteAnimationPolicy.kt+function:withInfiniteAnimationFrameNanos)

```
suspend fun <R : Any?> withInfiniteAnimationFrameNanos(
    onFrame: (frameTimeNanos: Long) -> R
): R
```

Like `https://developer.android.com/reference/kotlin/androidx/compose/runtime/package-summary#withFrameNanos(kotlin.Function1)`, but applies the `https://developer.android.com/reference/kotlin/androidx/compose/ui/platform/InfiniteAnimationPolicy` from the calling `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` if there is one.

## Extension functions

### AnimationState.animateDecay

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/SuspendAnimation.kt+function:animateDecay) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
suspend fun <T : Any?, V : AnimationVector> AnimationState<T, V>.animateDecay(
    animationSpec: DecayAnimationSpec<T>,
    sequentialAnimation: Boolean = false,
    block: AnimationScope<T, V>.() -> Unit = {}
): Unit
```

Decay animation that slows down from the current velocity and value captured in `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` until the velocity reaches 0. During the animation, the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` will be updated with the up-to-date value/velocity, frame time, etc. This is often used to animate the result of a fling gesture.

| Parameters |
|---|---|
| `animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec<T>` | Defines the decay animation that will be used for this animation. Some options for `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)` include: `https://developer.android.com/reference/kotlin/androidx/compose/animation/package-summary#splineBasedDecay(androidx.compose.ui.unit.Density)` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#exponentialDecay(kotlin.Float,kotlin.Float)`. |
| `sequentialAnimation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Indicates whether the animation should use the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState#lastFrameTimeNanos()` as the starting time (if true), or start in a new frame. By default, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)` is false, to start the animation in a few frame. In cases where an on-going animation is interrupted and a new animation is started to carry over the momentum, using the interruption time (captured in `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState#lastFrameTimeNanos()`) creates a smoother animation. |
| `block: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope<T, V>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html = {}` | will be invoked on every frame during the animation, and the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope` will be checked against cancellation before the animation continues. To cancel the animation from the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)`, simply call `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope#cancelAnimation()`. After `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope#cancelAnimation()` is called, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)` will not be invoked again. The animation loop will exit after the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateDecay(androidx.compose.animation.core.DecayAnimationSpec,kotlin.Boolean,kotlin.Function1)` returns. All the animation related info can be accessed via `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope`. |

### AnimationState.animateTo

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/SuspendAnimation.kt+function:animateTo) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
suspend fun <T : Any?, V : AnimationVector> AnimationState<T, V>.animateTo(
    targetValue: T,
    animationSpec: AnimationSpec<T> = spring(),
    sequentialAnimation: Boolean = false,
    block: AnimationScope<T, V>.() -> Unit = {}
): Unit
```

Target based animation that takes the value and velocity from the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` as the starting condition, and animate to the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)`, using the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)`. During the animation, the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` will be updated with the up-to-date value/velocity, frame time, etc.

```kotlin
import androidx.compose.animation.core.AnimationState
import androidx.compose.animation.core.Spring
import androidx.compose.animation.core.animate
import androidx.compose.animation.core.animateTo
import androidx.compose.animation.core.isFinished
import androidx.compose.animation.core.spring
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.remember

@Composable
fun simpleAnimate(target: Float): Float {
    // Create an AnimationState to be updated by the animation.
    val animationState = remember { AnimationState(target) }

    // Launch the suspend animation into the composition's CoroutineContext, and pass
    // `target` to LaunchedEffect so that when`target` changes the old animation job is
    // canceled, and a new animation is created with a new target.
    LaunchedEffect(target) {
        // This starts an animation that updates the animationState on each frame
        animationState.animateTo(
            targetValue = target,
            // Use a low stiffness spring. This can be replaced with any type of `AnimationSpec`
            animationSpec = spring(stiffness = Spring.StiffnessLow),
            // If the previous animation was interrupted (i.e. not finished), configure the
            // animation as a sequential animation to continue from the time the animation was
            // interrupted.
            sequentialAnimation = !animationState.isFinished,
        )
        // When the function above returns, the animation has finished.
    }
    // Return the value updated by the animation.
    return animationState.value
}
```

| Parameters |
|---|---|
| `targetValue: T` | The target value that the animation will animate to. |
| `animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec<T> = spring()` | The animation configuration that will be used. `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` by default. |
| `sequentialAnimation: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | Indicates whether the animation should use the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState#lastFrameTimeNanos()` as the starting time (if true), or start in a new frame. By default, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)` is false, to start the animation in a few frame. In cases where an on-going animation is interrupted and a new animation is started to carry over the momentum, using the interruption time (captured in `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState#lastFrameTimeNanos()`) creates a smoother animation. |
| `block: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope<T, V>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html = {}` | Will be invoked on every frame, and the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope` will be checked against cancellation before the animation continues. To cancel the animation from the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)`, simply call `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope#cancelAnimation()`. After `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope#cancelAnimation()` is called, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)` will not be invoked again. The animation loop will exit after the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).animateTo(kotlin.Any,androidx.compose.animation.core.AnimationSpec,kotlin.Boolean,kotlin.Function1)` returns. All the animation related info can be accessed via `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationScope`. |

### DecayAnimationSpec.calculateTargetValue

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/DecayAnimationSpec.kt+function:calculateTargetValue) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun DecayAnimationSpec<Float>.calculateTargetValue(
    initialValue: Float,
    initialVelocity: Float
): Float
```

Calculates the target value of a Float decay animation based on the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(kotlin.Float,kotlin.Float)` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(kotlin.Float,kotlin.Float)`.

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | target value where the animation will come to a natural stop |

### DecayAnimationSpec.calculateTargetValue

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/DecayAnimationSpec.kt+function:calculateTargetValue) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?, V : AnimationVector> DecayAnimationSpec<T>.calculateTargetValue(
    typeConverter: TwoWayConverter<T, V>,
    initialValue: T,
    initialVelocity: T
): T
```

Calculates the target value of a decay animation based on the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any)` and `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any)`, and the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any)` that converts the given type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.DecayAnimationSpec).calculateTargetValue(androidx.compose.animation.core.TwoWayConverter,kotlin.Any,kotlin.Any)` to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector`.

| Returns |
|---|---|
| `T` | target value where the animation will come to a natural stop |

### AnimationState.copy

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationState.kt+function:copy) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun AnimationState<Float, AnimationVector1D>.copy(
    value: Float = this.value,
    velocity: Float = this.velocityVector.value,
    lastFrameTimeNanos: Long = this.lastFrameTimeNanos,
    finishedTimeNanos: Long = this.finishedTimeNanos,
    isRunning: Boolean = this.isRunning
): AnimationState<Float, AnimationVector1D>
```

Creates a new `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` of Float `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.AnimationState).copy(kotlin.Float,kotlin.Float,kotlin.Long,kotlin.Long,kotlin.Boolean)` type from a given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` of the same type. This function allows some of the fields to be different in the new `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState`.

| Parameters |
|---|---|
| `value: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = this.value` | value of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState`, using the value of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` by default |
| `velocity: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html = this.velocityVector.value` | velocity of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState`, using the velocity of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` by default. |
| `lastFrameTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = this.lastFrameTimeNanos` | last frame time of the animation, same as the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` by default |
| `finishedTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = this.finishedTimeNanos` | the time that the animation finished successfully, same as the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` by default. |
| `isRunning: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = this.isRunning` | whether the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` is currently being updated by an animation. Same as the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` by default |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html, https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D>` | A new `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` instance copied from the given instance, with some fields optionally altered |

### AnimationState.copy

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationState.kt+function:copy) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?, V : AnimationVector> AnimationState<T, V>.copy(
    value: T = this.value,
    velocityVector: V? = this.velocityVector.copy(),
    lastFrameTimeNanos: Long = this.lastFrameTimeNanos,
    finishedTimeNanos: Long = this.finishedTimeNanos,
    isRunning: Boolean = this.isRunning
): AnimationState<T, V>
```

Creates a new `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` from a given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState`. This function allows some of the fields to be different in the new `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState`.

| Parameters |
|---|---|
| `value: T = this.value` | value of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState`, using the value of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` by default |
| `velocityVector: V? = this.velocityVector.copy()` | velocity of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState`, using the velocity of the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` by default. |
| `lastFrameTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = this.lastFrameTimeNanos` | last frame time of the animation, same as the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` by default |
| `finishedTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html = this.finishedTimeNanos` | the time that the animation finished successfully, `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationConstants#UnspecifiedTime()` until then. Default value is the same as the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState`. |
| `isRunning: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = this.isRunning` | whether the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` is currently being updated by an animation. Same as the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` by default |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState<T, V>` | A new `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` instance copied from the given instance, with some fields optionally altered |

### TwoWayConverter.createZeroVectorFrom

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationState.kt+function:createZeroVectorFrom) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?, V : AnimationVector> TwoWayConverter<T, V>.createZeroVectorFrom(
    value: T
): V
```

Creates an AnimationVector with all the values set to 0 using the provided `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` and the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.TwoWayConverter).createZeroVectorFrom(kotlin.Any)`.

| Returns |
|---|---|
| `V` | a new AnimationVector instance of type `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.TwoWayConverter).createZeroVectorFrom(kotlin.Any)`. |

### FloatDecayAnimationSpec.generateDecayAnimationSpec

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/DecayAnimationSpec.kt+function:generateDecayAnimationSpec) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?> FloatDecayAnimationSpec.generateDecayAnimationSpec(): DecayAnimationSpec<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec` from a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatDecayAnimationSpec` by applying the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/FloatDecayAnimationSpec` on every dimension of the `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector` that `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#(androidx.compose.animation.core.FloatDecayAnimationSpec).generateDecayAnimationSpec()` converts to.

### Animation.getVelocityFromNanos

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/Animation.kt+function:getVelocityFromNanos) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
fun <T : Any?, V : AnimationVector> Animation<T, V>.getVelocityFromNanos(
    playTimeNanos: Long
): T
```

Returns the velocity of the animation at the given play time.

| Parameters |
|---|---|
| `playTimeNanos: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | the play time that is used to calculate the velocity of the animation. |

## Top-level properties

### Ease

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:Ease) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val Ease: Easing
```

Easing Curve that speeds up quickly and ends slowly.

![Ease
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease.gif)

### EaseIn

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseIn) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseIn: Easing
```

Easing Curve that starts slowly and ends quickly.

![EaseIn
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in.gif)

### EaseInBack

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInBack) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInBack: Easing
```

![EaseInBack
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_back.gif)

### EaseInBounce

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInBounce) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInBounce: Easing
```

![EaseInBounce
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_bounce.gif)

### EaseInCirc

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInCirc) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInCirc: Easing
```

![EaseInCirc
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_circ.gif)

### EaseInCubic

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInCubic) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInCubic: Easing
```

![EaseInCubic
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_cubic.gif)

### EaseInElastic

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInElastic) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInElastic: Easing
```

![EaseInElastic
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_elastic.gif)

### EaseInExpo

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInExpo) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInExpo: Easing
```

![EaseInExpo
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_expo.gif)

### EaseInOut

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInOut) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInOut: Easing
```

Easing Curve that starts slowly, speeds up and then ends slowly.

![EaseInOut
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out.gif)

### EaseInOutBack

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInOutBack) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInOutBack: Easing
```

![EaseInOutBack
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_back.gif)

### EaseInOutBounce

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInOutBounce) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInOutBounce: Easing
```

![EaseInOutBounce
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_bounce.gif)

### EaseInOutCirc

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInOutCirc) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInOutCirc: Easing
```

![EaseInOutCirc
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_circ.gif)

### EaseInOutCubic

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInOutCubic) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInOutCubic: Easing
```

![EaseInOutCubic
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_cubic.gif)

### EaseInOutElastic

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInOutElastic) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInOutElastic: Easing
```

![EaseInOutElastic
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_elastic.gif)

### EaseInOutExpo

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInOutExpo) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInOutExpo: Easing
```

![EaseInOutExpo
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_expo.gif)

### EaseInOutQuad

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInOutQuad) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInOutQuad: Easing
```

![EaseInOutQuad
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_quad.gif)

### EaseInOutQuart

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInOutQuart) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInOutQuart: Easing
```

![EaseInOutQuart
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_quart.gif)

### EaseInOutQuint

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInOutQuint) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInOutQuint: Easing
```

![EaseInOutQuint
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_quint.gif)

### EaseInOutSine

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInOutSine) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInOutSine: Easing
```

![EaseInOutSine
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_out_sine.gif)

### EaseInQuad

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInQuad) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInQuad: Easing
```

![EaseInQuad
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_quad.gif)

### EaseInQuart

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInQuart) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInQuart: Easing
```

![EaseInQuart
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_quart.gif)

### EaseInQuint

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInQuint) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInQuint: Easing
```

![EaseInQuint
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_quint.gif)

### EaseInSine

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseInSine) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseInSine: Easing
```

Easing Curve that starts slowly and ends quickly. Similar to EaseIn, but with slightly less abrupt beginning

![EaseInSine
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_in_sine.gif)

### EaseOut

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseOut) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseOut: Easing
```

Easing Curve that starts quickly and ends slowly.

![EaseOut
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out.gif)

### EaseOutBack

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseOutBack) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseOutBack: Easing
```

![EaseOutBack
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_back.gif)

### EaseOutBounce

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseOutBounce) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseOutBounce: Easing
```

![EaseOutBounce
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_bounce.gif)

### EaseOutCirc

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseOutCirc) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseOutCirc: Easing
```

![EaseOutCirc
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_circ.gif)

### EaseOutCubic

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseOutCubic) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseOutCubic: Easing
```

![EaseOutCubic
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_cubic.gif)

### EaseOutElastic

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseOutElastic) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseOutElastic: Easing
```

![EaseOutElastic
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_elastic.gif)

### EaseOutExpo

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseOutExpo) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseOutExpo: Easing
```

![EaseOutExpo
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_expo.gif)

### EaseOutQuad

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseOutQuad) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseOutQuad: Easing
```

![EaseOutQuad
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_quad.gif)

### EaseOutQuart

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseOutQuart) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseOutQuart: Easing
```

![EaseOutQuart
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_quart.gif)

### EaseOutQuint

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseOutQuint) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseOutQuint: Easing
```

![EaseOutQuint
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_quint.gif)

### EaseOutSine

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/EasingFunctions.kt+symbol:EaseOutSine) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.2.0)

```
val EaseOutSine: Easing
```

![EaseOutSine
Curve](https://developer.android.com/images/reference/androidx/compose/animation-core/ease_out_sine.gif)

### FastOutLinearInEasing

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/Easing.kt+symbol:FastOutLinearInEasing) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val FastOutLinearInEasing: Easing
```

Elements exiting a screen use acceleration easing, where they start at rest and end at peak velocity.

This is equivalent to the Android `FastOutLinearInInterpolator`

### FastOutSlowInEasing

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/Easing.kt+symbol:FastOutSlowInEasing) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val FastOutSlowInEasing: Easing
```

Elements that begin and end at rest use this standard easing. They speed up quickly and slow down gradually, in order to emphasize the end of the transition.

Standard easing puts subtle attention at the end of an animation, by giving more time to deceleration than acceleration. It is the most common form of easing.

This is equivalent to the Android `FastOutSlowInInterpolator`

### LinearEasing

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/Easing.kt+symbol:LinearEasing) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val LinearEasing: Easing
```

It returns fraction unmodified. This is useful as a default value for cases where a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing` is required but no actual easing is desired.

### LinearOutSlowInEasing

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/Easing.kt+symbol:LinearOutSlowInEasing) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val LinearOutSlowInEasing: Easing
```

Incoming elements are animated using deceleration easing, which starts a transition at peak velocity (the fastest point of an element's movement) and ends at rest.

This is equivalent to the Android `LinearOutSlowInInterpolator`

## Extension properties

### Offset.Companion.VectorConverter

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VectorConverters.kt+symbol:VectorConverter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val Offset.Companion.VectorConverter: TwoWayConverter<Offset, AnimationVector2D>
```

A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`, and vice versa.

### Rect.Companion.VectorConverter

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VectorConverters.kt+symbol:VectorConverter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val Rect.Companion.VectorConverter: TwoWayConverter<Rect, AnimationVector4D>
```

A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector4D`, and vice versa.

### Size.Companion.VectorConverter

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VectorConverters.kt+symbol:VectorConverter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val Size.Companion.VectorConverter: TwoWayConverter<Size, AnimationVector2D>
```

A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`, and vice versa.

### Dp.Companion.VectorConverter

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VectorConverters.kt+symbol:VectorConverter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val Dp.Companion.VectorConverter: TwoWayConverter<Dp, AnimationVector1D>
```

A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D`, and vice versa.

### DpOffset.Companion.VectorConverter

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VectorConverters.kt+symbol:VectorConverter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val DpOffset.Companion.VectorConverter: TwoWayConverter<DpOffset, AnimationVector2D>
```

A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpOffset` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`, and vice versa.

### IntOffset.Companion.VectorConverter

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VectorConverters.kt+symbol:VectorConverter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val IntOffset.Companion.VectorConverter: TwoWayConverter<IntOffset, AnimationVector2D>
```

A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntOffset` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`, and vice versa.

### IntSize.Companion.VectorConverter

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VectorConverters.kt+symbol:VectorConverter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val IntSize.Companion.VectorConverter: TwoWayConverter<IntSize, AnimationVector2D>
```

A type converter that converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize` to a `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector2D`, and vice versa.

Clamps negative values to zero when converting back to `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize`.

### Float.Companion.VectorConverter

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VectorConverters.kt+symbol:VectorConverter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val Float.Companion.VectorConverter: TwoWayConverter<Float, AnimationVector1D>
```

A `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` that converts `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` from and to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D`

### Int.Companion.VectorConverter

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VectorConverters.kt+symbol:VectorConverter) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val Int.Companion.VectorConverter: TwoWayConverter<Int, AnimationVector1D>
```

A `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/TwoWayConverter` that converts `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` from and to `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationVector1D`

### Offset.Companion.VisibilityThreshold

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VisibilityThresholds.kt+symbol:VisibilityThreshold) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val Offset.Companion.VisibilityThreshold: Offset
```

Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset`. This defines the amount of value change that is considered to be no longer visible. The animation system uses this to signal to some default `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` animations to stop when the value is close enough to the target.

### Rect.Companion.VisibilityThreshold

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VisibilityThresholds.kt+symbol:VisibilityThreshold) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val Rect.Companion.VisibilityThreshold: Rect
```

Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Rect`. This defines the amount of value change that is considered to be no longer visible. The animation system uses this to signal to some default `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` animations to stop when the value is close enough to the target.

### Size.Companion.VisibilityThreshold

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VisibilityThresholds.kt+symbol:VisibilityThreshold) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val Size.Companion.VisibilityThreshold: Size
```

Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Size`. This defines the amount of value change that is considered to be no longer visible. The animation system uses this to signal to some default `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` animations to stop when the value is close enough to the target.

### Dp.Companion.VisibilityThreshold

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VisibilityThresholds.kt+symbol:VisibilityThreshold) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val Dp.Companion.VisibilityThreshold: Dp
```

Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`. This defines the amount of value change that is considered to be no longer visible. The animation system uses this to signal to some default `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` animations to stop when the value is close enough to the target.

### DpOffset.Companion.VisibilityThreshold

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VisibilityThresholds.kt+symbol:VisibilityThreshold) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val DpOffset.Companion.VisibilityThreshold: DpOffset
```

Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/DpOffset`. This defines the amount of value change that is considered to be no longer visible. The animation system uses this to signal to some default `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` animations to stop when the value is close enough to the target.

### IntOffset.Companion.VisibilityThreshold

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VisibilityThresholds.kt+symbol:VisibilityThreshold) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val IntOffset.Companion.VisibilityThreshold: IntOffset
```

Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntOffset`. This defines the amount of value change that is considered to be no longer visible. The animation system uses this to signal to some default `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` animations to stop when the value is close enough to the target.

### IntSize.Companion.VisibilityThreshold

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VisibilityThresholds.kt+symbol:VisibilityThreshold) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val IntSize.Companion.VisibilityThreshold: IntSize
```

Visibility threshold for `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/IntSize`. This defines the amount of value change that is considered to be no longer visible. The animation system uses this to signal to some default `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` animations to stop when the value is close enough to the target.

### Int.Companion.VisibilityThreshold

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/VisibilityThresholds.kt+symbol:VisibilityThreshold) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val Int.Companion.VisibilityThreshold: Int
```

Visibility threshold for `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html`. This defines the amount of value change that is considered to be no longer visible. The animation system uses this to signal to some default `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/package-summary#spring(kotlin.Float,kotlin.Float,kotlin.Any)` animations to stop when the value is close enough to the target.

### AnimationState.isFinished

Cmn Artifact: [androidx.compose.animation:animation-core](https://developer.android.com/jetpack/androidx/releases/compose-animation) [View Source](https://cs.android.com/search?q=file:androidx/compose/animation/core/AnimationState.kt+symbol:isFinished) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-animation#1.0.0)

```
val AnimationState<*, *>.isFinished: Boolean
```

Indicates whether the given `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState` is for an animation that has finished, indicated by `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationState#finishedTimeNanos()` having a specified value.