Segmented Control输入

Components / 输入

Segmented Control

使用中性选中状态在同级视图之间切换。

结构

组成部分

  1. 01中性容器
  2. 02选中项
  3. 03未选项
  4. 04可见焦点环

预览

交互调整

使用中性色表示选中

当前:周 · 中性选中

当前 Token
  • component.segment.background.container
  • component.segment.background.selected
  • component.segment.text.selected
  • component.segment.height.md
<SegmentedControl aria-label="时间范围" size="md" options={ranges} />

外观

视觉样式

  • 仅中性

尺寸

规格

  • 小 · 36px
  • 中 · 44px

状态

交互状态

默认
悬停
按下
选中
可见焦点
禁用

内容

使用规则

建议

  • 使用浮起的中性表面表达选中。
  • 选项保持同一层级和相近长度。

避免

  • 不要使用强调色填充、文字或边框表达选中。
  • 不要把分段控制用于多选。

Token

组件映射

名称类型浅色深色预览
component.segment.background.container分段控制容器coloroklch(0.95 0 255)oklch(0.38 0.007 255)
component.segment.background.selected分段控制选中背景coloroklch(1 0 0)oklch(0.29 0.003 255)
component.segment.background.selectedPressed分段控制选中项按下coloroklch(0.9 0.002 255)oklch(0.47 0.01 255)
component.segment.background.hover分段控制悬停coloroklch(0.95 0 255)oklch(0.38 0.007 255)
component.segment.background.pressed分段控制按下coloroklch(0.9 0.002 255)oklch(0.47 0.01 255)
component.segment.text.selected分段控制选中文字coloroklch(0.2 0.001 255)oklch(0.98 0 255)
component.segment.text.default分段控制默认文字coloroklch(0.47 0.01 255)oklch(0.82 0.004 255)
component.segment.border.selected分段控制选中边框coloroklch(0.9 0.002 255)oklch(0.38 0.007 255)
component.segment.shadow.selected分段控制选中层级shadow0 0 0 1px oklch(0 0 0 / 0.06), 0 2px 8px oklch(0 0 0 / 0.06)0 0 0 1px oklch(0 0 0 / 0.06), 0 2px 8px oklch(0 0 0 / 0.06)Aa
component.segment.radius分段控制圆角dimension0.625rem0.625remAa
component.segment.height.sm小型分段控制高度dimension2.25rem2.25remAa
component.segment.height.md中型分段控制高度dimension2.75rem2.75remAa
component.segment.opacity.disabled分段控制禁用透明度number0.50.5Aa
component.segment.typography.size分段控制字号dimension0.875rem0.875remAa
component.segment.typography.weight分段控制字重fontWeight600600Aa
component.segment.typography.leading分段控制行高number11Aa
component.segment.spacing.inset分段控制内距dimension0.25rem0.25remAa
component.segment.spacing.gap分段控制项目间距dimension0.25rem0.25remAa
component.segment.spacing.itemInline分段控制项目横向内距dimension0.75rem0.75remAa
component.segment.focus.width分段控制焦点环宽度dimension2px2pxAa
component.segment.motion.duration分段控制动效duration120ms120msAa
component.segment.motion.easing分段控制缓动cubicBeziercubic-bezier(0.2, 0, 0, 1)cubic-bezier(0.2, 0, 0, 1)Aa

无障碍

语义与键盘

无障碍

  • 使用原生语义或完整实现对应 ARIA 模式。
  • 提供可见焦点和不依赖颜色的状态提示。

键盘

  • 方向键移动并选中相邻项目。
  • Home 和 End 移到首项和末项。
  • Tab 把整个组件作为一个停靠点。

属性与接口

公开接口

属性类型默认值说明
optionsSegmentOption[]必填选项列表。
valuestring—受控选中值。
defaultValuestring第一个可用项非受控初始值。
onValueChange(value) => void—选中变化回调。
size"sm" | "md"md控件尺寸。
aria-labelstring必填分段控制名称。
<SegmentedControl aria-label="时间范围" options={ranges} defaultValue="week" />
Design system