A floating toolbar component for actions, navigation, and menus. Designed to work with Stack navigation and supports placement at the top or bottom of the screen. Uses Radix UI Toolbar and Dropdown Menu primitives on web.
Installation
Usage
Examples
Basic Toolbar
A simple toolbar with icon buttons.
Toolbar with Labels
Buttons can include text labels alongside icons.
Toolbar with Menu
Include dropdown menus for additional actions.
Menu with Checkbox Items
Menus can include checkbox items for toggleable options.
Menu with Radio Items
Use radio groups for mutually exclusive options.
Submenu
Menus can contain nested submenus.
Toolbar with Links
Use Toolbar.Link for navigation actions.
Active State
Buttons can show an active/selected state.
With Stack Integration
Use Stack.Toolbar to add a toolbar to your stack screens.
API Reference
Toolbar
The root container for toolbar items.
Toolbar.Button
An interactive button in the toolbar.
Toolbar.Link
A toolbar button that navigates to a route.
Toolbar.Separator
A visual divider between toolbar items.
Toolbar.Spacer
A flexible spacer that pushes items apart.
Toolbar.Menu
A dropdown menu in the toolbar.
Toolbar.MenuItem
An item in the toolbar menu.
Toolbar.MenuSeparator
A divider between menu items.
Toolbar.MenuLabel
A non-interactive label in a menu.
Toolbar.MenuCheckboxItem
A toggleable checkbox item in a menu.
Toolbar.MenuRadioGroup
A group of mutually exclusive radio items.
Toolbar.MenuRadioItem
A radio item within a radio group.
Toolbar.MenuSub
A submenu within a menu.
Platform Differences
Native (iOS)
- On iOS, the native toolbar is rendered by the native stack navigator
- This component is a no-op on iOS - use the native
headerRight/headerLeftoptions instead - Future versions will integrate with Expo Router v7's toolbar API
Web
- Full implementation using Radix UI primitives
- Floating pill-style toolbar with backdrop blur
- Responsive to sidebar state from TabBarController
- Supports keyboard navigation and focus management
- Smooth animations for menu open/close
Android
- Currently renders as no-op (same as iOS)
- Future versions will render a bottom toolbar similar to web
Accessibility
- Full keyboard navigation support on web
- Arrow keys to navigate between items
- Enter/Space to activate buttons and menu items
- Escape to close menus
- Focus trap when menu is open
- Screen reader announcements for menu state changes