Files

5.9 KiB
Raw Permalink Blame History

Select Design Token

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


Token 资源访问方式

在 AXAML 中使用组件级 Token:

{atom:SelectTokenResource MultipleItemBg}
{atom:SelectTokenResource OptionSelectedBg}
{atom:SelectTokenResource Padding}

在 AXAML 中使用全局共享 Token:

{atom:SharedTokenResource ColorPrimary}
{atom:SharedTokenResource ControlHeight}
{atom:SharedTokenResource ColorTextPlaceholder}

组件级 Token 一览

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

多选标签 Token

Token 名 类型 来源 说明
MultipleItemBg Color SharedToken.ColorFillSecondary 多选标签背景色
MultipleItemHeight double 基于 SharedToken.ControlHeight 和 PaddingXXS 计算 多选标签高度(中号)
MultipleItemHeightSM double 基于 SharedToken.ControlHeightSM 和 PaddingXXS 计算 多选标签高度(小号)
MultipleItemHeightLG double 基于 SharedToken.ControlHeightLG 和 PaddingXXS 计算 多选标签高度(大号)
MultipleSelectorBgDisabled Color SharedToken.ColorBgContainerDisabled 多选框禁用背景色
MultipleItemColorDisabled Color SharedToken.ColorTextDisabled 多选标签禁用文本颜色

选项样式 Token

Token 名 类型 来源 说明
OptionSelectedColor Color SharedToken.ColorText 选项选中时文本颜色
OptionSelectedFontWeight FontWeight SharedToken.FontWeightStrong 选项选中时文本字重
OptionSelectedBg Color SharedToken.ControlItemBgActive 选项选中时背景色
OptionActiveBg Color SharedToken.ControlItemBgHover 选项激活(悬浮)时背景色
OptionPadding Thickness 基于 SharedToken.ControlPaddingHorizontal 和 ControlHeight 计算 选项内间距
OptionFontSize double SharedToken.FontSize 选项字体大小
OptionHeight double SharedToken.ControlHeight 选项高度

内间距 Token

Token 名 类型 来源 说明
Padding Thickness 基于 SharedToken.UniformlyPaddingSM 和 ControlHeight 计算 输入框内边距(中号)
PaddingSM Thickness 基于 SharedToken.ControlPaddingHorizontalSM 和 ControlHeightSM 计算 输入框内边距(小号)
PaddingLG Thickness 基于 SharedToken.ControlPaddingHorizontal 和 ControlHeightLG 计算 输入框内边距(大号)
MultiModePadding Thickness 基于 SharedToken.ControlHeight 和 UniformlyPaddingSM 计算 多选模式下的输入框内边距(中号)
MultiModePaddingSM Thickness 基于 SharedToken.ControlHeightSM 和 ControlPaddingHorizontalSM 计算 多选模式下的输入框内边距(小号)
MultiModePaddingLG Thickness 基于 SharedToken.ControlHeightLG 和 ControlPaddingHorizontal 计算 多选模式下的输入框内边距(大号)

其他 Token

Token 名 类型 来源 说明
SelectAffixPadding Thickness SharedToken.PaddingXXS 前缀/后缀区域间距
FixedItemMargin Thickness 基于 SharedToken.UniformlyPaddingXXS / 2 计算 固定项外边距
PopupContentPadding Thickness 基于 SharedToken.UniformlyPaddingXXS / 2 计算 弹出面板内容边距

主题中使用的全局 SharedToken

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

Token 资源键 使用场景
FontSize 中号/小号 Select 字体大小
FontSizeLG 大号 Select 字体大小
ControlHeight 选项高度基准
ColorBgElevated 弹出面板背景色
ColorTextPlaceholder 占位文本颜色
ColorText 搜索输入框占位文本颜色(非搜索状态)
ColorTextDisabled 禁用状态前景色
SpacingXS ContentRightAddOn 区域内子元素间距
EnableMotion 全局动画开关

弹出面板 Token

Select 的弹出面板还引用了 PopupHostToken 中的以下 Token:

Token 资源键 使用场景
PopupHostTokenResource MarginToAnchor 弹出面板与锚点的间距
PopupHostTokenResource BoxShadows 弹出面板阴影效果
PopupHostTokenResource BorderRadius 弹出面板圆角

Token 对外观的具体影响

选择模式与模板可见性

模式 SingleSelectResultPresenter SingleFilterInput SelectedOptionsBox SelectCandidateList
Single(无搜索) ✅ 可见 ❌ 隐藏 ❌ 隐藏 SelectionMode=Single,无选中指示器
Single(有搜索) ❌ 隐藏 ✅ 可见 ❌ 隐藏 SelectionMode=Single,无选中指示器
Multiple ❌ 隐藏 ❌ 隐藏 ✅ 可见 SelectionMode=Multiple,有选中指示器
Tags ❌ 隐藏 ❌ 隐藏 ✅ 可见 SelectionMode=Multiple,有选中指示器

尺寸与 Token 映射

尺寸 字号 输入框内边距 多选模式内边距 多选标签高度
Large FontSizeLG PaddingLG MultiModePaddingLG MultipleItemHeightLG
Middle FontSize Padding MultiModePadding MultipleItemHeight
Small FontSize PaddingSM MultiModePaddingSM MultipleItemHeightSM

选项交互状态颜色

状态 背景色 文本颜色 字重
默认 透明 继承 正常
悬浮 OptionActiveBg 继承 正常
选中 OptionSelectedBg OptionSelectedColor OptionSelectedFontWeight
禁用 透明 ColorTextDisabled 正常