Tabs
A set of layered sections of content that display one panel at a time.1<Flex direction="row" gap="large" style={{ width: "100%", fontSize: "12px" }}>2 <Tabs defaultValue="tab-one">3 <Tabs.List>4 <Tabs.Tab value="tab-one" leadingIcon={<Info />}>5 Hoisting6 </Tabs.Tab>7 <Tabs.Tab value="tab-two">Hosting</Tabs.Tab>8 <Tabs.Tab value="tab-three" leadingIcon={<Info />}>9 Editor10 </Tabs.Tab>11 <Tabs.Tab value="tab-four">Billing</Tabs.Tab>12 <Tabs.Tab value="tab-five">SEO</Tabs.Tab>13 </Tabs.List>14 <Tabs.Content value="tab-one">15 <Text>General settings content</Text>
Anatomy
Import and assemble the component:
1import { Tabs } from "@raystack/apsara";23<Tabs>4 <Tabs.List>5 <Tabs.Tab />6 </Tabs.List>7 <Tabs.Content />8</Tabs>
API Reference
Root
Groups all parts of the tabs component.
Prop
Type
List
Renders the tab navigation bar.
Prop
Type
Tab
Renders an individual tab button.
Prop
Type
Content
Renders the content panel for a tab.
Prop
Type
Examples
Basic Usage
1<div style={{ width: "400px" }}>2 <Tabs defaultValue="tab1">3 <Tabs.List>4 <Tabs.Tab value="tab1">Account</Tabs.Tab>5 <Tabs.Tab value="tab2">Password</Tabs.Tab>6 <Tabs.Tab value="tab3">Settings</Tabs.Tab>7 </Tabs.List>8 <Tabs.Content value="tab1">Account settings</Tabs.Content>9 <Tabs.Content value="tab2">Password settings</Tabs.Content>10 <Tabs.Content value="tab3">Other settings</Tabs.Content>11 </Tabs>12</div>
With Leading Icons
1<div style={{ width: "400px" }}>2 <Tabs defaultValue="tab1">3 <Tabs.List>4 <Tabs.Tab value="tab1">Home</Tabs.Tab>5 <Tabs.Tab value="tab2" leadingIcon={<Info />}>6 Info7 </Tabs.Tab>8 </Tabs.List>9 <Tabs.Content value="tab1">Home content</Tabs.Content>10 <Tabs.Content value="tab2">Info content</Tabs.Content>11 </Tabs>12</div>
Disabled Tab
1<div style={{ width: "400px" }}>2 <Tabs defaultValue="tab1">3 <Tabs.List>4 <Tabs.Tab value="tab1">Active</Tabs.Tab>5 <Tabs.Tab value="tab2" disabled>6 Disabled7 </Tabs.Tab>8 </Tabs.List>9 <Tabs.Content value="tab1">Active tab content</Tabs.Content>10 <Tabs.Content value="tab2">Disabled tab content</Tabs.Content>11 </Tabs>12</div>
Accessibility
- Follows the WAI-ARIA Tabs pattern
- Supports keyboard navigation with arrow keys between tabs
- Uses
role="tablist",role="tab", androle="tabpanel" - Active tab is indicated with
aria-selected