Tabs

Set of content sections to be displayed one at a time.

Make changes to your account.

vue
<script setup lang="ts">
import {
  TabsRoot,
  TabsList,
  TabsTrigger,
  TabsContent,
} from '@typlog/ui'
</script>

<template>
  <TabsRoot default-value="account">
    <TabsList>
      <TabsTrigger value="account">Account</TabsTrigger>
      <TabsTrigger value="documents">Documents</TabsTrigger>
      <TabsTrigger value="settings">Settings</TabsTrigger>
    </TabsList>

    <div class="p-4">
      <TabsContent value="account">
        <p>Make changes to your account.</p>
      </TabsContent>

      <TabsContent value="documents">
        <p>Access and update your documents.</p>
      </TabsContent>

      <TabsContent value="settings">
        <p>Edit your profile or update contact information.</p>
      </TabsContent>
    </div>
  </TabsRoot>
</template>

API Reference ​

TabsRoot ​

TabsList ​

PropDefaultType
color
–
highContrast
–
boolean
radius
–
"none""small""medium""large""full"
size"2"
"1""2"
variant"outline"
"classic""outline""soft""surface"

TabsTrigger ​

TabsContent ​

Examples ​

Size ​

vue
<script setup lang="ts">
import {
  TabsRoot,
  TabsList,
  TabsTrigger,
} from '@typlog/ui'
</script>

<template>
  <div class="flex flex-col gap-4">
    <TabsRoot default-value="account">
      <TabsList size="1" variant="classic">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList size="2" variant="classic">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList size="1" variant="outline">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList size="2" variant="outline">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList size="1" variant="soft">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList size="2" variant="soft">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList size="1" variant="surface">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList size="2" variant="surface">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>
  </div>
</template>

Variant ​

Make changes to your account.

Make changes to your account.

Make changes to your account.

Make changes to your account.

vue
<script setup lang="ts">
import {
  TabsRoot,
  TabsList,
  TabsTrigger,
  TabsContent,
} from '@typlog/ui'
</script>

<template>
  <div class="flex flex-col gap-4">
    <TabsRoot default-value="account">
      <TabsList variant="classic" color="gray">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>

      <div class="p-4">
        <TabsContent value="account">
          <p>Make changes to your account.</p>
        </TabsContent>
        <TabsContent value="documents">
          <p>Access and update your documents.</p>
        </TabsContent>
        <TabsContent value="settings">
          <p>Edit your profile or update contact information.</p>
        </TabsContent>
      </div>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList variant="surface">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>

      <div class="p-4">
        <TabsContent value="account">
          <p>Make changes to your account.</p>
        </TabsContent>
        <TabsContent value="documents">
          <p>Access and update your documents.</p>
        </TabsContent>
        <TabsContent value="settings">
          <p>Edit your profile or update contact information.</p>
        </TabsContent>
      </div>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList variant="soft">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>

      <div class="p-4">
        <TabsContent value="account">
          <p>Make changes to your account.</p>
        </TabsContent>
        <TabsContent value="documents">
          <p>Access and update your documents.</p>
        </TabsContent>
        <TabsContent value="settings">
          <p>Edit your profile or update contact information.</p>
        </TabsContent>
      </div>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList variant="outline">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>

      <div class="p-4">
        <TabsContent value="account">
          <p>Make changes to your account.</p>
        </TabsContent>
        <TabsContent value="documents">
          <p>Access and update your documents.</p>
        </TabsContent>
        <TabsContent value="settings">
          <p>Edit your profile or update contact information.</p>
        </TabsContent>
      </div>
    </TabsRoot>
  </div>
</template>

Radius ​

vue
<script setup lang="ts">
import {
  TabsRoot,
  TabsList,
  TabsTrigger,
} from '@typlog/ui'
</script>

<template>
  <div class="flex flex-col gap-4">
    <TabsRoot default-value="account">
      <TabsList radius="none" variant="classic">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList radius="small" variant="classic">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList radius="medium" variant="classic">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList radius="large" variant="classic">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>

    <TabsRoot default-value="account">
      <TabsList radius="full" variant="classic">
        <TabsTrigger value="account">Account</TabsTrigger>
        <TabsTrigger value="documents">Documents</TabsTrigger>
        <TabsTrigger value="settings">Settings</TabsTrigger>
      </TabsList>
    </TabsRoot>
  </div>
</template>
Last updated Sep 15, 2026