Skip to content

Tabs

Tabbed interface via Radix UI

Default

Usage

tsx
import { Tabs, TabsList, TabsTrigger, TabsContent } from '@tryvienna/ui'

<Tabs defaultValue="account" className="w-96">
  <TabsList className="w-full">
    <TabsTrigger value="account" className="flex-1">
      Account
    </TabsTrigger>
    <TabsTrigger value="password" className="flex-1">
      Password
    </TabsTrigger>
  </TabsList>
  <TabsContent value="account">
    <div className="grid gap-4 pt-4">
      <div className="grid gap-2">
        <Label htmlFor="tab-name">Name</Label>
        <Input id="tab-name" defaultValue="Will" />
      </div>
      <Button>Save</Button>
    </div>
  </TabsContent>
  <TabsContent value="password">
    <div className="grid gap-4 pt-4">
      <div className="grid gap-2">
        <Label htmlFor="tab-pw">Current password</Label>
        <Input id="tab-pw" type="password" />
      </div>
      <Button>Update</Button>
    </div>
  </TabsContent>
</Tabs>

Examples

Default

Default
tsx
<Tabs defaultValue="account" className="w-96">
  <TabsList className="w-full">
    <TabsTrigger value="account" className="flex-1">
      Account
    </TabsTrigger>
    <TabsTrigger value="password" className="flex-1">
      Password
    </TabsTrigger>
  </TabsList>
  <TabsContent value="account">
    <div className="grid gap-4 pt-4">
      <div className="grid gap-2">
        <Label htmlFor="tab-name">Name</Label>
        <Input id="tab-name" defaultValue="Will" />
      </div>
      <Button>Save</Button>
    </div>
  </TabsContent>
  <TabsContent value="password">
    <div className="grid gap-4 pt-4">
      <div className="grid gap-2">
        <Label htmlFor="tab-pw">Current password</Label>
        <Input id="tab-pw" type="password" />
      </div>
      <Button>Update</Button>
    </div>
  </TabsContent>
</Tabs>

Three Tabs

Three Tabs
tsx
<Tabs defaultValue="overview" className="w-96">
  <TabsList>
    <TabsTrigger value="overview">Overview</TabsTrigger>
    <TabsTrigger value="analytics">Analytics</TabsTrigger>
    <TabsTrigger value="reports">Reports</TabsTrigger>
  </TabsList>
  <TabsContent value="overview">
    <p className="text-sm text-muted-foreground pt-4">Overview content.</p>
  </TabsContent>
  <TabsContent value="analytics">
    <p className="text-sm text-muted-foreground pt-4">Analytics content.</p>
  </TabsContent>
  <TabsContent value="reports">
    <p className="text-sm text-muted-foreground pt-4">Reports content.</p>
  </TabsContent>
</Tabs>

API Reference

Tabs

Also accepts all props from TabsPrimitive.Root.

TabsList

Also accepts all props from TabsPrimitive.List.

TabsTrigger

Also accepts all props from TabsPrimitive.Trigger.

TabsContent

Also accepts all props from TabsPrimitive.Content.

Data Attributes

Componentdata-slot
Tabs"tabs"
TabsList"tabs-list"
TabsTrigger"tabs-trigger"
TabsContent"tabs-content"