mirror of
https://github.com/AtomUI/AtomUI.git
synced 2026-10-28 23:08:36 +08:00
- Space.md: detailed design doc with philosophy, layout algorithm, CompactSpace mechanics, and Ant Design alignment - SpaceAPI.md: complete API reference for Space, CompactSpace, CompactSpaceAddOn, CompactSpaceSize - SpaceStyling.md: styling guide with property control, Style overrides, ControlTheme, and selector reference - SpaceToken.md: full token reference with gap tokens, AddOn tokens, SharedToken usage, and visual impact mapping - SpaceUsage.md: extensive usage examples covering all features from Gallery showcase
5.1 KiB
5.1 KiB
Space Design Token
Space 控件使用 SpaceToken(Token ID: "Space")作为组件级 Design Token,所有视觉属性均从全局 SharedToken 派生,不硬编码任何具体值。
Token 资源访问方式
在 AXAML 中使用组件级 Token:
{atom:SpaceTokenResource GapSmallSize}
{atom:SpaceTokenResource GapMiddleSize}
{atom:SpaceTokenResource GapLargeSize}
{atom:SpaceTokenResource AddonBg}
{atom:SpaceTokenResource AddOnPadding}
在 AXAML 中使用全局共享 Token:
{atom:SharedTokenResource SpacingXS}
{atom:SharedTokenResource Spacing}
{atom:SharedTokenResource SpacingLG}
{atom:SharedTokenResource ColorFillAlter}
组件级 Token 一览
以下是 SpaceToken 定义的全部组件级 Token,按功能分组说明。
间距 Token
| Token 名 | 类型 | 来源 | 说明 |
|---|---|---|---|
GapSmallSize |
double |
SharedToken.SpacingXS |
小间距尺寸(对应 SizeType.Small,默认 8) |
GapMiddleSize |
double |
SharedToken.Spacing |
中间距尺寸(对应 SizeType.Middle,默认 16) |
GapLargeSize |
double |
SharedToken.SpacingLG |
大间距尺寸(对应 SizeType.Large,默认 24) |
CompactSpaceAddOn Token
| Token 名 | 类型 | 来源 | 说明 |
|---|---|---|---|
AddonBg |
Color |
SharedToken.ColorFillAlter |
AddOn 区域背景色(Outline / Filled 样式变体使用) |
AddOnPadding |
Thickness |
SharedToken.UniformlyPaddingSM |
AddOn 默认内边距(对应 SizeType.Middle) |
AddOnPaddingSM |
Thickness |
SharedToken.ControlPaddingHorizontalSM |
AddOn 小号内边距(对应 SizeType.Small) |
AddOnPaddingLG |
Thickness |
SharedToken.ControlPaddingHorizontal |
AddOn 大号内边距(对应 SizeType.Large) |
主题中使用的全局 SharedToken
除组件级 Token 外,Space 相关组件的 ControlTheme 还直接引用了以下全局 SharedToken:
CompactSpaceAddOn 使用的 SharedToken
| Token 资源键 | 使用场景 |
|---|---|
BorderThickness |
AddOn 默认边框厚度 |
FontSize / FontSizeSM / FontSizeLG |
AddOn 字体大小(中/小/大) |
BorderRadius / BorderRadiusSM / BorderRadiusLG |
AddOn 圆角半径(中/小/大) |
ControlHeight / ControlHeightSM / ControlHeightLG |
AddOn 最小高度(中/小/大) |
ColorBorder |
边框颜色(Outline 样式变体 + 禁用态) |
ColorError / ColorErrorBg / ColorErrorText |
错误状态颜色系列 |
ColorWarning / ColorWarningBg / ColorWarningText |
警告状态颜色系列 |
ColorTextDisabled |
禁用态文字颜色 |
ColorBgContainerDisabled |
禁用态背景颜色 |
Space 间距值对应的 SharedToken
| Token 资源键 | 使用场景 |
|---|---|
SpacingXS |
Small 间距值来源(默认 8) |
Spacing |
Middle 间距值来源(默认 16) |
SpacingLG |
Large 间距值来源(默认 24) |
Token 对外观的具体影响
Space 间距与 Token 映射
Space 的间距值完全由 Token 驱动,通过实例级样式根据 SizeType 属性自动切换:
| SizeType | ItemSpacing |
LineSpacing |
Token 来源 |
|---|---|---|---|
Small(默认) |
GapSmallSize |
GapSmallSize |
SharedToken.SpacingXS(默认 8) |
Middle |
GapMiddleSize |
GapMiddleSize |
SharedToken.Spacing(默认 16) |
Large |
GapLargeSize |
GapLargeSize |
SharedToken.SpacingLG(默认 24) |
Custom |
用户设置 | 用户设置 | 不使用 Token |
CompactSpaceAddOn 尺寸与 Token 映射
| SizeType | 字号 | 圆角 | 内间距 | 最小高度 |
|---|---|---|---|---|
Large |
FontSizeLG |
BorderRadiusLG |
AddOnPaddingLG |
ControlHeightLG |
Middle |
FontSize |
BorderRadius |
AddOnPadding |
ControlHeight |
Small |
FontSizeSM |
BorderRadiusSM |
AddOnPaddingSM |
ControlHeightSM |
CompactSpaceAddOn 样式变体与 Token 映射
| 样式变体 | 正常态 | Error 状态 | Warning 状态 | 禁用态 |
|---|---|---|---|---|
| Outline | AddonBg 背景 + ColorBorder 边框 |
ColorError 边框 + ColorErrorText 文字 |
ColorWarning 边框 + ColorWarningText 文字 |
ColorBgContainerDisabled 背景 + ColorBorder 边框 + ColorTextDisabled 文字 |
| Filled | AddonBg 背景 |
ColorErrorBg 背景 + ColorErrorText 文字 |
ColorWarningBg 背景 + ColorWarningText 文字 |
ColorBgContainerDisabled 背景 + ColorTextDisabled 文字 |
| Underlined | 透明背景 | ColorErrorText 文字 |
ColorWarningText 文字 |
ColorTextDisabled 文字 |
紧凑空间圆角裁剪规则
CompactSpace 中子项的圆角根据位置自动裁剪,以消除组合控件之间的圆角间隙:
| 位置 | 水平方向 | 垂直方向 |
|---|---|---|
| First(首项) | 保留左侧圆角,右侧为 0 | 保留顶部圆角,底部为 0 |
| Middle(中间项) | 四角均为 0 | 四角均为 0 |
| Last(末项) | 左侧为 0,保留右侧圆角 | 顶部为 0,保留底部圆角 |
| First + Last(唯一项) | 保留全部圆角 | 保留全部圆角 |