Lunar Kit LogoLunar Kit
Components

Tabs

A tabbed interface component for switching between different views or sections.

Demo
Code
Account
Password
Make changes to your account here.

Installation

lunar add tabs

Usage

import { Tabs, TabsList, TabsTrigger, TabsContent } from '@/components/ui/tabs';

Basic Usage

const [activeTab, setActiveTab] = useState('tab1');
 
<Tabs value={activeTab} onValueChange={setActiveTab}>
<TabsList>
  <TabsTrigger value="tab1">Tab 1</TabsTrigger>
  <TabsTrigger value="tab2">Tab 2</TabsTrigger>
  <TabsTrigger value="tab3">Tab 3</TabsTrigger>
</TabsList>
 
<TabsContent value="tab1">
  <Text>Content for Tab 1</Text>
</TabsContent>
 
<TabsContent value="tab2">
  <Text>Content for Tab 2</Text>
</TabsContent>
 
<TabsContent value="tab3">
  <Text>Content for Tab 3</Text>
</TabsContent>
</Tabs>

Variants

// Underline (default)
<Tabs variant="underline" value={tab} onValueChange={setTab}>
{/* ... */}
</Tabs>
 
// Pill
<Tabs variant="pill" value={tab} onValueChange={setTab}>
{/* ... */}
</Tabs>

Disabled Tabs

<Tabs value={activeTab} onValueChange={setActiveTab}>
<TabsList>
  <TabsTrigger value="tab1">Active</TabsTrigger>
  <TabsTrigger value="tab2" disabled>Disabled</TabsTrigger>
  <TabsTrigger value="tab3">Active</TabsTrigger>
</TabsList>
{/* Content */}
</Tabs>

API Reference

Tabs

Root component that manages tab state.

PropTypeDefaultDescription
valuestringRequiredActive tab value
onValueChange(value: string) => voidRequiredChange callback
variant'underline' | 'pill''underline'Visual variant
classNamestring—Additional classes

TabsList

Container for tab triggers.

PropTypeDefaultDescription
childrenReactNodeRequiredTabsTrigger components
classNamestring—Additional classes

TabsTrigger

Individual tab button.

PropTypeDefaultDescription
valuestringRequiredTab identifier
childrenstringRequiredTab label
disabledbooleanfalseDisable the tab
classNamestring—Additional classes

TabsContent

Content panel for a tab.

PropTypeDefaultDescription
valuestringRequiredTab identifier
childrenReactNodeRequiredTab content
classNamestring—Additional classes

On this page