Tabs
Anatomy
Section titled “Anatomy”<Tabs> <TabsList> <TabsTrigger /> </TabsList> <TabsContent /></Tabs>To display a set of tabs, compose <Tabs>, <TabsList>, <TabsTrigger>, and <TabsContent>. You must set matching value props for <TabsTrigger> and <TabsContent> to link them together. You will probably want to set a defaultValue on <Tabs> to initialize the default tab.
import { Tabs, TabsList, TabsTrigger, TabsContent } from "stylus-ui/Tabs";
export default () => ( <Tabs defaultValue="account"> <TabsList> <TabsTrigger value="account">Account</TabsTrigger> <TabsTrigger value="documents">Documents</TabsTrigger> <TabsTrigger value="settings">Settings</TabsTrigger> </TabsList> <TabsContent value="account">Make changes to your account.</TabsContent> <TabsContent value="documents">Access and update documents.</TabsContent> <TabsContent value="settings">Edit settings or contact info.</TabsContent> </Tabs>);Variants
Section titled “Variants”The default variant of <TabsList> is "underline". To display tabs styled like switches, set variant to "switch".
import { Tabs, TabsList, TabsTrigger, TabsContent } from "stylus-ui/Tabs";
export default () => ( <Tabs defaultValue="account"> <TabsList variant="switch"> <TabsTrigger value="account">Account</TabsTrigger> <TabsTrigger value="documents">Documents</TabsTrigger> <TabsTrigger value="settings">Settings</TabsTrigger> </TabsList> <TabsContent value="account">Make changes to your account.</TabsContent> <TabsContent value="documents">Access and update documents.</TabsContent> <TabsContent value="settings">Edit settings or contact info.</TabsContent> </Tabs>);Tab counts
Section titled “Tab counts”Display counts beside a tab by passing a value to count on <TabsTrigger>.
import { Tabs, TabsList, TabsTrigger, TabsContent } from "stylus-ui/Tabs";
export default () => ( <Tabs defaultValue="account"> <div className="flex flex-col items-center gap-10"> <div> <TabsList> <TabsTrigger value="account">Account</TabsTrigger> <TabsTrigger value="documents" count={48}> Documents </TabsTrigger> <TabsTrigger value="settings">Settings</TabsTrigger> </TabsList> <TabsContent value="account">Make changes to your account.</TabsContent> <TabsContent value="documents"> Access and update documents. </TabsContent> <TabsContent value="settings"> Edit settings or contact info. </TabsContent> </div> <div> <TabsList variant="switch"> <TabsTrigger value="account">Account</TabsTrigger> <TabsTrigger value="documents" count={48}> Documents </TabsTrigger> <TabsTrigger value="settings">Settings</TabsTrigger> </TabsList> <TabsContent value="account">Make changes to your account.</TabsContent> <TabsContent value="documents"> Access and update documents. </TabsContent> <TabsContent value="settings"> Edit settings or contact info. </TabsContent> </div> </div> </Tabs>);Import any icons from Font Awesome and pass them to the icon prop on <TabsTrigger>.
import { Tabs, TabsList, TabsTrigger, TabsContent } from "stylus-ui/Tabs";import { faUser, faFile, faSliders } from "@fortawesome/pro-regular-svg-icons";
export default () => ( <Tabs defaultValue="account"> <div className="flex flex-col items-center gap-10"> <div> <TabsList> <TabsTrigger value="account" icon={faUser}> Account </TabsTrigger> <TabsTrigger value="documents" icon={faFile} count={48}> Documents </TabsTrigger> <TabsTrigger value="settings" icon={faSliders}> Settings </TabsTrigger> </TabsList> <TabsContent value="account">Make changes to your account.</TabsContent> <TabsContent value="documents"> Access and update documents. </TabsContent> <TabsContent value="settings"> Edit settings or contact info. </TabsContent> </div> <div> <TabsList variant="switch"> <TabsTrigger value="account" icon={faUser}> Account </TabsTrigger> <TabsTrigger value="documents" icon={faFile} count={48}> Documents </TabsTrigger> <TabsTrigger value="settings" icon={faSliders}> Settings </TabsTrigger> </TabsList> <TabsContent value="account">Make changes to your account.</TabsContent> <TabsContent value="documents"> Access and update documents. </TabsContent> <TabsContent value="settings"> Edit settings or contact info. </TabsContent> </div> </div> </Tabs>);Disabled
Section titled “Disabled”Individual tabs can be disabled by setting disabled on <TabsTrigger>.
import { Tabs, TabsList, TabsTrigger, TabsContent } from "stylus-ui/Tabs";import { faUser, faFile, faSliders } from "@fortawesome/pro-regular-svg-icons";
export default () => ( <Tabs defaultValue="account"> <div className="flex flex-col items-center gap-10"> <div> <TabsList> <TabsTrigger value="account" icon={faUser}> Account </TabsTrigger> <TabsTrigger value="documents" icon={faFile} count={48} disabled> Documents </TabsTrigger> <TabsTrigger value="settings" icon={faSliders}> Settings </TabsTrigger> </TabsList> <TabsContent value="account">Make changes to your account.</TabsContent> <TabsContent value="documents"> Access and update documents. </TabsContent> <TabsContent value="settings"> Edit settings or contact info. </TabsContent> </div> <div> <TabsList variant="switch"> <TabsTrigger value="account" icon={faUser}> Account </TabsTrigger> <TabsTrigger value="documents" icon={faFile} count={48} disabled> Documents </TabsTrigger> <TabsTrigger value="settings" icon={faSliders}> Settings </TabsTrigger> </TabsList> <TabsContent value="account">Make changes to your account.</TabsContent> <TabsContent value="documents"> Access and update documents. </TabsContent> <TabsContent value="settings"> Edit settings or contact info. </TabsContent> </div> </div> </Tabs>);Orientation
Section titled “Orientation”API Reference
Section titled “API Reference”A set of layered sections of content—known as tab panels—that are displayed one at a time.
activationMode
Whether a tab is activated automatically or manually.
asChild
defaultValue
The value of the tab to select by default, if uncontrolled
dir
The direction of navigation between toolbar items.
onValueChange
A function called when a new tab is selected
orientation
The orientation the tabs are layed out. Mainly so arrow navigation is done accordingly (left & right vs. up & down)
theme
Visual theme for the tab list and panels.
value
The value for the selected tab, if controlled
TabsList
Section titled “TabsList” asChild
loop
variant
Visual style: underline (line under active tab) or switch (pill background).
TabsTrigger
Section titled “TabsTrigger” value
asChild
count
Optional count or badge text shown after the label.
icon
Icon shown before the tab label.
TabsContent
Section titled “TabsContent” value
asChild
forceMount
Used to force mounting when more control is needed. Useful when controlling animation with React animation libraries.