Skip to main content

Tabs

Tab navigation with content panels. Supports keyboard navigation and roving tabindex.

Import​

import '@kittl/ui';
import { Tabs, TabsTrigger, TabsContent } from '@kittl/ui-react';

Usage​

<kittl-tabs value="designs">
<kittl-tabs-trigger value="designs" slot="tab">Designs</kittl-tabs-trigger>
<kittl-tabs-trigger value="templates" slot="tab"
>Templates</kittl-tabs-trigger
>
<kittl-tabs-content value="designs">Your designs here.</kittl-tabs-content>
<kittl-tabs-content value="templates">Browse templates.</kittl-tabs-content>
</kittl-tabs>
import { Tabs, TabsContent, TabsTrigger } from '@kittl/ui-react';

/** Basic Tabs usage, rendered live on the docs site. */
export const TabsUsage = () => (
<Tabs value="designs" onTabsChange={(e) => console.log(e.detail.value)}>
<TabsTrigger value="designs" slot="tab">
Designs
</TabsTrigger>
<TabsTrigger value="templates" slot="tab">
Templates
</TabsTrigger>
<TabsContent value="designs">Your designs here.</TabsContent>
<TabsContent value="templates">Browse templates.</TabsContent>
</Tabs>
);

Tabs Props​

PropertyAttributeTypeDefaultDescription
valuevaluestring''Currently active tab value
sizesize's' | 'm''m'Tab size
fluidfluidbooleanfalseTabs fill available width equally

TabsTrigger Props​

PropertyAttributeTypeDefaultDescription
valuevaluestring''Unique value matching a TabsContent
activeactivebooleanfalseWhether this tab is active (managed by parent)

TabsContent Props​

PropertyAttributeTypeDefaultDescription
valuevaluestring''Unique value matching a TabsTrigger
activeactivebooleanfalseWhether this panel is visible (managed by parent)

Slots​

SlotParentDescription
tabTabsPlace TabsTrigger elements here
(default)TabsPlace TabsContent elements here

Events​

EventSourceDetailDescription
tabs-changeTabs{ value: string }Active tab changed
tab-selectTabsTrigger{ value: string }A trigger was clicked

React props: onTabsChange, onTabSelect

Accessibility​

  • Triggers: role="tab", aria-selected, aria-controls
  • Content: role="tabpanel", aria-labelledby
  • Keyboard: ArrowLeft/ArrowRight to navigate, auto-selects on arrow key
  • Roving tabindex pattern — only the active tab is in the tab order