expo-router

Implements file-based navigation and routing for Expo Router React Native apps.

Updated Sep 8, 2026
One-click install
npx skills add https://github.com/bmiit145/leadBee --skill expo-router-bmiit145
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: expo-router
Source: https://github.com/bmiit145/leadBee/tree/main/mobile/.agents/skills/expo-router
Command: npx skills add https://github.com/bmiit145/leadBee --skill expo-router-bmiit145

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires expo-router, react-native-screens, and includes references (resource) components.

What problem does it solve? Structuring navigation in Expo apps requires knowing many platform-specific conventions—file-based routes, dynamic segments, native stacks, tabs, modals, and iOS-specific features like form sheets and zoom transitions. This Skill provides the conventions, code patterns, and reference material to build correct native navigation without digging through documentation. ## Core Features & Use Cases - File-Based Routing: Organize routes in the app directory with dynamic routes, catch-all segments, group routes, and layout files. - Native Navigation Components: Configure native Stacks, NativeTabs with SF Symbols, Link previews, context menus, modals, and form sheets. - iOS Platform Features: Implement header toolbars, search bars, Apple zoom transitions, and iOS 26 liquid glass tab behaviors. - Use Case: When building a tabbed mobile app where each tab needs its own stack with large titles, a search tab, and modal detail screens, this Skill provides the exact layout structure and code to wire it together. ## Quick Start Use the expo-router skill to set up a NativeTabs layout with nested Stacks and a detail screen pushed via Link with a preview.

Frequently Asked Questions about expo-router

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure routes in Expo Router?▼

Place route files in the app directory, using square brackets for dynamic segments like [id].tsx and parentheses for group routes that don't affect URLs. Every directory can have a _layout.tsx file defining its Stack or tabs, and the app must always have a route matching "/".

How do I add native tabs in Expo Router?▼

Import NativeTabs from expo-router/unstable-native-tabs and define a NativeTabs.Trigger for each route, with Label, Icon, and Badge as child components. The trigger name must exactly match the route name including parentheses, and tabs must remain static since changes remount the navigator.

Should I use NativeTabs or JS Tabs in Expo Router?▼

Prefer NativeTabs for the best iOS experience, including liquid glass effects on iOS 26 and Material 3 navigation on Android. JS Tabs use a props-based API with built-in headers, while NativeTabs use component children and require nesting a Stack inside each tab for headers.

Does Expo Router toolbar support Android?▼

No, Stack.Toolbar components for header and bottom toolbars are iOS only and require Expo SDK 55 or later. Placement options are left, right, and bottom, with bottom placement only usable inside screen components rather than layout files.

Why is my Expo Router tab bar transparent on iOS?▼

On iOS 18 and earlier, the tab bar turns transparent if the screen's first opaque child is not a ScrollView or FlatList. Either make the scroll view the first child, set collapsable={false} on wrapper views, or set disableTransparentOnScrollEdge on the trigger.

Can I import from @react-navigation directly in SDK 56?▼

No, in SDK 56 and later you should import from expo-router/react-navigation instead of @react-navigation/native, /core, /elements, or /routers. This covers ThemeProvider, DarkTheme, and DefaultTheme used for wrapping layouts.