Tabs

Switches between layered views of the same content area, one panel shown at a time. Reach for Tabs to organize settings sections, panel modes, or detail views — not for navigating between documents or files (use PageTabBar for browser-style, closeable document tabs). The default variant is a pill/segmented control that reads as a self-contained switch; the line variant is a lighter underline that sits flush at the top of a page or card section. Use md (32px) for standalone tab strips and sm (28px) in dense or inline contexts; add stretch to distribute triggers evenly across a fixed width.

Default

Make changes to your account here.
<Tabs defaultValue="account">
  <TabsList>
    <TabsTrigger value="account">Account</TabsTrigger>
    <TabsTrigger value="password">Password</TabsTrigger>
    <TabsTrigger value="team">Team</TabsTrigger>
  </TabsList>
  <TabsContent value="account">
    Make changes to your account here.
  </TabsContent>
  <TabsContent value="password">
    Change your password here.
  </TabsContent>
  <TabsContent value="team">
    Manage your team here.
  </TabsContent>
</Tabs>

Line variant

Make changes to your account here.
<Tabs variant="line" defaultValue="account">
  <TabsList>
    <TabsTrigger value="account">Account</TabsTrigger>
    <TabsTrigger value="password">Password</TabsTrigger>
    <TabsTrigger value="team">Team</TabsTrigger>
  </TabsList>
  <TabsContent value="account">…</TabsContent>
</Tabs>

Stretched

<Tabs stretch defaultValue="overview">
  <TabsList>
    <TabsTrigger value="overview">Overview</TabsTrigger>
    <TabsTrigger value="analytics">Analytics</TabsTrigger>
    <TabsTrigger value="reports">Reports</TabsTrigger>
    <TabsTrigger value="notifications">Notifications</TabsTrigger>
  </TabsList>
</Tabs>

Sizes

<>
  <Tabs size="md" defaultValue="overview">
    <TabsList>
      <TabsTrigger value="overview">Overview</TabsTrigger>
      <TabsTrigger value="analytics">Analytics</TabsTrigger>
      <TabsTrigger value="reports">Reports</TabsTrigger>
    </TabsList>
  </Tabs>
  <Tabs size="sm" defaultValue="overview">
    <TabsList>
      <TabsTrigger value="overview">Overview</TabsTrigger>
      <TabsTrigger value="analytics">Analytics</TabsTrigger>
      <TabsTrigger value="reports">Reports</TabsTrigger>
    </TabsList>
  </Tabs>
</>

Stretched + line

<Tabs stretch variant="line" defaultValue="overview">
  <TabsList>
    <TabsTrigger value="overview">Overview</TabsTrigger>
    <TabsTrigger value="analytics">Analytics</TabsTrigger>
    <TabsTrigger value="reports">Reports</TabsTrigger>
    <TabsTrigger value="notifications">Notifications</TabsTrigger>
  </TabsList>
</Tabs>

Props

PropTypeDefault
variant"default" | "line""default"
size"sm" | "md""md"
stretchbooleanfalse
…restRadix Tabs.Root props

Source

packages/react/src/components/tabs.tsx · Figma node 2819:31096