Skip to content
Components

Animations

Add entrance animations, looping motion, press feedback, and screen transitions to your flows.

Animations

Motion makes a flow feel like part of the app instead of a screen dropped on top of it. Setgreet gives you four kinds of motion, all authored in the editor and rendered natively on iOS and Android: an entrance animation when a component appears, a continuous loop to draw the eye, press feedback on buttons, and a transition when the flow moves between screens.

All motion respects the user's accessibility settings. On iOS, Reduce Motion turns animations off. On Android, setting the animator duration scale to zero does the same. Content always renders at its final, fully visible state.

Entrance animations

An entrance animation plays once, when a component first appears on screen.

Presets

PresetDescription
noneNo animation. The component appears instantly.
fadeFades in from transparent to opaque.
slide-upSlides in from below the component's final position.
scaleScales up from slightly smaller.

Older flows may still carry presets that are no longer offered, such as bounce, rotate, or flip. These were never rendered on device and resolve to no motion. Re-pick one of the four presets above to animate those components.

Configuration

PropertyTypeDefaultDescription
PresetselectnoneThe entrance animation to apply.
Durationnumber300msHow long the animation takes to complete.
Delaynumber0msTime to wait before the animation starts. Use this to stagger multiple components.
EasingselecteaseOutThe timing curve (see Easing below).

Stagger an entrance by setting increasing delay values on sibling components. A title at 0ms, a subtitle at 100ms, and a button at 200ms creates a cascade. Keep the final delay under about 400ms so the call to action is never slow to arrive.

The scale preset defaults to spring easing for a natural settle. Every other preset defaults to easeOut.


Loop animations

A loop runs continuously, drawing attention to one element. Loops are independent of the entrance animation and compose with it: the loop waits for the entrance to finish, then starts, so the two never fight over the same property.

Presets

PresetDescription
noneNo loop.
floatA gentle vertical bob. Good for hero art and illustrations.
pulseA soft fade down and back up. Good for a small status dot or badge.

Configuration

PropertyTypeDefaultDescription
LoopselectnoneThe loop preset to apply.
Cyclenumber2800ms float, 1500ms pulseMilliseconds for one full cycle, out and back.
Iterationsnumber0Number of full cycles. 0 means the loop runs indefinitely.

Using loops well

Motion is decoration, never information: a screen has to read correctly with every animation removed. Use at most one float per screen, on the hero art. Reserve pulse for a single small accent. Looping a headline or a call to action makes a screen feel restless rather than alive.


Press feedback

Buttons can scale down slightly while pressed, the tactile response users expect from a native control.

PropertyTypeDefaultDescription
Press feedbackbooleanoffEnable the pressed state.
Pressed scalenumber0.96How far the button scales down. Values run from 0.85 to 1.0.

Screen transitions

A screen transition controls how a screen animates in when the flow navigates to it. Set it on the screen itself, in the properties panel, with no component selected.

TypeDescription
noneInstant swap, with no motion.
fadeThe incoming screen fades in as the outgoing one fades out.
slideA horizontal slide. Going back mirrors going forward automatically.
slide-upThe incoming screen rises from the bottom, like a sheet.
PropertyTypeDefaultDescription
TypeselectDefaultThe transition to apply.
Durationnumber300msHow long the transition takes. Valid from 0 to 1000ms.
Easingselectease-in-outlinear, ease-in, ease-out, or ease-in-out.

You only set the transition on the incoming screen. The outgoing screen's exit is derived from it, so a fade in pairs with a fade out and a slide in pairs with a slide out in the opposite direction.

Screens left on Default keep the behavior they have always had, so adding transitions to one screen never changes the rest of the flow. Pick one transition style for a flow and stay with it unless a particular moment earns the change: slide suits a forward-moving sequence such as a quiz, fade suits a reveal.


Easing

Easing controls the acceleration curve of an animation.

EasingDescription
linearConstant speed from start to finish. Mechanical feel.
easeInStarts slow, accelerates toward the end.
easeOutStarts fast, decelerates toward the end. The natural choice for an entrance.
easeInOutStarts and ends slow with acceleration in the middle. Smooth and polished.
springPhysics-based spring dynamics with a natural overshoot and settle. Ignores the duration value.

Duration

Duration is measured in milliseconds. The default is 300ms.

RangeFeel
100-200msSnappy and immediate. Good for press feedback and micro-interactions.
200-400msBalanced. The sweet spot for entrances and screen transitions.
400-800msDeliberate and attention-drawing. Good for a hero element.
800ms+Dramatic. Use sparingly.

Lottie animations

For motion that goes beyond these presets, the Lottie component renders JSON animations created in After Effects and exported via Bodymovin, with frame-by-frame control, adjustable speed, and resolution-independent rendering.

Reach for Lottie when you need branded illustrations or complex multi-element motion. For everything else, the presets above render natively with no asset to load.

On this page