Tabs

Switch between different views using tabbed navigation.

Import

import { Tabs } from '@tidbcloud/uikit'

Basic Usage

import { Tabs } from '@tidbcloud/uikit'
 
function Demo() {
  return (
    <Tabs defaultValue="gallery">
      <Tabs.List>
        <Tabs.Tab value="gallery">Gallery</Tabs.Tab>
        <Tabs.Tab value="messages">Messages</Tabs.Tab>
        <Tabs.Tab value="settings">Settings</Tabs.Tab>
      </Tabs.List>
 
      <Tabs.Panel value="gallery">Gallery tab content</Tabs.Panel>
      <Tabs.Panel value="messages">Messages tab content</Tabs.Panel>
      <Tabs.Panel value="settings">Settings tab content</Tabs.Panel>
    </Tabs>
  )
}

Controlled

import { useState } from 'react'
import { Tabs } from '@tidbcloud/uikit'
 
function Demo() {
  const [activeTab, setActiveTab] = useState<string | null>('first')
 
  return (
    <Tabs value={activeTab} onChange={setActiveTab}>
      <Tabs.List>
        <Tabs.Tab value="first">First tab</Tabs.Tab>
        <Tabs.Tab value="second">Second tab</Tabs.Tab>
      </Tabs.List>
 
      <Tabs.Panel value="first">First panel</Tabs.Panel>
      <Tabs.Panel value="second">Second panel</Tabs.Panel>
    </Tabs>
  )
}

Vertical Tabs

<Tabs defaultValue="gallery" orientation="vertical">
  <Tabs.List>
    <Tabs.Tab value="gallery">Gallery</Tabs.Tab>
    <Tabs.Tab value="messages">Messages</Tabs.Tab>
  </Tabs.List>
 
  <Tabs.Panel value="gallery">Gallery content</Tabs.Panel>
  <Tabs.Panel value="messages">Messages content</Tabs.Panel>
</Tabs>

Disabled Tab

<Tabs.Tab value="settings" disabled>
  Settings
</Tabs.Tab>

Key Props

PropTypeDescription
valuestring | nullControlled active tab value
defaultValuestring | nullDefault active tab (uncontrolled)
onChange(value: string | null) => voidCalled when active tab changes
orientation'horizontal' | 'vertical'Tabs orientation
variantstringVisual variant
colorMantineColorTab color
radiusMantineRadiusBorder radius
invertedbooleanInverted tabs layout
keepMountedbooleanKeep inactive panels mounted
allowTabDeactivationbooleanAllow deactivating active tab