Tabs标签页
切换关联内容面板;小规模互斥设置使用 SegmentedControl。
对内容分组;用键盘在标签间移动,保持 panel 关联。
引入
import { Tabs, TabsList, TabsTab, TabsPanel } from "@cwa-design/react";
import "@cwa-design/react/styles.css"; // 应用入口引入一次当前通过源码 workspace 使用。查看有效安装步骤 →
交互示例
可切换示例主题、开启实色降级并重置状态。应用根部需要 CwaProvider。
Tabs 基础用法
可运行示例 · 与复制源码同源
正在准备交互示例…
查看与复制源码
// 应用入口引入 @cwa-design/react/styles.css,并将此示例置于 CwaProvider 内。
import { Tabs, TabsList, TabsPanel, TabsTab, Text } from "@cwa-design/react";
export default function Example() {
return (
<Tabs defaultValue="overview">
<TabsList aria-label="项目分区">
<TabsTab value="overview">概览</TabsTab>
<TabsTab value="activity">活动</TabsTab>
</TabsList>
<TabsPanel value="overview">
<Text>项目概览与成员信息。</Text>
</TabsPanel>
<TabsPanel value="activity">
<Text>最近活动与更新记录。</Text>
</TabsPanel>
</Tabs>
);
}
在应用根部引入 styles.css 并配置 CwaProvider。源码 SHA-256:9582fd097757
API
下表读取本版本组件契约。原生与 Base UI 继承属性的完整定义保留在 TypeScript 声明中。
类型:CwaTabsProps · 继承 @base-ui/react/tabs#TabsRootProps;value/defaultValue/onValueChange/orientation、原生属性等完整继承 · 候选源类型 ↗
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
children | ReactNode;内容由调用方提供 | ReactNode;内容由调用方提供 | — |
Tabs.List
activateOnFocus(默认 false)/loopFocus(默认 true)在 Tabs.List 上;没有 activationMode Root prop。
类型:TabsListProps · 继承 @base-ui/react/tabs#TabsListProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
Tabs.Tab
Base UI Tab 直接导出。
类型:TabsTabProps · 继承 @base-ui/react/tabs#TabsTabProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
Tabs.Panel
Base UI Panel 直接导出。
类型:TabsPanelProps · 继承 @base-ui/react/tabs#TabsPanelProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
Tabs.Indicator
Base UI Indicator 直接导出。
类型:TabsIndicatorProps · 继承 @base-ui/react/tabs#TabsIndicatorProps;直接使用 Base UI 1.8.0 完整类型(含原生属性、render/ref) · 候选源类型 ↗
没有新增 CWA 属性;完整继承属性见上方源类型声明。
TabsList
CWA 样式 List;只接受这里列出的 props。需要 activateOnFocus 时使用 Tabs.List。
类型:TabsListProps · 候选源类型 ↗
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
children | ReactNode;内容由调用方提供 | ReactNode;内容由调用方提供 | — |
className | 附加样式类;具体合并行为以实现为准 | string | — |
aria-label | 见类型定义 | string | — |
TabsTab
字符串值的 CWA Tab。
类型:TabsTabProps · 候选源类型 ↗
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
value必填 | 见类型定义 | string | — |
children | ReactNode;内容由调用方提供 | ReactNode;内容由调用方提供 | — |
disabled | 见类型定义 | boolean | — |
className | 附加样式类;具体合并行为以实现为准 | string | — |
TabsPanel
字符串值关联的 CWA Panel。
类型:TabsPanelProps · 候选源类型 ↗
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
value必填 | 见类型定义 | string | — |
children | ReactNode;内容由调用方提供 | ReactNode;内容由调用方提供 | — |
className | 附加样式类;具体合并行为以实现为准 | string | — |
材质与状态
材质规则来自源 metadata。覆盖玻璃区域的浮层按实际重叠关系选择较厚或实色材质。
选中状态为填充/指示,不创建背景玻璃。
适用的状态与行为见示例及本页 API;系统减少透明与显式 solid 配置会启用回退。
阅读材质指南 →关联 Token
以下变量从组件源样式的实际引用生成。共享光学规则还使用全局玻璃 Token。
--cwa-design-space-1--cwa-design-color-border-subtle--cwa-design-font-family--cwa-design-font-size-body--cwa-design-color-text-muted--cwa-design-space-2--cwa-design-space-3--cwa-design-motion-control--cwa-design-color-text--cwa-design-focus-width--cwa-design-color-focus--cwa-design-color-accent无障碍与使用约束
accessible-name-required-for-controlsvisible-focus-for-interactive-partskeyboard-behavior-from-native-or-base-ui
这些是组件契约与使用要求。具体业务页面仍需验证标签、阅读顺序与实际背景下的对比度。
查看无障碍使用指南 →