Nav, NavItem, NavSection and NavGroup take the same props as on the web. As a column (the default) they are a list of rows, for a drawer or a tablet sidebar. As a row (direction="row") they are the phone's bottom tab bar: the items share the width, each an icon over its label, with a line along the top and the home indicator's inset below. See the web Nav for the same components in the browser.
Put the bar last in the screen's column, under a view with flex={1}. The current tab is selected and drawn in the brand colour. A number badge is a count on the icon (0 hides it, above 9 prints 9+); indicator is a dot.
With React Navigation or Expo Router, render the same Nav from the tab navigator's tabBar prop and call navigation.navigate in onPress.
As a column, density sets the row height (compact 32, normal 40, spacious 48) and variant how the current row stands out (solid fills it, subtle fills it and dims the others, minimal marks it by weight alone). NavSection adds a small heading over a block of rows; NavGroup folds a set of rows behind a header, with a rail down the side.
- Tab bar. A row Nav is a bottom tab bar on the phone. On the web a row Nav lays its rows side by side.
- No links. A NavItem has no href: navigate in onPress (or core's onClick).
- Sortable. Rows can't be dragged into a NavGroup.
- Core 3.0 names. NavGroup also takes onOpenChange(open).
Nav also takes every Flex prop.