Files

5.1 KiB
Raw Permalink Blame History

Segmented Design Token

Segmented 控件使用 SegmentedToken(Token ID: "Segmented")作为组件级 Design Token,所有视觉属性均从全局 SharedToken 派生,不硬编码任何具体值。


Token 资源访问方式

在 AXAML 中使用组件级 Token:

{atom:SegmentedTokenResource ItemColor}
{atom:SegmentedTokenResource TrackBg}
{atom:SegmentedTokenResource ItemSelectedBg}

在 AXAML 中使用全局共享 Token:

{atom:SharedTokenResource BorderRadius}
{atom:SharedTokenResource FontSize}
{atom:SharedTokenResource ControlHeight}

组件级 Token 一览

以下是 SegmentedToken 定义的全部组件级 Token,按功能分组说明。

颜色 Token

Token 名 类型 来源 说明
ItemColor Color SharedToken.ColorTextLabel 选项文本颜色(未选中、非悬浮态)
ItemHoverColor Color SharedToken.ColorText 选项悬浮态文本颜色
ItemHoverBg Color SharedToken.ColorFillSecondary 选项悬浮态背景颜色
ItemActiveBg Color SharedToken.ColorFill 选项激活态(按下)背景颜色
ItemSelectedBg Color SharedToken.ColorBgElevated 选中选项的背景颜色(色块 Thumb 的背景色)
ItemSelectedColor Color SharedToken.ColorText 选中选项的文本颜色
TrackBg Color SharedToken.ColorBgLayout 容器(轨道)背景色

尺寸 Token

Token 名 类型 来源 说明
ItemMinHeightLG double SharedToken.ControlHeightLG - TrackPadding * 2 大号选项最小高度
ItemMinHeight double SharedToken.ControlHeight - TrackPadding * 2 中号选项最小高度
ItemMinHeightSM double SharedToken.ControlHeightSM - TrackPadding * 2 小号选项最小高度

间距 Token

Token 名 类型 来源 说明
TrackPadding Thickness SharedToken.LineWidthBold(均匀四边) 容器内间距(色块与容器边缘的间隙)
SegmentedItemPadding Thickness SharedToken.ControlPaddingHorizontal - LineWidth(水平方向) 中号/大号选项的水平内间距
SegmentedItemPaddingSM Thickness SharedToken.ControlPaddingHorizontalSM - LineWidth(水平方向) 小号选项的水平内间距
SegmentedItemContentMargin Thickness SharedToken.UniformlyPaddingXXS(仅左侧) 带图标时内容文字的左边距(图标与文字之间的间距)

主题中使用的全局 SharedToken

除组件级 Token 外,Segmented 的 ControlTheme 还直接引用了以下全局 SharedToken:

Token 资源键 使用场景
EnableMotion 全局动画开关(控制 IsMotionEnabled 的默认值)
BoxShadowsTertiary 选中色块的阴影效果
BorderRadiusLG / BorderRadius / BorderRadiusSM / BorderRadiusXS 不同尺寸下容器和选项的圆角
FontSizeLG / FontSize 大号和中/小号选项的字体大小
IconSizeLG / IconSize / IconSizeSM 不同尺寸下图标的宽高
ColorTextDisabled 禁用选项的文本颜色
ControlHeightLG / ControlHeight / ControlHeightSM 用于计算选项最小高度
ControlPaddingHorizontal / ControlPaddingHorizontalSM 用于计算选项水平内间距
LineWidth / LineWidthBold 用于计算容器内间距和选项内间距偏移

Token 对外观的具体影响

容器外观

属性 Token 来源
背景色 TrackBg(ColorBgLayout)
内间距 TrackPadding(LineWidthBold)
圆角(Large) BorderRadiusLG(全局 SharedToken)
圆角(Middle) BorderRadius(全局 SharedToken)
圆角(Small) BorderRadiusSM(全局 SharedToken)

选中色块(Thumb)外观

属性 Token 来源
背景色 ItemSelectedBg(ColorBgElevated)
阴影 BoxShadowsTertiary(全局 SharedToken)
圆角(Large) BorderRadius(全局 SharedToken)
圆角(Middle) BorderRadiusSM(全局 SharedToken)
圆角(Small) BorderRadiusXS(全局 SharedToken)

选项状态与 Token 映射

状态 文字颜色 Token 背景色 Token 图标颜色 Token
正常(未选中) ItemColor 透明 ItemColor
悬浮(未选中) ItemHoverColor ItemHoverBg ItemHoverColor
按下(未选中) — ItemActiveBg ItemSelectedColor
选中 ItemSelectedColor ItemSelectedBg ItemSelectedColor
禁用 ColorTextDisabled — —

尺寸与 Token 映射

尺寸 选项最小高度 选项内间距 字体大小 图标大小 选项圆角
Large ItemMinHeightLG SegmentedItemPadding FontSizeLG IconSizeLG BorderRadius
Middle ItemMinHeight SegmentedItemPadding FontSize IconSize BorderRadiusSM
Small ItemMinHeightSM SegmentedItemPaddingSM FontSize IconSizeSM BorderRadiusXS