refactor(miniprogram): 全面接入 Design Token — 68 SCSS 文件 px→var(--tk-*)
- 重写 tokens.scss:校准 10 级字号 + 4 结构 token 匹配实际设计值 - 更新 mixins.scss:4 个 mixin 引用 token 替代硬编码 - 68 SCSS 文件全面迁移:font-size px → var(--tk-font-*),辅助文字色 → var(--tk-text-secondary) - 清理 12 个页面的本地 mixin 重复定义 - elder-mode.scss 从 530 行缩减至 ~120 行:删除所有字号/颜色覆写,仅保留结构布局 - Token 覆盖率:634 引用 / 仅 3 个特殊硬编码值(72px/80px/21px) 关怀模式通过 CSS 变量级联自动生效,消除"打地鼠"问题。
This commit is contained in:
@@ -1,79 +1,49 @@
|
||||
// Design Token — CSS 自定义属性
|
||||
// 正常模式值定义在 :root,关怀模式通过 .elder-mode 覆盖
|
||||
// Design Token — CSS 自定义属性(校准后)
|
||||
// 基于全量审计:600+ font-size 声明的频率分布
|
||||
// 页面样式应引用 var(--tk-*) 而非硬编码 px 值
|
||||
// 关怀模式通过 .elder-mode 覆盖 token 值自动生效
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// 正常模式 Token
|
||||
// ═══════════════════════════════════════
|
||||
page {
|
||||
// ─── 字号 ───
|
||||
--tk-font-hero: 48px; // 登录标题等超大字
|
||||
--tk-font-h1: 26px; // 页面标题
|
||||
--tk-font-h2: 22px; // 区块标题
|
||||
--tk-font-body: 15px; // 正文 / 列表项
|
||||
--tk-font-body-lg: 17px; // 大正文 / 按钮文字
|
||||
--tk-font-cap: 13px; // 辅助说明 / 次要文字
|
||||
--tk-font-micro: 11px; // 标签 / 角标 / 最小文字
|
||||
// ─── 字号(10 级,覆盖 92.5% 场景)───
|
||||
--tk-font-hero: 48px; // 装饰图标、空状态字符
|
||||
--tk-font-h1: 26px; // 页面/区块标题
|
||||
--tk-font-h2: 24px; // 副标题、日期、菜单组
|
||||
--tk-font-body-lg: 28px; // 大正文、按钮(页面默认字号)
|
||||
--tk-font-body: 22px; // 正文、标签
|
||||
--tk-font-body-sm: 16px; // 中等正文、列表项
|
||||
--tk-font-num: 30px; // 数值
|
||||
--tk-font-num-lg: 34px; // 大数值、统计
|
||||
--tk-font-cap: 13px; // 说明文字、时间戳
|
||||
--tk-font-micro: 11px; // 角标、标签
|
||||
|
||||
// ─── 数值型字号 ───
|
||||
--tk-font-value: 30px; // 体征数值
|
||||
--tk-font-value-lg: 28px; // 统计数值
|
||||
|
||||
// ─── 间距 ───
|
||||
--tk-gap-xs: 6px;
|
||||
--tk-gap-sm: 8px;
|
||||
--tk-gap-md: 10px;
|
||||
--tk-gap-lg: 16px;
|
||||
--tk-gap-xl: 20px;
|
||||
--tk-gap-2xl: 24px;
|
||||
|
||||
// ─── 内边距 ───
|
||||
--tk-pad-page: 20px 24px; // 页面内边距
|
||||
--tk-pad-card: 16px; // 卡片内边距
|
||||
--tk-pad-section: 20px; // 区块内边距
|
||||
|
||||
// ─── 触控 ───
|
||||
--tk-touch-min: 44px;
|
||||
--tk-btn-h: 52px;
|
||||
--tk-btn-primary-h: 56px;
|
||||
|
||||
// ─── 布局 ───
|
||||
--tk-grid-cols: 2;
|
||||
// ─── 结构 ───
|
||||
--tk-line-height: 1.5;
|
||||
--tk-touch-min: 48px;
|
||||
--tk-btn-primary-h: 56px;
|
||||
--tk-text-secondary: #78716C; // $tx3 — 关怀模式提升对比度
|
||||
}
|
||||
|
||||
// ═══════════════════════════════════════
|
||||
// 关怀模式 Token(非线性放大)
|
||||
// 标题 ×1.15 / 正文 ×1.35 / 辅助 ×1.55
|
||||
// ═══════════════════════════════════════
|
||||
.elder-mode {
|
||||
// 字号:标题 ×1.15 / 正文 ×1.35 / 辅助 ×1.55
|
||||
--tk-font-hero: 56px;
|
||||
--tk-font-h1: 30px;
|
||||
--tk-font-h2: 26px;
|
||||
--tk-font-body: 20px;
|
||||
--tk-font-body-lg: 22px;
|
||||
--tk-font-h2: 28px;
|
||||
--tk-font-body-lg: 34px;
|
||||
--tk-font-body: 30px;
|
||||
--tk-font-body-sm: 22px;
|
||||
--tk-font-num: 34px;
|
||||
--tk-font-num-lg: 40px;
|
||||
--tk-font-cap: 18px;
|
||||
--tk-font-micro: 17px;
|
||||
|
||||
--tk-font-value: 34px;
|
||||
--tk-font-value-lg: 34px;
|
||||
|
||||
// 间距:×1.4(大于字号放大倍率,增加呼吸空间)
|
||||
--tk-gap-xs: 8px;
|
||||
--tk-gap-sm: 12px;
|
||||
--tk-gap-md: 14px;
|
||||
--tk-gap-lg: 22px;
|
||||
--tk-gap-xl: 28px;
|
||||
--tk-gap-2xl: 32px;
|
||||
|
||||
--tk-pad-page: 28px 32px;
|
||||
--tk-pad-card: 20px;
|
||||
--tk-pad-section: 28px;
|
||||
|
||||
--tk-touch-min: 56px;
|
||||
--tk-btn-h: 60px;
|
||||
--tk-btn-primary-h: 64px;
|
||||
|
||||
--tk-grid-cols: 1;
|
||||
--tk-line-height: 1.7;
|
||||
--tk-touch-min: 56px;
|
||||
--tk-btn-primary-h: 64px;
|
||||
--tk-text-secondary: #5A554F; // $tx2 — 对比度提升
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user