logoAnt Design

⌘ K
  • Design
  • Development
  • Components
  • Blog
  • Resources
5.25.0
  • Components Overview
  • General
    • Button
    • FloatButton
      5.0.0
    • Icon
    • Typography
  • Layout
    • Divider
    • Flex
      5.10.0
    • Grid
    • Layout
    • Space
    • Splitter
      5.21.0
  • Navigation
    • Anchor
    • Breadcrumb
    • Dropdown
    • Menu
    • Pagination
    • Steps
    • Tabs
  • Data Entry
    • AutoComplete
    • Cascader
    • Checkbox
    • ColorPicker
      5.5.0
    • DatePicker
    • Form
    • Input
    • InputNumber
    • Mentions
    • Radio
    • Rate
    • Select
    • Slider
    • Switch
    • TimePicker
    • Transfer
    • TreeSelect
    • Upload
  • Data Display
    • Avatar
    • Badge
    • Calendar
    • Card
    • Carousel
    • Collapse
    • Descriptions
    • Empty
    • Image
    • List
    • Popover
    • QRCode
      5.1.0
    • Segmented
    • Statistic
    • Table
    • Tag
    • Timeline
    • Tooltip
    • Tour
      5.0.0
    • Tree
  • Feedback
    • Alert
    • Drawer
    • Message
    • Modal
    • Notification
    • Popconfirm
    • Progress
    • Result
    • Skeleton
    • Spin
    • Watermark
      5.1.0
  • Other
    • Affix
    • App
      5.1.0
    • ConfigProvider
    • Util
      5.13.0

Tabs

Tabs make it easy to explore and switch between different views.
Importimport { Tabs } from "antd";
Sourcecomponents/tabs
Docs
Edit this pageChangelog

Resources

Ant Design X
Ant Design Charts
Ant Design Pro
Pro Components
Ant Design Mobile
Ant Design Mini
Ant Design Web3
Ant Design Landing-Landing Templates
Scaffolds-Scaffold Market
Umi-React Application Framework
dumi-Component doc generator
qiankun-Micro-Frontends Framework
Ant Motion-Motion Solution
China Mirror 🇨🇳

Community

Awesome Ant Design
Medium
Twitter
yuque logoAnt Design in YuQue
Ant Design in Zhihu
Experience Cloud Blog
seeconf logoSEE Conf-Experience Tech Conference

Help

GitHub
Change Log
FAQ
Bug Report
Issues
Discussions
StackOverflow
SegmentFault

Ant XTech logoMore Products

yuque logoYuQue-Document Collaboration Platform
AntV logoAntV-Data Visualization
Egg logoEgg-Enterprise Node.js Framework
Kitchen logoKitchen-Sketch Toolkit
Galacean logoGalacean-Interactive Graphics Solution
xtech logoAnt Financial Experience Tech
Theme Editor
Made with ❤ by
Ant Group and Ant Design Community
loading

When To Use

Ant Design has 3 types of Tabs for different situations.

  • Card Tabs: for managing too many closeable views.
  • Normal Tabs: for functional aspects of a page.
  • Radio.Button: for secondary tabs.

Examples

API

Common props ref:Common props

Tabs

PropertyDescriptionTypeDefaultVersion
activeKeyCurrent TabPane's keystring-
addIconCustomize add icon, only works with type="editable-card"ReactNode<PlusOutlined />4.4.0
animatedWhether to change tabs with animation.boolean | { inkBar: boolean, tabPane: boolean }{ inkBar: true, tabPane: false }
centeredCenters tabsbooleanfalse4.4.0
defaultActiveKeyInitial active TabPane's key, if activeKey is not setstringThe key of first tab
hideAddHide plus icon or not. Only works while type="editable-card"booleanfalse
indicatorCustomize size and align of indicator{ size?: number | (origin: number) => number; align: start | center | end; }-5.13.0
itemsConfigure tab contentTabItemType[]4.23.0
moreCustomize the collapse menuMoreProps{ icon: <EllipsisOutlined /> , trigger: 'hover' }
removeIconThe custom icon of remove, only works with type="editable-card"ReactNode<CloseOutlined />5.15.0
popupClassNameclassName for more dropdown.string-4.21.0
renderTabBarReplace the TabBar(props: DefaultTabBarProps, DefaultTabBar: React.ComponentClass) => React.ReactElement-
sizePreset tab bar sizelarge | middle | smallmiddle
tabBarExtraContentExtra content in tab barReactNode | {left?: ReactNode, right?: ReactNode}-object: 4.6.0
tabBarGutterThe gap between tabsnumber-
tabBarStyleTab bar style objectCSSProperties-
tabPositionPosition of tabstop | right | bottom | lefttop
destroyInactiveTabPaneWhether destroy inactive TabPane when change tab, use destroyOnHidden insteadbooleanfalse
destroyOnHiddenWhether destroy inactive TabPane when change tabbooleanfalse5.25.0
typeBasic style of tabsline | card | editable-cardline
onChangeCallback executed when active tab is changed(activeKey: string) => void-
onEditCallback executed when tab is added or removed. Only works while type="editable-card"(action === 'add' ? event : targetKey, action) => void-
onTabClickCallback executed when tab is clicked(key: string, event: MouseEvent) => void-
onTabScrollTrigger when tab scroll({ direction: left | right | top | bottom }) => void-4.3.0

