PillTabs

Pill-shaped tabs with optional icons, horizontal or vertical. Use size (xs, sm, md, lg, xl) to change density.

Jump to API reference

Import

Vue
import { UiPillTabs } from '@ziyarago/ui/vue'

Horizontal

Vue
<UiPillTabs
  value="flights"
  :items="[{ value: 'flights', label: 'Flights', icon: 'plane' }, { value: 'hotels', label: 'Hotels', icon: 'bed' }, { value: 'transfers', label: 'Transfers', icon: 'car' }]"
 />

Vertical

Vue
<UiPillTabs
  vertical
  value="hotels"
  :items="[{ value: 'flights', label: 'Flights', icon: 'plane' }, { value: 'hotels', label: 'Hotels', icon: 'bed' }, { value: 'transfers', label: 'Transfers', icon: 'car' }]"
 />

Sizes

Vue
<UiPillTabs
  value="flights"
  :items="[{ value: 'flights', label: 'Flights', icon: 'plane' }, { value: 'hotels', label: 'Hotels', icon: 'bed' }, { value: 'transfers', label: 'Transfers', icon: 'car' }]"
  size="xs"
 />

<UiPillTabs
  value="flights"
  :items="[{ value: 'flights', label: 'Flights', icon: 'plane' }, { value: 'hotels', label: 'Hotels', icon: 'bed' }, { value: 'transfers', label: 'Transfers', icon: 'car' }]"
  size="sm"
 />

<UiPillTabs
  value="flights"
  :items="[{ value: 'flights', label: 'Flights', icon: 'plane' }, { value: 'hotels', label: 'Hotels', icon: 'bed' }, { value: 'transfers', label: 'Transfers', icon: 'car' }]"
  size="md"
 />

<UiPillTabs
  value="flights"
  :items="[{ value: 'flights', label: 'Flights', icon: 'plane' }, { value: 'hotels', label: 'Hotels', icon: 'bed' }, { value: 'transfers', label: 'Transfers', icon: 'car' }]"
  size="lg"
 />

<UiPillTabs
  value="flights"
  :items="[{ value: 'flights', label: 'Flights', icon: 'plane' }, { value: 'hotels', label: 'Hotels', icon: 'bed' }, { value: 'transfers', label: 'Transfers', icon: 'car' }]"
  size="xl"
 />

API reference

Pill-style tab buttons with optional icons, horizontal or vertical; use for settings and profile sections.

Props

PropType and valuesDefaultDescription
items{ value: string; label: string; icon?: string }[]'[]'Tabs.
valuestring—Value of the selected tab. Changed via the change event.
verticalbooleanfalseStacks the tabs in a column.
sizexssmmdlgxl'md'Scale of button height, gap and text.

Events

Vue: @name. React: onName.

changeCalled with the value of the clicked tab.

Notes

  • Renders only the tab buttons; you show the matching panel yourself.