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 and responsive because every interaction is hardware-accelerated and responsive to user input. Most React Native navigation libraries animate after the gesture completes, creating a disconnect. Screen Transitions makes the gesture drive the animation in real time, matching iOS and Android native behavior.Architecture Overview
- Blank Stack — A bare navigator with no built-in animations. You define everything via
screenStyleInterpolatorand gesture options. - Native Stack — Wraps native iOS/Android behavior but still allows customization via Reanimated.
- Progress System — All animations driven by a normalized progress value from 0 (entering) to 1 (visible) to 2 (exiting).
- Bounds API — Measure layout coordinates and animate elements across screens using
sharedBoundTagandbounds()utilities. - Gesture System — Individual gesture props let you 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
