Key Features
- Native Stack & Blank Stack — Choose between native iOS behavior or fully custom animations
- Fluid Gestures — Swipe-to-dismiss with natural velocity and snapping
- Snap Points — Multi-stop bottom sheets and side sheets with smooth transitions
- Shared Elements — Measure bounds and animate elements across screens
- Customizable Animations — Write interpolators with Reanimated for infinite possibilities
- Overlay Support — Persistent UI that animates with the stack
- Expo Router Compatible — Works seamlessly with file-based routing
Quick Overview
Here’s a minimal example that adds a slide-from-bottom animation to a detail screen:Getting Started
Choose your path based on your needs:Quick Start
Installation
Custom Animations
Shared Elements
Gestures
Snap Points
Why Screen Transitions?
Native navigation feels smooth because the gesture and the animation stay connected. Screen Transitions is designed around that same idea: gesture-driven animation, real-time interpolation, and screen transitions that respond directly to user input instead of feeling detached from it.Architecture Overview
- Blank Stack — A bare navigator with no built-in animations. You define everything through
screenStyleInterpolator, gesture props, and screen options. - Native Stack — Wraps native iOS and Android screen behavior while still letting you customize the transition layer with Reanimated.
- Progress System — Animations are driven by a normalized progress value from
0(entering) to1(visible) to2(exiting). - Bounds API — Measure layout coordinates and animate elements across screens using
sharedBoundTagandbounds(). - Gesture System — Configure direction, velocity, activation areas, and snap behavior per screen.
Next Steps
- Read the Quick Start to get your first animation working
- Explore Custom Animations to understand the progress model
- Check out Stack Types if you need native behavior
