Tabs
A set of layered sections of content—known as tab panels—that are displayed one at a time.
Loading…
"use client"
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card"
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
export default function TabsDemo() {
return (
<Tabs defaultValue="overview" className="w-[400px]">
<TabsList>
<TabsTrigger value="overview">Overview</TabsTrigger>
<TabsTrigger value="analytics">Analytics</TabsTrigger>
<TabsTrigger value="applications">Applications</TabsTrigger>
<TabsTrigger value="settings">Settings</TabsTrigger>
</TabsList>
<TabsContent value="overview">
<Card>
<CardHeader>
<CardTitle>Overview</CardTitle>
<CardDescription>
View your key metrics and recent resume activity. Track progress
across all your active documents.
</CardDescription>
</CardHeader>
<CardContent className="text-sm text-muted-foreground">
You have 3 active resumes and 2 pending cover letters.
</CardContent>
</Card>
</TabsContent>
<TabsContent value="analytics">
<Card>
<CardHeader>
<CardTitle>Analytics</CardTitle>
<CardDescription>
Track resume performance and recruiter engagement. Monitor trends
and identify growth opportunities.
</CardDescription>
</CardHeader>
<CardContent className="text-sm text-muted-foreground">
Your average ATS score is up 25% compared to last month.
</CardContent>
</Card>
</TabsContent>
<TabsContent value="applications">
<Card>
<CardHeader>
<CardTitle>Applications</CardTitle>
<CardDescription>
Review the jobs you have applied to and their current stage.
Export your pipeline in multiple formats.
</CardDescription>
</CardHeader>
<CardContent className="text-sm text-muted-foreground">
You have 12 applications tracked and 3 interviews scheduled.
</CardContent>
</Card>
</TabsContent>
<TabsContent value="settings">
<Card>
<CardHeader>
<CardTitle>Settings</CardTitle>
<CardDescription>
Manage your account preferences and options. Customize your
experience to fit your needs.
</CardDescription>
</CardHeader>
<CardContent className="text-sm text-muted-foreground">
Configure notifications, security, and themes.
</CardContent>
</Card>
</TabsContent>
</Tabs>
)
}Installation
pnpm dlx shadcn@latest add @kickresume/tabsUsage
import { Tabs, TabsList, TabsTrigger, TabsContent } from "@/components/ui/tabs"<Tabs defaultValue="overview" className="w-[400px]">
<TabsList>
<TabsTrigger value="overview">Overview</TabsTrigger>
<TabsTrigger value="analytics">Analytics</TabsTrigger>
<TabsTrigger value="applications">Applications</TabsTrigger>
<TabsTrigger value="settings">Settings</TabsTrigger>
</TabsList>
<TabsContent value="overview">
<Card>
<CardHeader>
<CardTitle>Overview</CardTitle>
<CardDescription>
View your key metrics and recent resume activity. Track progress
across all your active documents.
</CardDescription>
</CardHeader>
<CardContent className="text-sm text-muted-foreground">
You have 3 active resumes and 2 pending cover letters.
</CardContent>
</Card>
</TabsContent>
<TabsContent value="analytics">
<Card>
<CardHeader>
<CardTitle>Analytics</CardTitle>
<CardDescription>
Track resume performance and recruiter engagement. Monitor trends
and identify growth opportunities.
</CardDescription>
</CardHeader>
<CardContent className="text-sm text-muted-foreground">
Your average ATS score is up 25% compared to last month.
</CardContent>
</Card>
</TabsContent>
<TabsContent value="applications">
<Card>
<CardHeader>
<CardTitle>Applications</CardTitle>
<CardDescription>
Review the jobs you have applied to and their current stage.
Export your pipeline in multiple formats.
</CardDescription>
</CardHeader>
<CardContent className="text-sm text-muted-foreground">
You have 12 applications tracked and 3 interviews scheduled.
</CardContent>
</Card>
</TabsContent>
<TabsContent value="settings">
<Card>
<CardHeader>
<CardTitle>Settings</CardTitle>
<CardDescription>
Manage your account preferences and options. Customize your
experience to fit your needs.
</CardDescription>
</CardHeader>
<CardContent className="text-sm text-muted-foreground">
Configure notifications, security, and themes.
</CardContent>
</Card>
</TabsContent>
</Tabs>Composition
Use the following composition to build Tabs:
Tabs
├── TabsList
│ ├── TabsTrigger
│ └── TabsTrigger
├── TabsContent
└── TabsContentExamples
Line
Use the variant="line" prop on TabsList for a line style.
Loading…
"use client"
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"
export default function TabsLine() {
return (
<Tabs defaultValue="overview">
<TabsList variant="line">
<TabsTrigger value="overview">Overview</TabsTrigger>
<TabsTrigger value="analytics">Analytics</TabsTrigger>
<TabsTrigger value="reports">Reports</TabsTrigger>
</TabsList>
</Tabs>
)
}Vertical
Use orientation="vertical" for vertical tabs.
Loading…
"use client"
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"
export default function TabsVertical() {
return (
<Tabs defaultValue="account" orientation="vertical">
<TabsList>
<TabsTrigger value="account">Account</TabsTrigger>
<TabsTrigger value="password">Password</TabsTrigger>
<TabsTrigger value="notifications">Notifications</TabsTrigger>
</TabsList>
</Tabs>
)
}Disabled
Loading…
"use client"
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"
export default function TabsDisabled() {
return (
<Tabs defaultValue="home">
<TabsList>
<TabsTrigger value="home">Home</TabsTrigger>
<TabsTrigger value="settings" disabled>
Disabled
</TabsTrigger>
</TabsList>
</Tabs>
)
}Icons
Loading…
"use client"
import { AppWindowIcon, CodeIcon } from "lucide-react"
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"
export default function TabsIcons() {
return (
<Tabs defaultValue="preview">
<TabsList>
<TabsTrigger value="preview">
<AppWindowIcon data-icon="inline-start" />
Preview
</TabsTrigger>
<TabsTrigger value="code">
<CodeIcon data-icon="inline-start" />
Code
</TabsTrigger>
</TabsList>
</Tabs>
)
}API Reference
See the Base UI Tabs documentation.