Tabs

用于在同一页面和上下文中切换相关视图。

预览

投资组合视图

切换概览、活动与设置;概览初始显示示例组合价值和月度变化。

投资组合价值₩18,420,000本月 +6.8%

安装

首次使用此 Registry?请先完成 基础配置与共享样式安装 。

npx shadcn@latest add @neumorphism-ui/tabs

先安装一次共享 base,然后使用 CLI 添加组件及其依赖。

Registry JSON

用法

为 TabsList 提供名称,让 TabsTrigger 和 TabsContent 的 value 一致。设置初始值,需要与其他控件共享视图时使用受控状态。

"use client";

import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs";

export default function Example() {
  return (
    <Tabs defaultValue="profile">
      <TabsList aria-label="Account settings">
        <TabsTrigger value="profile">Profile</TabsTrigger>
        <TabsTrigger value="security">Security</TabsTrigger>
      </TabsList>
      <TabsContent value="profile">Edit your profile.</TabsContent>
      <TabsContent value="security">Manage your security settings.</TabsContent>
    </Tabs>
  );
}

API 参考

基于 Base UI Tabs,将 active trigger 呈现为 raised 表面,将 list 呈现为 inset track。支持受控与非受控值、自动或手动激活,以及横向和纵向排列。

组件属性类型默认值说明
Tabsvalue / defaultValuestring—受控的 active tab 值或非受控初始值。
TabsonValueChange(value: string) => void—active tab 变化时调用。
Tabsorientation"horizontal" | "vertical""horizontal"设置 list 方向和 Arrow 键导航轴。
TabsListactivateOnFocusbooleanfalse决定用 Arrow 键移动 focus 时是否同时激活 panel。
TabsTriggervalue必填string—与所关联 TabsContent 共享的唯一值。
TabsContentvalue必填string—用于打开该 panel 的 trigger 值。

无障碍

  • 01

    通过 aria-label 或 aria-labelledby 为 TabsList 提供 tab 组合名称。

  • 02

    Base UI 负责 tab、tablist、tabpanel role 以及 aria-controls、aria-selected 关联。

  • 03

    仅当 panel 可以立即切换时,才使用 TabsList 的 activateOnFocus。