导航与展开@neumorphism-ui/tabs

Tabs

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

@neumorphism-ui/tabs
Registry JSON

预览

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

安装

安装: tabsnpx shadcn@latest add @neumorphism-ui/tabs

CLI 会依次处理 npm 依赖、base token、utils 和组件源码。

首次使用此 Registry?请先完成 namespace 配置 。

用法

Import

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

Example

Tabs 用法代码
<Tabs defaultValue="surface">
  <TabsList aria-label="设计 token">
    <TabsTrigger value="surface">表面</TabsTrigger>
    <TabsTrigger value="motion">动效</TabsTrigger>
    <TabsTrigger value="access">无障碍</TabsTrigger>
  </TabsList>
  <TabsContent value="surface">浮起与内嵌表面 token。</TabsContent>
  <TabsContent value="motion">简短且一致的过渡 token。</TabsContent>
  <TabsContent value="access">焦点与对比度 token。</TabsContent>
</Tabs>

API 参考

组件属性类型默认值说明
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。