# easing

`easing` is a frozen object containing `linear`, `easeIn`, `easeOut`,
`easeInOut`, `cubicBezier(...)`, and `steps(...)`. Pass one of its
[`PibblEasing`](/reference/types/canvas-runtime/#pibbleasing) values to a tween, keyframe
segment, or tween transition. The object itself is not an easing function.

## API details from source

<span id="api-easing"></span>

Built-in easing functions for mapping normalized animation progress.

```ts
easing: Readonly<{ linear: (progress: number) => number; cubicBezier: (x1: number, y1: number, x2: number, y2: number) => PibblEasing; easeIn: PibblEasing; easeOut: PibblEasing; easeInOut: PibblEasing; steps: (count: number, position?: 'start' | 'end') => PibblEasing; }>
```

Related API: [easing](/reference/functions/easing/), [PibblEasing](/reference/types/canvas-runtime/#pibbleasing).

### See also

[PibblEasing](/reference/types/canvas-runtime/#pibbleasing)

[tween](/reference/functions/tween/)

[View source — packages/core/src/lib/animation/easing.ts:94](/source/packages/core/src/lib/animation/easing-ts/#L94)

## Implementation guidance for agents

Read the [Animation and scheduling companion](/agents/topics/animation/) for ownership, adaptation, failure modes, and verification. [Agent start](/agents/) provides the version-selection workflow.

## Complete minimal examples

- [Tween playback controls](/minimal-examples/animation/tween/): Animate a signal and control the mounted playback with native buttons. [Plain source](/minimal/animation/tween.tsx)
## Documentation version

Documentation built with @pibbl/core 0.0.2, revision 272a94a. ALPHA — NOT FOR PRODUCTION USE.
