Bottom Navigation
Mobile tab bar pinned to the bottom of its scroll container, with safe-area padding. Tap between the tabs in any of these.
Bar
The default: full-width, flush with the bottom edge.
- position='absolute' here so the bar stays inside the preview frame; it is sticky to its scroll container in real usage
- Items with an href render as links and take renderLink for a router Link, as on Navbar; items without one become buttons when onItemSelect is passed
Floating
variant='floating' detaches the bar from the edge as a pill with the panel shadow, for a bar that sits over scrolling content.
Floating, notched, with a centre action
action places a raised primary button in a notch cut from the bar, and the items split evenly either side of it. Give it an aria-label - it is icon-only.
- The items split either side of the action, so an even count reads symmetrically
- action takes an onClick - here it opens a bottom sheet, the usual job of a centre create button
Active indicators
indicator picks how the active tab is marked, beyond the label and icon colour. Colour alone is not sufficient (WCAG 1.4.1); aria-current='page' is always set regardless.
none
dot
pill
circle
With a badge
Pass a composed icon element to show unread counts or alerts.
API reference
The tabs, in display order.
A raised primary action centred in a notch cut from the bar, items split evenly either side. Rendered as a `<button>`; give it an `aria-label` since it is icon-only.
Non-colour active cue: `"none"` (default), `"dot"` under the label, `"pill"` behind the item, `"circle"` behind the icon. Active items also get `aria-current="page"` (WCAG 1.4.1).
Called when an item is chosen, so a tab bar switching local view state can report the choice (same as `Navbar`). Items with an `href` still navigate; this fires alongside.
`"sticky"` (default) pins to its scroll container's bottom; `"fixed"` to the viewport, escaping any container; `"absolute"` for a `position: relative` parent; `"static"` for manual layouts.
Wraps each `href` item in a router link. The third argument holds Fuji's anchor props (`href`, `aria-current`, `className`, `onClick`, `children`); spread them or they are merged in for you.
`"floating"` detaches the bar: inset, fully rounded, with the panel shadow instead of a top border. Default `"bar"`.
Also accepts everything from React.HTMLAttributes<HTMLElement>.
Coding agents read this reference, with its examples, from the version your project has installed, through the Fuji UI MCP server. Set up your agent
