Overview
In v3, Expo Router integration wraps createBlankStackNavigator() with Expo Router's withLayoutContext().
Looking for Expo SDK 55+ support? See the v4 documentation.
Blank Stack Layout
This is the pattern from the e2e app:
TSX
The local wrapper lets your screens use screen options like screenStyleInterpolator, gestureEnabled, snapPoints, and overlay.
The blank-stack navigator itself also accepts navigator props like independent and nativeScreens. The e2e wrapper above pins nativeScreens={false}; remove that fixed prop if route layouts should choose the value themselves.
Using It In Route Layouts
TSX
router.push(), router.replace(), and router.back() still work normally. The transition behavior comes from the options you put on BlankStack.Screen.
Bounds And Router Navigation
TSX
The destination can use a matching passive Transition.Boundary, Transition.Boundary.Target, navigationMaskEnabled, and screenStyleInterpolator the same way it would outside Expo Router.
Embedded Flows
TSX
Use independent only when you want an isolated navigation tree, not for normal route layouts.