More option at rc-tabs tabs

TabItemType

PropertyDescriptionTypeDefaultVersion
closeIconCustomize close icon in TabPane's head. Only works while type="editable-card". 5.7.0: close button will be hidden when setting to null or falseReactNode-
destroyInactiveTabPaneWhether destroy inactive TabPane when change tab, use destroyOnHidden insteadbooleanfalse5.11.0
destroyOnHiddenWhether destroy inactive TabPane when change tabbooleanfalse5.25.0
disabledSet TabPane disabledbooleanfalse
forceRenderForced render of content in tabs, not lazy render after clicking on tabsbooleanfalse
keyTabPane's keystring-
labelTabPane's head display textReactNode-
iconTabPane's head display iconReactNode-5.12.0
childrenTabPane's head display contentReactNode-
closableWhether a close (x) button is visible, Only works while type="editable-card"booleantrue

MoreProps

PropertyDescriptionTypeDefaultVersion
iconThe custom iconReactNode-
DropdownProps

Design Token

Component TokenHow to use?
Token NameDescriptionTypeDefault Value
cardBgBackground color of card tabstringrgba(0,0,0,0.02)
cardGutterGutter of card tabnumber2
cardHeightHeight of card tabnumber40
cardHeightLGHeight of large card tabnumber48
cardHeightSMHeight of small card tabnumber32
cardPaddingPadding of card tabstring8px 16px
cardPaddingLGPadding of large card tabstring11px 16px
cardPaddingSMPadding of small card tabstring4px 8px
horizontalItemGutterHorizontal gutter of horizontal tabnumber32
horizontalItemMarginHorizontal margin of horizontal tab itemstring
horizontalItemMarginRTLHorizontal margin of horizontal tab item (RTL)string
horizontalItemPaddingHorizontal padding of horizontal tab itemstring12px 0
horizontalItemPaddingLGHorizontal padding of large horizontal tab itemstring16px 0
horizontalItemPaddingSMHorizontal padding of small horizontal tab itemstring8px 0
horizontalMarginHorizontal margin of horizontal tabstring0 0 16px 0
inkBarColorColor of indicatorstring#1677ff
itemActiveColorText color of active tabstring#0958d9
itemColorText color of tabstringrgba(0,0,0,0.88)
itemHoverColorText color of hover tabstring#4096ff
itemSelectedColorText color of selected tabstring#1677ff
titleFontSizeFont size of titlenumber14
titleFontSizeLGFont size of large titlenumber16
titleFontSizeSMFont size of small titlenumber14
verticalItemMarginVertical margin of vertical tab itemstring16px 0 0 0
verticalItemPaddingVertical padding of vertical tab itemstring8px 24px
zIndexPopupz-index of dropdown menunumber1050
Global TokenHow to use?
Basic

Default activate first tab.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Disabled

Disabled a tab.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Centered

Centered tabs.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Icon

The Tab with Icon.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Indicator

Set indicator prop to custom indicator size and align.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Slide

In order to fit in more tabs, they can slide left and right (or up and down).

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Extra content

You can add extra actions to the right or left or even both side of Tabs.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Size

Large size tabs are usually used in page header, and small size could be used in Modal.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Position

Tab's position: left, right, top or bottom. Will auto switch to top in mobile.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Card type tab

Another type of Tabs, which doesn't support vertical mode.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Add & close tab

Only card type Tabs support adding & closable. +Use closable={false} to disable close.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Customized trigger of new tab

Hide default plus icon, and bind event for customized trigger.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Customized bar of tab

Use react-sticky-box and renderTabBar.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Draggable Tabs

Use dnd-kit to make tabs draggable.

CodeSandbox Icon
codepen icon
External Link Icon
expand codeexpand code
Tab 1
Tab 2
Tab 3
Content of Tab Pane 1
Tab 1
Tab 2
Tab 3
Tab 1
Tab 1
Tab 2
Tab 3
Content of Tab Pane 1
Tab 1
Tab 2
Tab 2
Tab 1
Tab 2
Tab 3
Content of Tab Pane 1
Tab-0
Tab-1
Tab-2
Tab-3
Tab-4
Tab-5
Tab-6
Tab-7
Tab-8
Tab-9
Tab-10
Tab-11
Tab-12
Tab-13
Tab-14
Tab-15
Tab-16
Tab-17
Tab-18
Tab-19
Tab-20
Tab-21
Tab-22
Tab-23
Tab-24
Tab-25
Tab-26
Tab-27
Tab-28
Tab-29
Content of tab 1
Tab 1
Tab 2
Tab 3
Content of tab 1



You can also specify its direction or both side


Tab 1
Tab 2
Tab 3
Content of tab 1
Tab 1
Tab 2
Tab 3
Content of tab 1
Card Tab 1
Card Tab 2
Card Tab 3
Content of card tab 1
Tab 1
Tab 2
Tab 3
Content of editable tab 1
Tab position:
Tab 1
Tab 2
Tab 3
Content of Tab 1
Tab 1
Tab 2
Tab 3
Content of Tab Pane 1
Tab 1
Tab 2
Tab 3
Content of Tab 1
Tab 1
Tab 2
Content of Tab Pane 1
Tab 1
Tab 2
Tab 3
Content of Tab Pane 1
Tab 1
Tab 2
Tab 3
Content of Tab Pane 1