Overview
Transition components provide the foundation for animated navigation. They handle animation orchestration, gesture coordination, and bounds tracking.Core Navigator Components
Transition.Stack
Navigates between screens with customizable animations:screenStyleInterpolator: Animation functionscreenOptions: Navigation options (headerShown, animationEnabled, etc.)gestureEnabled: Enable/disable gesturesgestureDirection: “horizontal” or “vertical”- All gesture options (velocity scale, snap behavior, etc.)
Transition.Modal
Presents screens as modal overlays with snap points:snapPoints: Array of positions (0–1 or “auto”)sheetScrollGestureBehavior: “expand-and-collapse” or “collapse-only”navigationMaskEnabled: Enable built-in masking
Transition.Screen
Individual screen definition:Boundary Components
Transition.Boundary.View
Marks a view as a shared element source or destination:id: Unique identifier for this boundarystyle: Standard View styleschildren: Content
Transition.Boundary.Pressable
A pressable boundary that captures source bounds on press:id: Unique identifieronPress: Called when presseddisabled: Disable pressable behavior- Standard Pressable props (onLongPress, delayLongPress, etc.)
Transition.Boundary.Target
Register animation targets without rendering extra elements:Animated View Components
Transition.View
An animated view with optional styleId for per-element animation:styleId: Unique ID for animation targeting in interpolators- Standard View props
Transition.Pressable
Pressable with animation support:Transition.View but with Pressable functionality.
Transition.ScrollView
ScrollView with gesture coordination:Transition.FlatList
FlatList with gesture coordination:Deprecated Components
Transition.MaskedView
Deprecated. UsenavigationMaskEnabled instead:
Helper Functions
Transition.createBoundaryComponent
Create custom boundary components wrapping your own elements:alreadyAnimated?: boolean- Set true if component already applies animations
Transition.createTransitionAwareComponent
Wrap components to make them aware of transition state:isScrollable?: boolean- Component handles scroll gesturesalreadyAnimated?: boolean- Component applies animations internally
Screen Components Table
| Component | Purpose | Key Features |
|---|---|---|
Transition.Stack | Stack navigator | Customizable animations, gestures |
Transition.Modal | Modal navigator | Snap points, overlays |
Transition.Screen | Screen definition | Basic screen wrapper |
Transition.Boundary.View | Shared element | Source/destination boundaries |
Transition.Boundary.Pressable | Interactive boundary | Captures bounds on press |
Transition.Boundary.Target | Target registration | Lightweight bounds marker |
Transition.View | Animated view | Per-element animation via styleId |
Transition.Pressable | Animated pressable | Pressable with animations |
Transition.ScrollView | Coordinated scroll | Gesture coordination |
Transition.FlatList | Coordinated list | Gesture coordination |
Props Reference
Common Navigator Props
Styling Props
Boundary Component Styling
Animated Styling via Interpolator
TypeScript Support
All components are fully typed:Next Steps
- Learn custom animations for interpolator patterns
- Explore shared elements for bounds APIs
- See stack types for specialized navigators
