Core Concepts - Blade Components
Tabs Blade component
Overview
The tabs component allows you to render a set of tabs, which can be used to toggle between multiple sections of content:
<x-filament::tabs label="Content tabs"> <x-filament::tabs.item> Tab 1 </x-filament::tabs.item> <x-filament::tabs.item> Tab 2 </x-filament::tabs.item> <x-filament::tabs.item> Tab 3 </x-filament::tabs.item></x-filament::tabs>
Triggering the active state of the tab
By default, tabs do not appear "active". To make a tab appear active, you can use the active
attribute:
<x-filament::tabs> <x-filament::tabs.item active> Tab 1 </x-filament::tabs.item> {{-- Other tabs --}}</x-filament::tabs>
You can also use the active
attribute to make a tab appear active conditionally:
<x-filament::tabs> <x-filament::tabs.item :active="$activeTab === 'tab1'" wire:click="$set('activeTab', 'tab1')" > Tab 1 </x-filament::tabs.item> {{-- Other tabs --}}</x-filament::tabs>
Or you can use the alpine-active
attribute to make a tab appear active conditionally using Alpine.js:
<x-filament::tabs x-data="{ activeTab: 'tab1' }"> <x-filament::tabs.item alpine-active="activeTab === 'tab1'" x-on:click="activeTab = 'tab1'" > Tab 1 </x-filament::tabs.item> {{-- Other tabs --}}</x-filament::tabs>
Setting a tab icon
Tabs may have an icon, which you can set using the icon
attribute:
<x-filament::tabs> <x-filament::tabs.item icon="heroicon-m-bell"> Notifications </x-filament::tabs.item> {{-- Other tabs --}}</x-filament::tabs>
Setting the tab icon position
The icon of the tab may be positioned before or after the label using the icon-position
attribute:
<x-filament::tabs> <x-filament::tabs.item icon="heroicon-m-bell" icon-position="after" > Notifications </x-filament::tabs.item> {{-- Other tabs --}}</x-filament::tabs>
Setting a tab badge
Tabs may have a badge, which you can set using the badge
slot:
<x-filament::tabs> <x-filament::tabs.item> Notifications <x-slot name="badge"> 5 </x-slot> </x-filament::tabs.item> {{-- Other tabs --}}</x-filament::tabs>
Using a tab as an anchor link
By default, a tab's underlying HTML tag is <button>
. You can change it to be an <a>
tag by using the tag
attribute:
<x-filament::tabs> <x-filament::tabs.item :href="route('notifications')" tag="a" > Notifications </x-filament::tabs.item> {{-- Other tabs --}}</x-filament::tabs>
Edit on GitHubStill need help? Join our Discord community or open a GitHub discussion