Appearance
Semantic Token
每个 Token 都表达用途,而不是某个固定颜色。切换 Latte / Macchiato 时,业务 utility 不变。
使用规则
- 页面、容器和浮层分别使用
background、surface、surface-elevated,层级同时依赖 tone、border 与 shadow。 primary是最高优先级行为;accent只负责 hover、selection 和轻量选中。ring专用于focus-visible,不与primary强制相等。error是颜色语义,组件层的destructive行为映射到它。tip是无状态的建议;有明确系统状态时使用info。
完整规范
下表由 packages/ui 直接渲染,因此文档值与发布包不会漂移。实心背景与 foreground pairing 需达到 WCAG AA;subtle 组合按正文场景检查。
| Token | 语义 / 使用边界 | Foreground | Latte | Macchiato | UnoCSS |
|---|---|---|---|---|---|
background | 页面最底层画布。应用和完整页面背景。避免:不要用来模拟悬浮层。 | foreground | #eff1f5 | #181926 | bg-backgroundvar(--pd-color-background) |
foreground | 页面默认文字和图标。正文及高优先级内容。避免:不要用于彩色实心背景。 | — | #4c4f69 | #cad3f5 | text-foregroundvar(--pd-color-foreground) |
surface | 普通区域容器。侧栏、面板和分组区域。避免:不要替代页面背景。 | surface-foreground | #e6e9ef | #1e2030 | bg-surfacevar(--pd-color-surface) |
surface-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #4c4f69 | #cad3f5 | text-surface-foregroundvar(--pd-color-surface-foreground) |
surface-subtle | 弱化的次级表面。表头、分组和禁用区域。避免:不要承载最高优先级操作。 | — | #dce0e8 | #24273a | bg-surface-subtlevar(--pd-color-surface-subtle) |
surface-elevated | 视觉层级更高的表面。菜单、对话框和浮层。避免:不要仅靠阴影表达层级。 | — | #ffffff | #363a4f | bg-surface-elevatedvar(--pd-color-surface-elevated) |
card | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #ffffff | #24273a | bg-cardvar(--pd-color-card) |
card-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #4c4f69 | #cad3f5 | text-card-foregroundvar(--pd-color-card-foreground) |
popover | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #ffffff | #363a4f | bg-popovervar(--pd-color-popover) |
popover-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #4c4f69 | #cad3f5 | text-popover-foregroundvar(--pd-color-popover-foreground) |
primary | 最高优先级行为和品牌表达。主按钮、关键选中态。避免:不要铺满大面积背景。 | primary-foreground | #006b67 | #008080 | bg-primaryvar(--pd-color-primary) |
primary-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #ffffff | #ffffff | text-primary-foregroundvar(--pd-color-primary-foreground) |
primary-strong | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #005450 | #006763 | bg-primary-strongvar(--pd-color-primary-strong) |
secondary | 次级交互表面。次按钮和弱选中态。避免:不要与 primary 竞争。 | secondary-foreground | #e2e7f0 | #363a4f | bg-secondaryvar(--pd-color-secondary) |
secondary-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #414559 | #cad3f5 | text-secondary-foregroundvar(--pd-color-secondary-foreground) |
accent | 短暂或轻量强调。hover、selection、active。避免:不等同于品牌主色。 | accent-foreground | #c8eeea | #344b50 | bg-accentvar(--pd-color-accent) |
accent-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #174f4c | #d8f3ee | text-accent-foregroundvar(--pd-color-accent-foreground) |
muted | 弱内容背景。占位、禁用和辅助区域。避免:不要用于关键状态。 | muted-foreground | #e6e9ef | #24273a | bg-mutedvar(--pd-color-muted) |
muted-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #6c6f85 | #a5adcb | text-muted-foregroundvar(--pd-color-muted-foreground) |
border | 默认结构边界。卡片、分隔和控件边缘。避免:不要承担焦点指示。 | — | #bcc0cc | #494d64 | border-bordervar(--pd-color-border) |
border-muted | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #dce0e8 | #363a4f | border-border-mutedvar(--pd-color-border-muted) |
border-strong | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #9ca0b0 | #6e738d | border-border-strongvar(--pd-color-border-strong) |
input | 输入控件边界。表单控件静止态。避免:不要用于 focus ring。 | — | #acb0be | #5b6078 | border-inputvar(--pd-color-input) |
ring | 键盘焦点指示。focus-visible 外环。避免:不要用 hover 代替。 | — | #008080 | #8bd5ca | ring-ringvar(--pd-color-ring) |
info | 明确的信息状态。同步、运行、版本提示。避免:不要用于普通技巧。 | info-foreground | #1e66f5 | #8aadf4 | bg-infovar(--pd-color-info) |
info-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #ffffff | #18203b | text-info-foregroundvar(--pd-color-info-foreground) |
info-subtle | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #dce8ff | #293a58 | bg-info-subtlevar(--pd-color-info-subtle) |
info-subtle-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #17407f | #b8d4ff | text-info-subtle-foregroundvar(--pd-color-info-subtle-foreground) |
info-border | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #8eb2fa | #5276a8 | border-info-bordervar(--pd-color-info-border) |
warning | 需要注意、仍可继续的状态。风险提示和待处理问题。避免:不要表达已失败。 | warning-foreground | #955d00 | #eed49f | bg-warningvar(--pd-color-warning) |
warning-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #ffffff | #3a2c16 | text-warning-foregroundvar(--pd-color-warning-foreground) |
warning-subtle | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #fff0d1 | #4a3c28 | bg-warning-subtlevar(--pd-color-warning-subtle) |
warning-subtle-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #67420d | #ffe2a8 | text-warning-subtle-foregroundvar(--pd-color-warning-subtle-foreground) |
warning-border | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #dfa94f | #7c6841 | border-warning-bordervar(--pd-color-warning-border) |
error | 错误和失败的颜色语义。校验失败和危险结果。避免:destructive 应在组件层映射到它。 | error-foreground | #bc2446 | #ed8796 | bg-errorvar(--pd-color-error) |
error-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #ffffff | #3b1821 | text-error-foregroundvar(--pd-color-error-foreground) |
error-subtle | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #ffe0e7 | #4a2934 | bg-error-subtlevar(--pd-color-error-subtle) |
error-subtle-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #81243b | #ffb8c2 | text-error-subtle-foregroundvar(--pd-color-error-subtle-foreground) |
error-border | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #e59aaa | #84515f | border-error-bordervar(--pd-color-error-border) |
success | 成功完成的状态。保存、同步、检查通过。避免:不要用于普通品牌强调。 | success-foreground | #347827 | #a6da95 | bg-successvar(--pd-color-success) |
success-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #ffffff | #1e301d | text-success-foregroundvar(--pd-color-success-foreground) |
success-subtle | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #ddf2d7 | #2d4430 | bg-success-subtlevar(--pd-color-success-subtle) |
success-subtle-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #315d28 | #c3edb5 | text-success-subtle-foregroundvar(--pd-color-success-subtle-foreground) |
success-border | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #8bc47e | #57795a | border-success-bordervar(--pd-color-success-border) |
tip | 无状态性质的建议和技巧。推荐、辅助说明、轻量高亮。避免:不要表达系统信息状态。 | tip-foreground | #006b67 | #69c7bd | bg-tipvar(--pd-color-tip) |
tip-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #ffffff | #182725 | text-tip-foregroundvar(--pd-color-tip-foreground) |
tip-subtle | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #d8f2ef | #274340 | bg-tip-subtlevar(--pd-color-tip-subtle) |
tip-subtle-foreground | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #174f4c | #b6e9e2 | text-tip-subtle-foregroundvar(--pd-color-tip-subtle-foreground) |
tip-border | 语义配对或层级变体。与所属语义组配合使用。避免:脱离所属语义组单独替换。 | — | #79bdb7 | #4f7772 | border-tip-bordervar(--pd-color-tip-border) |