mirror of
https://github.com/AtomUI/AtomUI.git
synced 2026-10-22 00:46:48 +08:00
3.9 KiB
3.9 KiB
Carousel Design Token
Carousel 控件使用 CarouselToken(Token ID: "Carousel")作为组件级 Design Token,所有视觉属性均从全局 SharedToken 派生。
Token 资源访问方式
在 AXAML 中使用组件级 Token:
{atom:CarouselTokenResource IndicatorWidth}
{atom:CarouselTokenResource IndicatorActiveWidth}
{atom:CarouselTokenResource ArrowSize}
在 AXAML 中使用全局共享 Token:
{atom:SharedTokenResource ColorBgContainer}
{atom:SharedTokenResource EnableMotion}
{atom:SharedTokenResource MotionDurationSlow}
组件级 Token 一览
以下是 CarouselToken 定义的全部组件级 Token。
指示器 Token
| Token 名 | 类型 | 来源 | 说明 |
|---|---|---|---|
IndicatorWidth |
double |
固定 16 |
指示点默认宽度 |
IndicatorHeight |
double |
固定 3 |
指示点高度 |
IndicatorActiveWidth |
double |
固定 24 |
选中态指示点宽度(变宽以突出当前页) |
IndicatorGap |
double |
SharedToken.UniformlyMarginXS |
指示点之间的间距 |
PaginationOffset |
double |
固定 12 |
分页指示器距走马灯边缘的距离 |
导航箭头 Token
| Token 名 | 类型 | 来源 | 说明 |
|---|---|---|---|
ArrowSize |
double |
固定 16 |
导航箭头图标大小 |
ArrowOffset |
double |
SharedToken.SpacingXS |
导航箭头距走马灯边缘的距离 |
主题中使用的全局 SharedToken
除组件级 Token 外,Carousel 的 ControlTheme 还直接引用了以下全局 SharedToken:
| Token 资源键 | 使用场景 |
|---|---|
EnableMotion |
全局动画开关,控制指示点宽度过渡和导航按钮不透明度过渡 |
MotionDurationSlow |
页面过渡动画时长(默认值) |
ColorBgContainer |
指示点背景色、导航箭头图标颜色 |
UniformlyMarginXS |
指示点间距 |
SpacingXS |
导航箭头边距 |
Token 对外观的具体影响
指示点样式
| 状态 | 宽度 | 不透明度 | 进度条 |
|---|---|---|---|
| 正常 | IndicatorWidth(16px) |
0.2 |
不显示 |
悬浮(:pointerover) |
IndicatorWidth(16px) |
0.75 |
不显示 |
| 选中(无进度条) | IndicatorActiveWidth(24px) |
1.0 |
不显示 |
| 选中(有进度条) | IndicatorActiveWidth(24px) |
0.2(底层) |
显示(覆盖层按进度填充) |
| 选中 + 悬浮(有进度条) | IndicatorActiveWidth(24px) |
0.75 |
隐藏 |
导航箭头样式
| 状态 | 不透明度 | 可见性 |
|---|---|---|
| 正常 | 0.2 |
根据 IsShowNavButtons + 边界条件 |
悬浮(:pointerover) |
1.0 |
— |
| 非无限循环 + 首页 | — | 前一页按钮隐藏 |
| 非无限循环 + 末页 | — | 下一页按钮隐藏 |
分页位置与布局 Token
| 位置 | 指示器对齐 | 指示器 Margin | 导航按钮 |
|---|---|---|---|
Bottom |
底部水平居中 | Bottom = PaginationOffset |
左右两侧垂直居中 |
Top |
顶部水平居中 | Top = PaginationOffset |
左右两侧垂直居中 |
Left |
左侧垂直居中(旋转 90°) | Left = PaginationOffset |
上下两侧水平居中(旋转 90°) |
Right |
右侧垂直居中(旋转 90°) | Right = PaginationOffset |
上下两侧水平居中(旋转 90°) |
过渡动画参数
| 参数 | Token / 默认值 | 说明 |
|---|---|---|
PageTransitionDuration |
SharedToken.MotionDurationSlow |
页面切换动画时长 |
PageInEasing |
CubicEaseOut |
页面进入缓动 |
PageOutEasing |
CubicEaseOut |
页面离开缓动 |
| 指示点宽度过渡 | DoubleTransition(默认时长) |
选中/取消选中时宽度变化 |
| 指示点不透明度过渡 | DoubleTransition(默认时长) |
悬浮/离开时不透明度变化 |
| 导航按钮不透明度 | DoubleTransition(默认时长) |
悬浮/离开时不透明度变化 |