Files
ui/docs/content/3.components/tabs.md
2024-07-26 16:11:24 +02:00

3.9 KiB

description, links
description links
A set of tab panels that are displayed one at a time.
label icon to
Tabs i-custom-radix-vue https://www.radix-vue.com/components/tabs.html
label icon to
GitHub i-simple-icons-github https://github.com/benjamincanac/ui3/tree/dev/src/runtime/components/Tabs.vue

Usage

Items

Use the items prop as an array of objects with the following properties:

  • label?: string{lang="ts-type"}
  • icon?: string{lang="ts-type"}
  • avatar?: AvatarProps{lang="ts-type"}
  • slot?: string{lang="ts-type"}
  • content?: string{lang="ts-type"}
  • value?: string | number{lang="ts-type"}
  • disabled?: boolean{lang="ts-type"}

::component-code

external:

  • items hide:
  • class props: class: 'w-full' items:
    • label: Account icon: 'i-heroicons-user' content: 'This is the account content.'
    • label: Password icon: 'i-heroicons-lock-closed' content: 'This is the password content.'

::

Content

Use the content prop to control how the Tabs are rendered.

You can set it to false to prevent the Tabs from rendering any content and act as a toggle.

::component-code

ignore:

  • content external:
  • items hide:
  • class props: class: 'w-full' content: false items:
    • label: Account icon: 'i-heroicons-user' content: 'This is the account content.'
    • label: Password icon: 'i-heroicons-lock-closed' content: 'This is the password content.'

::

You can also choose to only render the content of the active tab by setting content.forceMount to false.

::component-code

prettier: true ignore:

  • content.forceMount external:
  • items hide:
  • class props: class: 'w-full' content: forceMount: false items:
    • label: Account icon: 'i-heroicons-user' content: 'This is the account content.'
    • label: Password icon: 'i-heroicons-lock-closed' content: 'This is the password content.'

::

::note You can inspect the DOM to see that the content of the inactive tab is not rendered. ::

Color

Use the color prop to change the color of the Tabs.

::component-code

ignore:

  • content external:
  • items hide:
  • class props: color: gray class: 'w-full' content: false items:
    • label: Account
    • label: Password

::

Variant

Use the variant prop to change the variant of the Tabs.

::component-code

ignore:

  • content external:
  • items hide:
  • class props: color: gray variant: link class: 'w-full' content: false items:
    • label: Account
    • label: Password

::

Size

Use the size prop to change the size of the Tabs.

::component-code

ignore:

  • content external:
  • items hide:
  • class props: size: md variant: pill class: 'w-full' content: false items:
    • label: Account
    • label: Password

::

Orientation

Use the orientation prop to change the orientation of the Tabs.

::component-code

ignore:

  • content external:
  • items hide:
  • class props: orientation: vertical variant: pill class: 'w-full' content: false items:
    • label: Account
    • label: Password

::

Examples

Control active tab

You can control the active tab by using the default-value prop or the v-model directive with the index of the item.

::component-example

name: 'tabs-model-value-example' props: class: 'w-full'

::

::tip You can also pass the value of one of the items if provided. ::

With content slot

Use the #content slot to customize the content of each item.

::component-example

name: 'tabs-content-slot-example' props: class: 'w-full'

::

With custom slot

Use the slot property to customize a specific item.

::component-example

name: 'tabs-custom-slot-example' props: class: 'w-full'

::

API

Props

:component-props

Slots

:component-slots

Events

:component-events

Theme

:component-theme