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