Skip to Content
Nextra 4.0 is released 🎉

Tabs

The Tabs component is a pixel-art styled tabbed content switcher.
It supports multiple panels, disabled tabs, default active selection, and custom styling — ideal for organizing content into switchable views with a retro aesthetic.


🚀 Usage

Basic Example


Content for Tab 1
import { Tabs } from "pixelartui-react"; <Tabs tabs={[ { label: "Tab 1", content: "Content for Tab 1" }, { label: "Tab 2", content: "Content for Tab 2" }, { label: "Tab 3", content: "Content for Tab 3" }, ]} onChange={(index) => console.log(index)} />

Default Active Tab


Content for Tab 2
<Tabs tabs={[ { label: "Tab 1", content: "Content for Tab 1" }, { label: "Tab 2", content: "Content for Tab 2" }, { label: "Tab 3", content: "Content for Tab 3" }, ]} defaultActiveIndex={1} onChange={(index) => console.log(index)} />

With Disabled Tab


Content for Tab 1
<Tabs tabs={[ { label: "Tab 1", content: "Content for Tab 1" }, { label: "Tab 2 (Disabled)", content: "Content for Tab 2", disabled: true }, { label: "Tab 3", content: "Content for Tab 3" }, ]} onChange={(index) => console.log(index)} />

Custom Background


Content for Tab 1
<Tabs tabs={[ { label: "Tab 1", content: "Content for Tab 1" }, { label: "Tab 2", content: "Content for Tab 2" }, { label: "Tab 3", content: "Content for Tab 3" }, ]} backgroundColor="#05EB57" onChange={(index) => console.log(index)} />

Styles


Content for Tab 1
Content for Tab 1
<Tabs tabs={tabs} tabsStyle="dark" onChange={(index) => console.log(index)} /> <Tabs tabs={tabs} tabsStyle="light" onChange={(index) => console.log(index)} />

🔧 Props

PropTypeDefaultDescription
tabsTabItem[]Array of tab definitions to display.
defaultActiveIndexnumber0Initial active tab index when uncontrolled.
activeIndexnumberundefinedControlled active tab index.
tabsStyle"dark" | "light"undefinedApplies a light or dark theme to the component.
backgroundColorstringundefinedCustom background color for the active tab.
classNamestringundefinedAdds additional CSS classes for custom styling.
onChange(index: number) => voidundefinedCallback fired when the active tab changes.

TabItem

PropTypeDefaultDescription
labelstringDisplay text for the tab.
contentReact.ReactNodeContent displayed in the tab panel.
disabledbooleanundefinedDisables the tab when true.
Last updated on