Skip to content
bitzorcas
中EN

Reference

排版、空间与材质

Design System 1.2 的字体、字号、间距、圆角、Elevation、Motion、z-index 与四级 Density。

Last updated

排版、空间与材质

字体角色

Token值用途
--ref-font-uiInter, "SF Pro Text", "PingFang SC", "Microsoft YaHei", system-ui, sans-serifShell、表单、表格
--ref-font-document"Source Han Serif SC", "Noto Serif SC", Georgia, serif合同、判决书、长文阅读
--ref-font-mono"SFMono-Regular", "JetBrains Mono", Consolas, monospace代码、案号、机器标识

衬线字体不进入 App Shell、表单和数据表格。金额、日期、统计和案号启用 tabular numbers。

字号与排版

Tokenpx用途
--ref-type-10010非关键分组标签,仅桌面
--ref-type-20011辅助信息、时间戳
--ref-type-30012标签、按钮辅助、状态
--ref-type-40013Compact 表格正文
--ref-type-50014默认 UI 正文
--ref-type-60016强调正文、小标题
--ref-type-70018区块标题
--ref-type-80024页面标题
--ref-type-90028关键页面标题
--ref-type-100036Identity/营销大标题,业务页少用
RoleWeightLine Height
Body4001.5
Label / Button5001.4
Heading6001.25
Strong Heading650(可变字体)或 6001.2

10px 不得承载操作、错误、正文或关键数据;不使用 300 细字。

Reference 间距

Reference spacing 不被 Theme 或 Density 改写。

TokenpxTokenpx
--ref-space-00--ref-space-0-52
--ref-space-14--ref-space-1-56
--ref-space-28--ref-space-312
--ref-space-416--ref-space-520
--ref-space-624--ref-space-832
--ref-space-1040--ref-space-1248
--ref-space-1664

圆角

Tokenpx用途
--ref-radius-none0连续表格面
--ref-radius-control4Input、Select、Tag、Checkbox
--ref-radius-panel6Button、Panel、Card
--ref-radius-overlay8Dialog、Sheet、Popover
--ref-radius-feature12少量展示面
--ref-radius-full9999Avatar、圆形图标

不使用一个全局半径同比例缩放所有组件,也不把大圆角卡片墙当作默认页面结构。

Elevation

Token值用途
--sys-elevation-0none默认工作面,以边界区分
--sys-elevation-10 1px 2px rgb(13 20 26 / 5%)静态抬升
--sys-elevation-20 4px 12px rgb(13 20 26 / 8%)Dropdown、Popover
--sys-elevation-30 8px 24px rgb(13 20 26 / 10%), 0 2px 6px rgb(13 20 26 / 6%)Dialog
--sys-elevation-sheet-12px 0 36px rgb(13 20 26 / 14%), -2px 0 8px rgb(13 20 26 / 7%)右侧 Sheet

暗色模式使用中性黑色和独立透明度映射。禁止品牌色阴影、彩色发光和装饰性玻璃。

Motion 与 z-index

Token值用途
--ref-duration-instant0ms无动画状态
--ref-duration-fast120mshover、focus、颜色
--ref-duration-standard180msPopover、局部展开
--ref-duration-structural240msSidebar、Sheet、Dialog
--ref-ease-outcubic-bezier(0.16, 1, 0.3, 1)进入与响应
--ref-ease-standardcubic-bezier(0.4, 0, 0.2, 1)对称变化
basestickydropdownoverlaydialogtoasttooltip
0100400600700800900

prefers-reduced-motion 下结构动效降为 instant。业务页面不得创建高于 Tooltip 的局部层级。

全局组件 Token

全局组件 Token 不随密度变化,定义壳层、页面和面板的固定尺寸:

Token值用途
--cmp-shell-padding-inline16px应用壳层左右内边距
--cmp-page-max-width-standard100rem标准页面最大宽度
--cmp-page-max-width-comfortable60rem阅读型页面最大宽度
--cmp-panel-min-width15rem多栏面板最小宽度
--cmp-panel-default-width20rem多栏面板默认宽度
--cmp-panel-max-width30rem多栏面板最大宽度
--cmp-panel-narrow-min-width12.5rem窄面板最小宽度

Density

Density 有四档:dense、compact、comfortable、spacious。dense 面向高密表格与批量操作桌面场景,spacious 面向触摸与无障碍放大场景。

Component SemanticDenseCompactComfortableSpacious
--cmp-control-height24px32px40px48px
--cmp-control-font-size13px14px14px16px
--cmp-control-line-height16px20px20px24px
--cmp-table-header-height28px36px44px52px
--cmp-table-row-height28px36px48px52px
--cmp-table-row-height-two-line40px48px60px64px
--cmp-table-cell-padding-x6px12px16px20px
--cmp-table-cell-padding-y2px6px10px12px
--cmp-field-gap6px12px16px20px
--cmp-field-min-width144px160px176px192px
--cmp-section-gap8px16px24px32px
--cmp-workspace-page-padding12px16px20px24px
--cmp-panel-header-height36px40px44px48px
--cmp-panel-header-padding-x8px12px16px20px
--cmp-panel-header-padding-y4px6px8px10px
--cmp-panel-body-padding-x8px12px16px20px
--cmp-panel-body-padding-y8px12px16px20px
--cmp-panel-handle-width4px4px4px4px
--cmp-panel-handle-hit-width12px12px12px12px
--cmp-panel-collapsed-rail-width48px48px48px48px
--cmp-panel-collapse-icon-size16px16px18px18px

Density 覆盖控件、表格、字段、面板和工作区的语义尺寸。它不改字体家族、品牌色、Reference spacing 或页面结构。control-font-size 与 control-line-height 随密度变化,受无障碍 fontScale 轴进一步放大。Dense 档可操作目标仍不得小于 24px,视觉行高与交互热区分开计算。

Button、Input、Select、Table、Query Toolbar 和 Panel 必须直接消费这些 Component Token;仅切换 data-density 属性、但实际几何尺寸不变,不算完成密度适配。

消费示例

表格 primitive 直接读取密度感知的 Component Token。切换根节点 data-density 后,行高、 padding 与字号会同步变化,不需要在组件里维护四套 class:

/* 表格几何值由当前 Density 映射,不读取 Reference spacing。 */
.data-cell {
min-block-size: var(--cmp-table-row-height);
padding: var(--cmp-table-cell-padding-y) var(--cmp-table-cell-padding-x);
font-size: var(--cmp-control-font-size);
line-height: var(--cmp-control-line-height);
}

结构动画与抬升使用 System Token。data-reduce-motion=true 或系统减少动效偏好会把 System 时长映射到 instant,业务组件无需另写一份动画分支:

/* Sheet 的尺寸、阴影和动效都由稳定语义角色控制。 */
.operation-sheet {
inline-size: clamp(
var(--cmp-panel-min-width),
var(--cmp-panel-default-width),
var(--cmp-panel-max-width)
);
box-shadow: var(--sys-elevation-sheet);
transition-duration: var(--sys-duration-structural);
}

100%

滚轮或按钮缩放 · 放大后拖动画面 · 双击切换 100% / 200%