Files

122 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Dialog Design Token
Dialog 控件使用 `DialogToken`(Token ID: `"Dialog"`)作为组件级 Design Token,所有视觉属性均从全局 `SharedToken` 派生,不硬编码任何具体值。
---
## Token 资源访问方式
在 AXAML 中使用组件级 Token:
```xml
{atom:TokenResource DialogHeaderBg}
{atom:TokenResource DialogContentBg}
{atom:TokenResource DialogHeaderFontSize}
```
在 AXAML 中使用全局共享 Token:
```xml
{atom:SharedTokenResource ColorBgElevated}
{atom:SharedTokenResource FontSizeHeading5}
{atom:SharedTokenResource PaddingContentHorizontalLG}
```
---
## 组件级 Token 一览
以下是 `DialogToken` 定义的全部组件级 Token,按功能分组说明。
### 颜色 Token
| Token 名 | 类型 | 来源 | 说明 |
|---|---|---|---|
| `HeaderBg` | `Color` | `Colors.Transparent` | 标题区域背景色 |
| `HeaderColor` | `Color` | `SharedToken.ColorTextHeading` | 标题字体颜色 |
| `ContentBg` | `Color` | `SharedToken.ColorBgElevated` | 内容区域背景色 |
| `FooterBg` | `Color` | `Colors.Transparent` | 底部区域背景色 |
### 字体 Token
| Token 名 | 类型 | 来源 | 说明 |
|---|---|---|---|
| `HeaderFontSize` | `double` | `SharedToken.FontSizeHeading5` | 标题字体大小 |
### 图标 Token
| Token 名 | 类型 | 来源 | 说明 |
|---|---|---|---|
| `LogoSize` | `double` | `SharedToken.SizeLG` | Overlay 对话框标题图标大小 |
| `CloseBtnSize` | `double` | `SharedToken.ControlHeight` | 关闭按钮大小 |
### 间距 Token
| Token 名 | 类型 | 来源 | 说明 |
|---|---|---|---|
| `HeaderPadding` | `Thickness` | 基于 `SharedToken.PaddingContentHorizontalLG` 和 `SharedToken.UniformlyPaddingSM` | 标题区域内间距 |
| `HeaderMarginBottom` | `Thickness` | 基于 `SharedToken.UniformlyMarginXS` | 标题区域下外间距 |
| `ContentPadding` | `Thickness` | 基于 `SharedToken.PaddingContentHorizontalLG` 和 `SharedToken.UniformlyPaddingMD` | 内容区域内间距 |
| `FooterPadding` | `Thickness` | 基于 `SharedToken.PaddingContentHorizontalLG` 和 `SharedToken.UniformlyPaddingMD` | 底部区域内间距 |
| `FooterMarginTop` | `Thickness` | 基于 `SharedToken.UniformlyMarginXS` | 底部区域上外间距 |
| `ButtonGroupSpacing` | `double` | `SharedToken.SpacingXS` | 底部按钮之间的间距 |
### 尺寸 Token
| Token 名 | 类型 | 来源 | 说明 |
|---|---|---|---|
| `MinHeight` | `double` | 基于 `SharedToken.ControlHeightLG` + `HeaderPadding` 计算 | 对话框默认最小高度 |
| `MinWidth` | `double` | 固定 `200` | 对话框默认最小宽度 |
---
## 主题中使用的全局 SharedToken
除组件级 Token 外,Dialog 的 ControlTheme 还直接引用了以下全局 `SharedToken`:
| Token 资源键 | 使用场景 |
|---|---|
| `ColorBgElevated` | 对话框整体背景色 |
| `ColorTextHeading` | 标题文字颜色 |
| `FontSizeHeading5` | 标题字号 |
| `PaddingContentHorizontalLG` | 水平内间距基准 |
| `PaddingContentHorizontalSM` | 标题右侧内间距 |
| `UniformlyPaddingSM` / `UniformlyPaddingMD` | 垂直内间距 |
| `UniformlyMarginXS` | 标题/底部间距 |
| `SizeLG` | 图标大小 |
| `ControlHeight` / `ControlHeightLG` | 控件高度基准 |
| `SpacingXS` | 按钮间距 |
| `ColorBgMask` | Overlay 模式遮罩层背景色 |
| `BorderRadiusLG` | 对话框圆角 |
| `BoxShadowsSecondary` | 对话框阴影 |
---
## Token 对外观的具体影响
### 标题区域
- 背景色由 `HeaderBg`(默认透明)控制
- 字体大小由 `HeaderFontSize` 控制
- 字体颜色由 `HeaderColor` 控制
- 图标大小由 `LogoSize` 控制
- 内间距由 `HeaderPadding` 控制
- 与内容区域间隔由 `HeaderMarginBottom` 控制
### 内容区域
- 背景色由 `ContentBg` 控制
- 内间距由 `ContentPadding` 控制
### 底部按钮区域
- 背景色由 `FooterBg`(默认透明)控制
- 内间距由 `FooterPadding` 控制
- 与内容区域间隔由 `FooterMarginTop` 控制
- 按钮间距由 `ButtonGroupSpacing` 控制
### 整体尺寸约束
- 最小宽度由 `MinWidth`(200px)控制
- 最小高度由 `MinHeight`(从 HeaderPadding + ControlHeightLG 派生)控制