Files
AtomUI/docs/Desktop.Controls/HyperLinkButton/HyperLinkButtonToken.md
T

5.7 KiB
Raw Blame History

HyperLinkButton Design Token

HyperLinkButton 复用 ButtonToken(Token ID: "Button")作为组件级 Design Token 作用域。间距、字体等 Token 与 Button 共享,颜色使用 SharedToken 中的链接色系。

架构说明:HyperLinkButton 没有定义自己的 ControlDesignToken,而是在构造函数中通过 this.RegisterTokenResourceScope(ButtonToken.ScopeProvider) 直接复用 Button 的 Token 作用域。这意味着所有 ButtonTokenResource 标记扩展在 HyperLinkButton 的主题中同样可用。


Token 资源访问方式

在 AXAML 中使用组件级 Token(来自 ButtonToken):

{atom:ButtonTokenResource Padding}
{atom:ButtonTokenResource PaddingLG}
{atom:ButtonTokenResource PaddingSM}
{atom:ButtonTokenResource ContentFontSize}
{atom:ButtonTokenResource ContentFontSizeLG}
{atom:ButtonTokenResource ContentFontSizeSM}
{atom:ButtonTokenResource IconMargin}
{atom:ButtonTokenResource IconOnyPadding}
{atom:ButtonTokenResource OnlyIconSize}

在 AXAML 中使用全局共享 Token:

{atom:SharedTokenResource ColorLink}
{atom:SharedTokenResource ColorLinkHover}
{atom:SharedTokenResource ColorLinkActive}
{atom:SharedTokenResource ColorError}
{atom:SharedTokenResource ControlHeight}
{atom:SharedTokenResource IconSize}

来自 ButtonToken 的组件级 Token

HyperLinkButton 从 ButtonToken 作用域使用以下 Token:

内间距 Token

Token 名 类型 说明
Padding Thickness 中号按钮内间距
PaddingLG Thickness 大号按钮内间距
PaddingSM Thickness 小号按钮内间距
IconOnyPadding Thickness 仅图标中号按钮内间距
IconOnyPaddingLG Thickness 仅图标大号按钮内间距
IconOnyPaddingSM Thickness 仅图标小号按钮内间距

字体 Token

Token 名 类型 说明
ContentFontSize double 中号按钮字体大小
ContentFontSizeLG double 大号按钮字体大小
ContentFontSizeSM double 小号按钮字体大小

图标 Token

Token 名 类型 说明
OnlyIconSize double 仅图标中号按钮图标尺寸
OnlyIconSizeLG double 仅图标大号按钮图标尺寸
OnlyIconSizeSM double 仅图标小号按钮图标尺寸
IconMargin Thickness 图标与文本之间的间距(图标 + 文本共存时使用)

其他 Token

Token 名 类型 说明
BorderColorDisabled Color 禁用态边框颜色

来自 SharedToken 的全局 Token

HyperLinkButton 的 ControlTheme 直接引用以下全局 SharedToken:

颜色 Token(链接色系)

Token 资源键 使用场景 说明
ColorLink 正常态前景色 + 图标色 链接文本的默认颜色(通常为蓝色)
ColorLinkHover 悬浮态前景色 + 图标色 鼠标悬浮时的链接颜色
ColorLinkActive 按下态前景色 + 图标色 鼠标按下时的链接颜色

颜色 Token(危险色系)

Token 资源键 使用场景 说明
ColorError :danger 正常态前景色 + 图标色 危险链接的默认红色
ColorErrorHover :danger 悬浮态前景色 + 图标色 危险链接悬浮时的颜色
ColorErrorActive :danger 按下态前景色 + 图标色 危险链接按下时的颜色

颜色 Token(禁用态)

Token 资源键 使用场景 说明
ColorTextDisabled :disabled 前景色 + 图标色 禁用状态的灰色文本

尺寸 Token

Token 资源键 使用场景 说明
ControlHeight SizeType=Middle 时的高度 中号链接按钮高度
ControlHeightSM SizeType=Small 时的高度 小号链接按钮高度
ControlHeightLG SizeType=Large 时的高度 大号链接按钮高度
IconSize SizeType=Middle 时的图标大小 中号图标尺寸
IconSizeSM SizeType=Small 时的图标大小 小号图标尺寸
IconSizeLG SizeType=Large 时的图标大小 大号图标尺寸

动画 Token

Token 资源键 使用场景 说明
EnableMotion IsMotionEnabled 默认值 全局动画开关
OpacityLoading :loading 时的不透明度 加载态透明度(通常为 0.65)

Token 对外观的具体影响

状态与颜色 Token 映射

状态组合 前景色 图标色(IconBrush/FillBrush)
正常 ColorLink ColorLink
正常 + 悬浮 ColorLinkHover ColorLinkHover
正常 + 按下 ColorLinkActive ColorLinkActive
危险 ColorError ColorError
危险 + 悬浮 ColorErrorHover ColorErrorHover
危险 + 按下 ColorErrorActive ColorErrorActive
禁用(任何类型) ColorTextDisabled ColorTextDisabled
加载中 继承当前前景色 继承当前图标色,并添加旋转动画

尺寸与 Token 映射

尺寸 高度 内间距 字号 图标大小 仅图标尺寸
Large ControlHeightLG PaddingLG ContentFontSizeLG IconSizeLG OnlyIconSizeLG
Middle ControlHeight Padding ContentFontSize IconSize OnlyIconSize
Small ControlHeightSM PaddingSM ContentFontSizeSM IconSizeSM OnlyIconSizeSM

仅图标模式的 Token 差异

当 :icononly 伪类激活时(仅有图标无文本):

  • 图标间距 Margin 重置为 0(不再使用 IconMargin)
  • 图标尺寸切换为 OnlyIconSize / OnlyIconSizeLG / OnlyIconSizeSM(比带文本模式更大)
  • 内间距切换为 IconOnyPadding / IconOnyPaddingLG / IconOnyPaddingSM