Skip to content

Tabs ​

Organize content across multiple panels with interactive tabs. Supports card-based and standalone navigation modes.

Default (Card style) ​

Use the card prop to wrap tabs in a card layout with card-header styled navigation.

vue

<TTabs v-model="activeTab" card>
  <TTabPane name="home" title="Home">
    <h4>Home tab</h4>
  </TTabPane>
  <TTabPane name="profile" title="Profile">
    <h4>Profile tab</h4>
  </TTabPane>
</TTabs>

With Icons ​

Pass an @tabler/icons-vue component via the icon prop to display an icon before the tab title.

Show Code
vue

<TTabs v-model="activeTab" card>
  <TTabPane name="home" title="Home" :icon="IconHome">
    <h4>Home tab</h4>
  </TTabPane>
  <TTabPane name="profile" title="Profile" :icon="IconUser">
    <h4>Profile tab</h4>
  </TTabPane>
  <TTabPane name="settings" title="Settings" :icon="IconSettings">
    <h4>Settings tab</h4>
  </TTabPane>
</TTabs>

Full-width Tabs ​

Set justify="fill" to distribute tabs evenly across the full navigation width.

Show Code
vue

<TTabs v-model="activeTab" card justify="fill">
  <TTabPane name="home" title="Home" :icon="IconHome">
    <h4>Home tab</h4>
  </TTabPane>
  <TTabPane name="profile" title="Profile" :icon="IconUser">
    <h4>Profile tab</h4>
  </TTabPane>
  <TTabPane name="settings" title="Settings" :icon="IconSettings">
    <h4>Settings tab</h4>
  </TTabPane>
</TTabs>

Standalone Mode ​

Without the card prop, the tab navigation renders on its own — suitable for page-level navigation.

Show Code
vue

<TTabs v-model="activeTab">
  <TTabPane name="home" title="Home">
    <!-- content -->
  </TTabPane>
  <TTabPane name="profile" title="Profile">
    <!-- content -->
  </TTabPane>
</TTabs>

Disabled Tab ​

Set disabled on a TTabPane to prevent it from being activated.

Show Code
vue

<TTabs v-model="activeTab" card>
  <TTabPane name="home" title="Home" :icon="IconHome">
    <h4>Home tab</h4>
  </TTabPane>
  <TTabPane name="profile" title="Profile" :icon="IconUser" disabled>
    <h4>Profile tab (disabled)</h4>
  </TTabPane>
  <TTabPane name="settings" title="Settings" :icon="IconSettings">
    <h4>Settings tab</h4>
  </TTabPane>
</TTabs>

API ​

TTabs Props ​

PropDescriptionTypeDefault
modelValueCurrently active tab name (v-model)stringundefined
defaultActiveDefault active tab (uncontrolled)stringundefined
cardEnable card layoutbooleanfalse
justifyNavigation alignment'start' | 'center' | 'end' | 'fill'undefined

TTabs Emits ​

EventDescriptionType
update:modelValuev-model update event(value: string) => void
changeEmitted when the active tab changes(name: string) => void

TTabs Slots ​

SlotDescription
defaultTTabPane child components
headerCustom area on the right side of the nav

TTabPane Props ​

PropDescriptionTypeDefault
nameUnique identifierstring— (required)
titleNavigation label textstring— (required)
iconIcon component (from @tabler/icons-vue)Iconundefined
disabledWhether the tab is disabledbooleanfalse

TTabPane Slots ​

SlotDescription
defaultTab content panel