Tab are used to switch between different content within the same context
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ac odio tempor orci dapibus ultrices in. Tortor posuere ac ut consequat semper viverra. Vehicula ipsum a arcu cursus vitae congue mauris rhoncus aenean. Iaculis nunc sed augue lacus viverra vitae congue eu consequat. Sit amet porttitor eget dolor morbi non arcu risus. Lorem sed risus ultricies tristique nulla aliquet enim tortor. Eu tincidunt tortor aliquam nulla. Eu mi bibendum neque egestas congue quisque.
Hac habitasse platea dictumst vestibulum. Sed libero enim sed faucibus. Nunc mattis enim ut tellus elementum sagittis vitae. Vel facilisis volutpat est velit egestas dui. Semper viverra nam libero justo. Nunc faucibus a pellentesque sit amet porttitor. Urna duis convallis convallis tellus. Blandit aliquam etiam erat velit scelerisque in. Egestas tellus rutrum tellus pellentesque eu tincidunt. Mattis rhoncus urna neque viverra justo.
Nulla facilisi etiam dignissim diam. Sit amet nulla facilisi morbi tempus iaculis urna id volutpat. Ultrices dui sapien eget mi proin sed libero enim sed. Ut placerat orci nulla pellentesque dignissim enim sit amet. Dolor sed viverra ipsum nunc aliquet bibendum. Ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at. Consectetur libero id faucibus nisl tincidunt. Lectus urna duis convallis convallis tellus. Tortor at risus viverra adipiscing at. Placerat orci nulla pellentesque dignissim enim sit amet. Malesuada nunc vel risus commodo viverra maecenas.
<div className="flex w-full space-x-2">
<Tabs
tabs={["Tab 1", "Tab 2", "Tab 3"]}
panels={[
"Lorem ipsum dolor sit amet...",
"Hac habitasse platea dictumst vestibulum...",
"Nulla facilisi etiam dignissim diam...",
]}
/>
</div>
import { Tabs, TabsContent, TabsList, TabsRoot, TabsTrigger } from "#/ui/components/Tabs"
<Tabs tabs={[{
title: 'Tab 1',
content: <div className='w-full h-12 bg-red-400'>Tab 1</div>
}, {
title: 'Tab 2',
content: <div className='w-full h-12 bg-blue-400'>Tab 2</div>
}, {
title: 'Tab 3',
content: <div className='w-full h-12 bg-green-400'>Tab 3</div>
}]} />
// or for more graular control
<TabsRoot>
<TabsList>
<TabsTrigger value="tab-1">Tab 1</TabsTrigger>
<TabsTrigger value="tab-2">Tab 2</TabsTrigger>
<TabsTrigger value="tab-3">Tab 3</TabsTrigger>
</TabsList>
<TabsContent value="tab-1">
<div className='w-full h-12 bg-red-400'>Tab 1</div>
</TabsContent>
<TabsContent value="tab-2">
<div className='w-full h-12 bg-blue-400'>Tab 2</div>
</TabsContent>
<TabsContent value="tab-3">
<div className='w-full h-12 bg-green-400'>Tab 3</div>
</TabsContent>
</TabsRoot>
The tabs component does not provide any styling for the panels, but you can pass your own.
Tab 1
Tab 2
Tab 3
<div className="flex w-full space-x-2">
<Tabs
tabs={[
{
title: "Tab 1",
content: <div className="h-12 w-full bg-red-400">Tab 1</div>,
},
{
title: "Tab 2",
content: <div className="h-12 w-full bg-blue-400">Tab 2</div>,
},
{
title: "Tab 3",
content: <div className="h-12 w-full bg-green-400">Tab 3</div>,
},
]}
/>
</div>
If you need more fine-grain control you can access each layer of the tabs component individually.
First, update your import
import { TabsContent, TabsList, TabsRoot, TabsTrigger } from "#/ui/components/Tabs"
Then you can build your tabs out with the individual tab components
Tab 1
Tab 2
Tab 3
<div className="flex w-full space-x-2">
<TabsRoot>
<TabsList className="flex w-40 flex-col">
<TabsTrigger>Tab 1</TabsTrigger>
<TabsTrigger>Tab 2</TabsTrigger>
<TabsTrigger>Tab 3</TabsTrigger>
</TabsList>
<div className="flex flex-1">
<TabsContent className="h-full w-full rounded border border-red-400 bg-red-100 p-4">
Tab 1
</TabsContent>
<TabsContent className="h-full w-full rounded border border-blue-400 bg-blue-100 p-4">
Tab 2
</TabsContent>
<TabsContent className="h-full w-full rounded border border-green-400 bg-green-100 p-4">
Tab 3
</TabsContent>
</div>
</TabsRoot>
</div>