Skip to content

Tabs

Tab switching component with line and card styles.

Basic Usage

type="line" is the default. The active tab has a sliding indicator.

Users content
Settings content
Roles content
vue
<ATabs>
  <ATabPane label="Users" name="1">Users content</ATabPane>
  <ATabPane label="Settings" name="2">Settings content</ATabPane>
  <ATabPane label="Roles" name="3">Roles content</ATabPane>
</ATabs>

Card Style

Set type="card" for card-style tabs.

Users content
Settings content
Roles content
vue
<ATabs type="card">
  <ATabPane label="Users" name="1">Users content</ATabPane>
  <ATabPane label="Settings" name="2">Settings content</ATabPane>
  <ATabPane label="Roles" name="3">Roles content</ATabPane>
</ATabs>

Closable

Set closable to show close buttons.

Closable tab content
Click the close button to remove
vue
<ATabs closable @edit="(action, name) => console.log(action, name)">
  <ATabPane label="Tab 1" name="1">Content</ATabPane>
  <ATabPane label="Tab 2" name="2">Content</ATabPane>
</ATabs>

Disabled Tab

Set disabled on ATabPane.

Enabled content
Disabled content
Enabled content
vue
<ATabs>
  <ATabPane label="Enabled" name="1">Enabled content</ATabPane>
  <ATabPane label="Disabled" name="2" disabled>Disabled content</ATabPane>
  <ATabPane label="Enabled" name="3">Enabled content</ATabPane>
</ATabs>

API

Tabs Props

NameTypeDefaultDescription
modelValuestring | numberCurrently active tab name
type'line' | 'card''line'Tab style
closablebooleanfalseWhether tabs are closable
addablebooleanfalseShow add button
tabPosition'top' | 'left''top'Tab position

Tabs Events

NameDescription
update:modelValueActive tab changed
tabClickTab clicked
editClose or add tab, params (action, name?)

TabPane Props

NameTypeDefaultDescription
labelstringTab title
namestring | numberUnique identifier
disabledbooleanfalseDisabled

Interaction

  • Line tab indicator follows with spring elastic
  • Content fade-in animation on switch
  • Close button fades in on hover
  • Full ARIA tab roles

MIT License