---
title: "KeyframesSpecBaseConfig"
description: "Shared configuration class used as DSL for keyframe based animations."
type: "class"
---

<div class='type'>Class</div>


<a id='references'></a>

<div class='sourceset sourceset-common'>Common</div>


```kotlin
public sealed class KeyframesSpecBaseConfig<T, E : KeyframeBaseEntity<T>>
```


Shared configuration class used as DSL for keyframe based animations.


## Functions

```kotlin
public open infix fun T.at(@IntRange(from = 0) timeStamp: Int): E
```


Adds a keyframe so that animation value will be `this` at time: `timeStamp`. For example:

#### Parameters

| | |
| --- | --- |
| timeStamp | The time in the during when animation should reach value: `this`, with a minimum value of `0`. |


#### Returns

| | |
| --- | --- |
|  | an instance of `E` so a custom `Easing` can be added by the `using` method. |



```kotlin
public open infix fun T.atFraction(@FloatRange(from = 0.0, to = 1.0) fraction: Float): E
```


Adds a keyframe so that the animation value will be the value specified at a fraction of the
total `durationMillis` set. It's recommended that you always set `durationMillis` before
calling `atFraction`. For example:

#### Parameters

| | |
| --- | --- |
| fraction | The fraction when the animation should reach specified value. |


#### Returns

| | |
| --- | --- |
|  | an instance of `E` so a custom `Easing` can be added by the `using` method |



```kotlin
public infix fun E.using(easing: Easing): E
```


Adds an `Easing` for the interval started with the just provided timestamp. For example: 0f
at 50 using LinearEasing

#### Parameters

| | |
| --- | --- |
| easing | `Easing` to be used for the next interval. |


#### Returns

| | |
| --- | --- |
|  | the same `E` instance so that other implementations can expand on the builder pattern |




