Primitive / Moleculestable
Tabs
Tabbed interface for switching between grouped content panels.
@glinui/uiComponent: tabs
Installation$
Package Manager$
pnpm add @glinui/ui @glinui/tokensRegistry$
pnpm dlx @glinui/cli@latest add tabsUsage$
Overview content
TSX
1import { Tabs, TabsList, TabsTrigger, TabsContent } from "@glinui/ui"23export function TabsBasicDemo() {4return (5 <Tabs defaultValue="overview">6 <TabsList>7 <TabsTrigger value="overview">Overview</TabsTrigger>8 <TabsTrigger value="settings">Settings</TabsTrigger>9 </TabsList>10 <TabsContent value="overview">Overview content</TabsContent>11 <TabsContent value="settings">Settings content</TabsContent>12 </Tabs>13)14}
Examples$
Glass$
First panel
TSX
1import { Tabs, TabsList, TabsTrigger, TabsContent } from "@glinui/ui"23export function TabsGlassDemo() {4return (5 <Tabs defaultValue="first">6 <TabsList variant="glass">7 <TabsTrigger value="first" variant="glass">First</TabsTrigger>8 <TabsTrigger value="second" variant="glass">Second</TabsTrigger>9 </TabsList>10 <TabsContent value="first" variant="glass">First panel</TabsContent>11 <TabsContent value="second" variant="glass">Second panel</TabsContent>12 </Tabs>13)14}
Liquid + Matte$
Liquid panel
Matte panel
TSX
1import { Tabs, TabsList, TabsTrigger, TabsContent } from "@glinui/ui"23export function TabsSurfaceVariantsDemo() {4return (5 <div className="grid gap-4 md:grid-cols-2">6 <Tabs defaultValue="liquid-1">7 <TabsList variant="liquid">8 <TabsTrigger value="liquid-1" variant="liquid">Liquid A</TabsTrigger>9 <TabsTrigger value="liquid-2" variant="liquid">Liquid B</TabsTrigger>10 </TabsList>11 <TabsContent value="liquid-1" variant="liquid">Liquid panel</TabsContent>12 <TabsContent value="liquid-2" variant="liquid">Second liquid panel</TabsContent>13 </Tabs>14 <Tabs defaultValue="matte-1">15 <TabsList variant="matte">16 <TabsTrigger value="matte-1" variant="matte">Matte A</TabsTrigger>17 <TabsTrigger value="matte-2" variant="matte">Matte B</TabsTrigger>18 </TabsList>19 <TabsContent value="matte-1" variant="matte">Matte panel</TabsContent>20 <TabsContent value="matte-2" variant="matte">Second matte panel</TabsContent>21 </Tabs>22 </div>23)24}
Accessibility$
- Built on Radix Tabs with full keyboard nav.
- Use clear trigger labels for each panel.
Reduced Motion$
Tabs do not require motion for state communication.
API Reference$
Tabs root follows Radix Tabs.Root props (value, defaultValue, onValueChange, orientation, dir).
TabsList$
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
size | "sm" | "md" | "lg" | No | "md" | Variant option from tabsListVariants. |
variant | "default" | "glass" | "outline" | "ghost" | "liquid" | "matte" | No | "default" | Variant option from tabsListVariants. |
TabsTrigger$
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
size | "sm" | "md" | "lg" | No | "md" | Variant option from tabsTriggerVariants. |
variant | "default" | "glass" | "outline" | "ghost" | "liquid" | "matte" | No | "default" | Variant option from tabsTriggerVariants. |
TabsContent$
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
size | "sm" | "md" | "lg" | No | "md" | Variant option from tabsContentVariants. |
variant | "default" | "glass" | "outline" | "ghost" | "liquid" | "matte" | No | "default" | Variant option from tabsContentVariants. |
Source$
TSX
1import { Tabs, TabsList, TabsTrigger, TabsContent } from "@glinui/ui"
Generated API Snapshot
Beta
Generated API Snapshot
BetaAuto-extracted from TypeScript source in packages/ui/src/components/tabs.tsx. This section is in beta and may lag behind hand-curated docs. Regenerate with pnpm --filter @glinui/docs api:generate.
Generated: 2026-02-19T17:59:28.468Z · Full index: /docs/api-metadata
Primary Props Type
TabsProps
TabsContentProps
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
size | "sm" | "md" | "lg" | No | "md" | Variant option from tabsContentVariants. |
variant | "default" | "glass" | "outline" | "ghost" | "liquid" | "matte" | No | "default" | Variant option from tabsContentVariants. |
TabsListProps
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
size | "sm" | "md" | "lg" | No | "md" | Variant option from tabsListVariants. |
variant | "default" | "glass" | "outline" | "ghost" | "liquid" | "matte" | No | "default" | Variant option from tabsListVariants. |
TabsProps
No explicit fields extracted for this props type.
TabsTriggerProps
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
size | "sm" | "md" | "lg" | No | "md" | Variant option from tabsTriggerVariants. |
variant | "default" | "glass" | "outline" | "ghost" | "liquid" | "matte" | No | "default" | Variant option from tabsTriggerVariants. |