wlili.top 设计系统规范
本规范依据作品集前台(portfolio/cases)实时 CSS 盘点生成,全部取值与
portfolio/cases/_shared/design-tokens.css 完全一致。文档外壳即采用本套 Token 的镜像值排版,正反验证系统可用。
现状总览
经方案 A(全局 token 迁收)+ 盲区 A–L 补漏 + px→rem 迁移三轮收口后,体系已成「单一可发现源」。 全部 21 个维度已 Token 化并接线;仅余「字面硬编码未替换」这类纯度问题(零视觉风险)。
_shared/design-tokens.css 已失效、仍显示 px 取值、并把已完成的 11 项盲区标为「🔴 未覆盖」;
v2(2026-10-09)修正取值与路径但版式单调、且动效演示区 CSS 缺失;
v3(本版)改用 specimen 版式(真实渲染的字阶 / 圆角 / 间距标本 + 色阶砖 + 深色实时预览),并补齐动效演示样式。
颜色 Color
品牌 / 中性 / 文本 / 边框 / 状态色已收口为单一源,并配套深色 [data-theme="dark"] 反转。
--pd-accent-*✅ 已落地site-shell.css 的豁免区保持浅色逻辑(用户要求)。| Token | 浅色 | 深色 [data-theme="dark"] | 说明 |
|---|---|---|---|
--color-background | #f5f5f5 | #0a0a0a | 页面底 |
--color-text | #0a0a0a | #f5f5f5 | 主文本 |
--color-text-secondary | rgba(10,10,10,.6) | rgba(245,245,245,.72) | 次级文本 |
--color-text-tertiary | rgba(255,255,255,.6) | rgba(245,245,245,.5) | 三级文本 |
--color-black | #0a0a0a | #f5f5f5 | 主文字/深填充 → 浅 |
--color-white | #fff | #1a1a1a | 白卡底 → 深卡 |
--color-gray-ultra-light | rgba(10,10,10,.04) | rgba(255,255,255,.06) | 极淡边框/底纹 |
--color-primary | #000 | #f5f5f5 | 主强调 |
字体排印 Typography
字体族 + 字号阶梯 + 行高 + 字距 + 字重全部 Token 化并接线(含 v1 的盲区 A/B/C/D)。字号已是 rem(16px → 1rem)。
--font-family✅ 已落地--fs-*(真实渲染)✅ 已落地·已接线clamp() 流体字号属设计意图,故意保留裸写(见 §13)。--lh-* ✅ 已落地·已接线设计系统把散落取值收口为单一源,标题用紧行高。
设计系统把散落取值收口为单一源,正文用中等行高。
设计系统把散落取值收口为单一源,长文用宽松行高。
--ls-* ✅ 已落地·已接线--fw-* ✅ 已落地·已接线间距 Spacing
区块留白四档 + 组件 gap 尺度 + 容器宽度,全部已落地·已接线。已是 rem(v1 显示 px,现已迁移)。下方条形长度即真实取值。
--padding-* ✅ 已落地--gap-*(4px 基准)✅ 已落地·已接线--container-* ✅ 已落地·已接线| Token | rem | px | 用途 |
|---|---|---|---|
--container-page | 95rem | 1520 | 全站通栏上限 |
--container-read | 42.5rem | 680 | 阅读栏(正文/副标题限宽) |
--container-card | 32.5rem | 520 | 卡片/焦点预览面板 |
--container-mock | 33.75rem | 540 | mockup 副标题限宽 |
--container-mock2 | 35rem | 560 | mockup 副标题限宽(变体) |
圆角 Radius
已落地并接线(带 fallback)。全站圆角一处改全局生效。已是 rem。下方方块即真实圆角。
阴影 Shadow
已落地并接线。一次性定制阴影仍保留硬编码(ROI 低,不强制收口)。已是 rem。
表面色 & 透明度
深色表面色(盲区 H)与透明度层级(盲区 G)均已收口。
--surface-* ✅ 已落地·已接线--opacity-* ✅ 已落地·已接线宽高比 & 渐变
可复用的通用比例与可复用渐变已收口;精确像素比例与美术渐变刻意保留裸写。
--ratio-* ✅ 已落地·已接线--gradient-*(仅可复用项)✅ 已落地·已接线响应式断点 & 交互态
盲区 J / L。断点已统一,消除 767/768 同时使用的 off-by-one 隐患。
--bp-* ✅ 已落地·已接线max-width:767px 表示「平板及以下」、max-width:560px 表示「手机」。文档自身断点采用 980 / 820 / 560。--state-* ✅ 已落地·已接线动效 Motion
时长与缓动曲线已 Token 化。下方为缓动曲线可视化(点「重播动效」或顶部按钮)。
cubic-bezier(0,0,.2,1)
cubic-bezier(.4,0,.2,1)
cubic-bezier(.4,0,1,1)
cubic-bezier(0.22,1,0.36,1) / 380ms(无过冲),与上方「强调缓动」不同——前者是交互手感专项,未纳入通用 Token,属合理例外。层级 z-index
已落地,命名清晰,覆盖下拉到 tooltip 全谱。
| 值 | Token | 用途 |
|---|---|---|
1000 | --z-dropdown | 下拉菜单 |
1020 | --z-sticky | 吸顶元素 |
1030 | --z-fixed | 固定层 |
1040 | --z-modal-backdrop | 弹窗遮罩 |
1050 | --z-modal | 弹窗 |
1060 | --z-popover | 浮层 |
1070 | --z-tooltip | 气泡提示 |
块级 Token · --pd-* 家族
24 个板块局部 token 已从各 .pd-* 选择器收口为单一源(✅ 已落地·本文件权威源)。组件内只「消费」不「定义」。
fg=主前景 · fg2/fg3=次级前景 · accent=强调(默认 #888)· border/divider=分割。#ffffff×23、#0a0a0a×13、#888888×5 等字面硬编码散布在组件里,与现有 token 值完全一致却未走变量——属「已落地但未接线」,不改视觉,只影响单一源纯度。建议全量替换为 var(--color-white) 等(可用脚本安全替换,带 fallback)。原盲区 A–L(已全部收口)
v1 快照中标记为「🔴 未覆盖」的 11 个维度,现均已在 design-tokens.css 落地并接线(§10–§21)。下表为当前真实状态。
| 原盲区 | 维度 | 落地 Token | 状态 |
|---|---|---|---|
| A | 字号阶梯 | --fs-12 … --fs-200(14 档,rem) | ✅ 已落地·已接线 |
| B | 行高 | --lh-090 … --lh-180(14 档) | ✅ 已落地·已接线 |
| C | 字距 | --ls-*(em 12 + px 20+) | ✅ 已落地·已接线 |
| D | 字重 | --fw-300 … --fw-900 / --fw-normal | ✅ 已落地·已接线 |
| E | 统一间距体系 | --gap-4 … --gap-96(4px 基准) | ✅ 已落地·已接线 |
| F | 容器宽度 | --container-*(page/read/card/mock/mock2) | ✅ 已落地·已接线 |
| G | 透明度层级 | --opacity-hide/dim/dim2/dim3/show/085/04 | ✅ 已落地·已接线 |
| H | 深色组件表面色 | --surface-d1 … d4 | ✅ 已落地·已接线 |
| I | 渐变 | --gradient-scrim / scrim-strong / shimmer | ✅ 已落地·已接线 |
| J | 响应式断点 | --bp-tablet:767px / --bp-mobile:560px | ✅ 已落地·已接线 |
| K | 宽高比 | --ratio-4-3 / 4-5 / 5-3 / 16-9 | ✅ 已落地·已接线 |
| L | 交互态色彩 | --state-hover-bg / --state-focus-ring | ✅ 已落地·已接线 |
故意保留裸写(非遗漏)
以下属「设计意图」,抽成 token 无收益且易误改,刻意保留裸写:
clamp(...):响应式设计意图,抽 token 反增噪音。· 精确 px 行高(如 162.8px):特定标题垂直居中专用。
· 精确像素宽高比(如 1136/608):图片原始比例,必须原样。
· 美术渐变(mockup 金属/玻璃/屏幕):逐件设计,抽 token 破坏表现。
应用示意
用本套 Token 组合出的示意件,验证「改一处 token → 全局生效」。 说明:wlili 无通用 UI 组件库(components.css 为内容板块库),此处仅演示 Token 组合效果,非现成组件。
案例封面卡
圆角 --radius-xl · 浮起 --shadow-card · 文字 --fs-24/--fs-14 · 间距 --gap-12/--gap-24。