Command Palette

Search for a command to run...

Tabs

A set of layered sections of content that display one panel at a time.

Account
Make changes to your account here. Click save when you're done.

A tabs component built on top of Radix UI Tabs.

Installation

npx shadcn@latest add tabs

Usage

import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
<Tabs defaultValue="account" className="w-[400px]">
<TabsList>
<TabsTrigger value="account">Account</TabsTrigger>
<TabsTrigger value="password">Password</TabsTrigger>
</TabsList>
<TabsContent value="account">Make changes to your account here.</TabsContent>
<TabsContent value="password">Change your password here.</TabsContent>
</Tabs>

Examples

Default

Account
Make changes to your account here. Click save when you're done.
import { Button } from "@/components/xfork-ui/button"
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/xfork-ui/card"
import { Input } from "@/components/xfork-ui/input"
import { Label } from "@/components/ui/label"
import {
Tabs,
TabsContent,
TabsList,
TabsTrigger,
} from "@/components/ui/tabs"
export default function TabsDemo() {
return (
<Tabs defaultValue="account" className="w-[400px]">
<TabsList className="grid w-full grid-cols-2">
<TabsTrigger value="account">Account</TabsTrigger>
<TabsTrigger value="password">Password</TabsTrigger>
</TabsList>
<TabsContent value="account">
<Card>
<CardHeader>
<CardTitle>Account</CardTitle>
<CardDescription>
Make changes to your account here. Click save when you're done.
</CardDescription>
</CardHeader>
<CardContent className="space-y-2">
<div className="space-y-1">
<Label htmlFor="name">Name</Label>
<Input id="name" defaultValue="Pedro Duarte" />
</div>
<div className="space-y-1">
<Label htmlFor="username">Username</Label>
<Input id="username" defaultValue="@peduarte" />
</div>
</CardContent>
<CardFooter>
<Button>Save changes</Button>
</CardFooter>
</Card>
</TabsContent>
<TabsContent value="password">
<Card>
<CardHeader>
<CardTitle>Password</CardTitle>
<CardDescription>
Change your password here. After saving, you'll be logged out.
</CardDescription>
</CardHeader>
<CardContent className="space-y-2">
<div className="space-y-1">
<Label htmlFor="current">Current password</Label>
<Input id="current" type="password" />
</div>
<div className="space-y-1">
<Label htmlFor="new">New password</Label>
<Input id="new" type="password" />
</div>
</CardContent>
<CardFooter>
<Button>Save password</Button>
</CardFooter>
</Card>
</TabsContent>
</Tabs>
)
}

Props

Tabs

Extends React.ComponentProps<typeof TabsPrimitive.Root>

| Prop | Type | Default | Description | | :-- | :-- | :-- | :-- | | defaultValue | string | undefined | The value of the tab that should be active when initially rendered. | | value | string | undefined | The controlled value of the tab to activate. | | onValueChange | (value: string) => void | undefined | Callback invoked when the value changes. |

TabsList

Extends React.ComponentProps<typeof TabsPrimitive.List>

TabsTrigger

Extends React.ComponentProps<typeof TabsPrimitive.Trigger>

TabsContent

Extends React.ComponentProps<typeof TabsPrimitive.Content>