Tabs
Tabs
is a component for switching between different display areas.
Import
import { Tabs, TabList, Tab, TabPanels, TabPanel } from "@yamada-ui/react"
Tabs
: A wrapper component that controls the child elements (TabList
,TabPanels
).TabList
: A wrapper component that controls the child elements (Tab
).Tab
: A button component that functions as a label for the panel and displays that panel.TabPanels
: A wrapper component that controls the child elements (TabPanel
).TabPanel
: A component that displays content associated with a label.
TabList
and TabPanels
can be omitted.
Usage
Tab
and TabPanel
must always be paired. Internally, they are linked by the same index.
Editable example
<Tabs> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs>
Change Variants
Editable example
<VStack> <Tabs variant="line"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs variant="sticky"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs variant="sticky-subtle"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs variant="sticky-solid"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs variant="rounded"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs variant="rounded-subtle"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs variant="rounded-solid"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs variant="unstyled"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> </VStack>
Change Size
Editable example
<VStack> <Tabs size="sm"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs size="md"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs size="lg"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> </VStack>
Change Color Scheme
Editable example
<VStack> <Tabs variant="rounded-solid" colorScheme="red"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel> <Text>クリリンのことか……クリリンのことかーーーっ!!!!!</Text> </TabPanel> <TabPanel> <Text>へっ!きたねぇ花火だ</Text> </TabPanel> <TabPanel> <Text> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </Text> </TabPanel> </Tabs> <Tabs variant="sticky-solid" colorScheme="purple"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> </VStack>
Select a Default Item
To select a default item, set the index
of the item to defaultIndex
.
Editable example
<Tabs defaultIndex={1}> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs>
Change Alignment
By setting align
to start
, center
, or end
, you can change the alignment of the tabs.
Editable example
<VStack> <Tabs align="start"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs align="center"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs align="end"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> </VStack>
Change Orientation
By setting orientation
to horizontal
or vertical
, you can change the orientation of the tabs.
Editable example
<VStack> <Tabs orientation="horizontal"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> <Tabs orientation="vertical"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> </VStack>
Stretch to Container Width
By setting isFitted
to true
, you can stretch the tabs evenly to the width of the container.
Editable example
<Tabs variant="sticky" isFitted> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs>
Disable
If you want to disable a specific tab, set isDisabled
.
Editable example
<Tabs> <Tab>孫悟空</Tab> <Tab isDisabled>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs>
Manual Activation
By default, the focused tab is automatically activated. If you want to activate the tab at a specific time (when Enter
or Space
is pressed), set isManual
to true
.
Editable example
<Tabs isManual> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs>
Lazy Rendering
By default, all panels are rendered in the DOM regardless of whether they are active. This means that even hidden panels are rendered but are invisible due to styling.
If you want to delay the rendering of each panel until the tab becomes active, set isLazy
to true
.
Editable example
<Tabs isLazy lazyBehavior="unmount"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs>
Use TabList
If TabList
does not exist in children
, Tab
automatically wraps the Tab
in children
with TabList
. If you want to customize TabList
, set TabList
in children
.
Editable example
<Tabs> <TabList borderWidth={1}> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> </TabList> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs>
Use TabPanels
If TabPanels
does not exist in children
, Tab
automatically wraps the TabPanel
in children
with TabPanels
. If you want to customize TabPanels
, set TabPanels
in children
.
Editable example
<Tabs variant="sticky"> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanels borderBottomWidth={1} borderLeftWidth={1} borderRightWidth={1}> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </TabPanels> </Tabs>
Control
Editable example
const [index, onChange] = useState<number>(0) return ( <Tabs index={index} onChange={onChange}> <Tab>孫悟空</Tab> <Tab>ベジータ</Tab> <Tab>フリーザ</Tab> <TabPanel>クリリンのことか……クリリンのことかーーーっ!!!!!</TabPanel> <TabPanel>へっ!きたねぇ花火だ</TabPanel> <TabPanel> 私の戦闘力は530000です。ですがもちろんフルパワーであなたと戦う気はありませんからご心配なく…… </TabPanel> </Tabs> )
Edit this page on GitHub