Entering motion

A set of legacy utilities to apply motion in your application.

Caution

The FadeIn, SlideIn, ZoomIn and ShrinkOut entering motions will soon be deprecated. Please use the new Motion component instead.

<FadeIn />

Useful for fading in one or more elements.

children

Required
Description

Children as function. Will be passed props for you to hook up. The state arg can be used to know if the motion is entering or exiting.

Type(opts: { className: string; style: Record<string, any>; ref: React.Ref<any>; }, state: Transition) => React.ReactNode

distance

Description

The distance the element moves in a direction-based animation. A proportional distance is based on the size of the element. A constant distance will always move the same amount, regardless of size.

Default"proportional"
Type"constant" | "proportional"

duration

Description

How long the motion will take.

Default"large"
Type"none" | "small" | "medium" | "large"

entranceDirection

Description

The direction the element will enter from using a slide animation. If undefined, no slide will be applied.

Type"top" | "right" | "bottom" | "left"

exitDirection

Description

The direction the element will exit to using a slide animation. If undefined but entranceDirection is set, it will exit to the opposite side by default.

Type"top" | "right" | "bottom" | "left"

isPaused

Description

Can be used to pause the animation before it has finished.

Typeboolean

onFinish

Description

Will callback when the motion has finished in the particular direction. If it finished entering direction will be entering. And vice versa for exiting.

Type(state: Transition) => void

<SlideIn />

Will slide an element into position, generally used for things that appear from outside of the viewport into view.

animationTimingFunction

Description

A custom function used to override the default animation timings. Returns which animation curve to use depending on the current transitioning state.

Default"ease-out"
Type"linear" | "ease-in" | "ease-out" | "ease-in-out" | "ease-in-40-out" | "ease-in-60-out" | "ease-in-80-out"

animationTimingFunctionExiting

Description

A custom function used to override the default animation timings when exiting. Returns which animation curve to use depending on the current transitioning state.

Default"ease-in"
Type"linear" | "ease-in" | "ease-out" | "ease-in-out" | "ease-in-40-out" | "ease-in-60-out" | "ease-in-80-out"

children

Required
Description

Children as function. Will be passed props for you to hook up. The state arg can be used to know if the motion is entering or exiting.

Type(opts: { className: string; style: Record<string, any>; ref: React.Ref<any>; }, state: Transition) => React.ReactNode

duration

Description

How long the motion will take.

Default"medium"
Type"none" | "small" | "medium" | "large"

enterFrom

Required
Description

Direction the element will slide in from. E.g. "right" will slide in from the right to the left.

If exitTo is not set, exiting will reverse this motion. E.g. If enterFrom: "right", will slide out to the right.

Type"top" | "right" | "bottom" | "left"

exitTo

Description

Direction the element will slide out towards. E.g. "right" will slide out to the right.

If this is not set, exiting will reverse the entrance motion. E.g. If enterFrom: "right", will slide out to the right.

Type"top" | "right" | "bottom" | "left"

fade

Description

Whether an element will fade on enter, on exit or both.

'none' is the default and will cause the element to not fade, 'in' will cause the element to fade on enter, 'out' will cause the element to fade on exit, 'inout' will cause the element to fade on both.

Type"none" | "in" | "out" | "inout"

isPaused

Description

Can be used to pause the animation before it has finished.

Typeboolean

onFinish

Description

Will callback when the motion has finished in the particular direction. If it finished entering direction will be entering. And vice versa for exiting.

Type(state: Transition) => void

<ZoomIn />

Will over zoom an element into position.

children

Required
Description

Children as function. Will be passed props for you to hook up. The state arg can be used to know if the motion is entering or exiting.

Type(opts: { className: string; style: Record<string, any>; ref: React.Ref<any>; }, state: Transition) => React.ReactNode

duration

Description

How long the motion will take.

Default"small"
Type"none" | "small" | "medium" | "large"

isPaused

Description

Can be used to pause the animation before it has finished.

Typeboolean

onFinish

Description

Will callback when the motion has finished in the particular direction. If it finished entering direction will be entering. And vice versa for exiting.

Type(state: Transition) => void

<ShrinkOut />

This motion only has an exiting motion. StaggeredEntrance will have no effect.

Will shrink an element down to nothing when exiting. Works best with flex children as collapsing margins can come with undesired behavior.

children

Required
Description

Children as function. Will be passed props for you to hook up. The state arg can be used to know if the motion is entering or exiting.

Type(opts: { ref: React.Ref<any>; }, state: Transition) => React.ReactNode

duration

Description

How long the motion will take.

Default"small"
Type"none" | "small" | "medium" | "large"

onFinish

Description

Will callback when the motion has finished in the particular direction. If it finished entering direction will be entering. And vice versa for exiting.

Type(state: Transition) => void
Was this page helpful?
We use this feedback to improve our documentation.
© 2026 AtlassianTrademark, (opens new window)Privacy, (opens new window)License