- Getting Started
- The Basics
- Concepts
- SuperNative
-
EDGE Components
- Introduction
- Activity Indicator
- Badge
- Bottom Navigation
- Bottom Sheet
- Button
- Button Group
- Canvas
- Carousel
- Checkbox
- Chip
- Column
- Divider
- Gesture Area
- Icon
- Icons
- Image
- Layout & Styling
- List
- Menus
- Modal
- Pressable
- Progress Bar
- Radio Group
- Row
- Scroll View
- Select
- Shapes
- Side Navigation
- Slider
- Spacer
- Stack
- Tab Row
- Text
- Text Input
- Toggle
- Top Bar
- Virtual List
- Web View
- Plugins
- Testing
- Architecture
You're viewing pre-release documentation — version 4.x is in beta
Features, APIs and behaviour may change before the stable release. View the stable version (3.x)
Bottom Navigation
Important
Prefer the Layout model. Declare your app's bottom tabs with the TabBar
builder in a NativeLayout class rather than placing <native:bottom-nav> in a screen. This page documents the
inline element, which still works but is no longer the recommended approach.
Overview#


A bottom navigation bar with up to 5 items. Used for your app's primary navigation.
<native:bottom-nav label-visibility="labeled"> <native:bottom-nav-item id="home" icon="home" label="Home" url="/home" :active="true" /> <native:bottom-nav-item id="profile" icon="person" label="Profile" url="/profile" badge="3" /></native:bottom-nav>
Props#
label-visibility-labeled,selected, orunlabeled(optional, default:labeled)dark- Force dark mode styling (optional)active-color- Color of the active tab's icon and label. Hex string (optional)background-color- Bar background color. Hex string. Wins overdark's default (optional)text-color- Color of inactive tab icons and labels. Hex string. Active tabs useactive-color(optional)
Children#
Important
In the Layout model a bottom-nav item is a Tab — use that builder
rather than placing <native:bottom-nav-item> inline.
A <native:bottom-nav> can contain up to 5 <native:bottom-nav-item> elements.
Props#
id- Unique identifier (required)icon- A named icon (required)label- Accessibility label (required)url- A URL to navigate to in the web view (required)active- Highlight this item as active (optional, default:false)badge- Badge text/number, e.g."2"— small red pill anchored top-right of the icon (optional)news- Show a small red dot anchored top-right of the icon. Mutually exclusive withbadge(optional, default:false)
badge example#

Builder API#
When a <native:bottom-nav> is supplied by a layout, you build it fluently with the TabBar
and Tab builders rather than writing it in Blade.
use Native\Mobile\Edge\Layouts\Builders\Tab;use Native\Mobile\Edge\Layouts\Builders\TabBar; TabBar::make() ->dark() ->activeColor('#0891b2') ->labelVisibility('labeled') ->backgroundColor('#0F172A') ->textColor('#94A3B8') ->add(Tab::link('Chats', '/syncup', icon: 'chat_bubble')->badge('2')) ->add(Tab::link('Friends', '/syncup/friends', icon: 'person.3.fill')->news()) ->add(Tab::link('Profile', '/syncup/profile', icon: 'person')->active());
TabBar methods#
make()- Create a new builderdark(bool $dark = true)- Force dark mode stylingactiveColor(string $color)- Color of the active tab's icon and labelbackgroundColor(string $color)- Bar background color (overridesdark()'s default)textColor(string $color)- Color of inactive tab icons and labelslabelVisibility(string $mode)-"labeled","selected", or"unlabeled"add(Tab $tab)- Append a tab item
Tab methods#
link(string $label, string $url, ?string $icon = null)- Build a tab. The id defaults to the label slugifiedid(string $id)- Override the auto-generated idicon(string $icon)- A named iconbadge(string $badge, ?string $color = null)- Show a numeric/text badgenews(bool $news = true)- Show a red dot indicatoractive(bool $active = true)- Mark this tab as active
in no time