执行 ROADMAP 的 S1-P4,按规划的三阶段走,本次完成 A 与 B。 阶段 A · 预计算 scenarios(验证「构建期预计算 + 运行时回退」链路) - tools/precompute.mjs:与 app.js 的 extractScenarios 逻辑完全一致, 构建期算出结果写进 data.components[].scenarios - app.js 加快速路径:优先读 c.scenarios,缺失时回退运行时解析 - 浏览器实测:预计算值与运行时提取值**完全一致**(逐字节比对) - 实测收益有限:仅 4 个组件有 ≥2 场景(场景卡片本就少见), 但链路验证通过,为阶段 C 的 API 预计算铺路 阶段 B · css 源码分离(零风险,css 不参与任何解析) - css 从 data.js 移到 site/sources/<slug>/css.txt(79 个文件) - data.js 里改为 sourcesRef.css 引用,data.json 保持完整(For Agents 承诺) - data.js: 1058 KB → 942 KB(−116 KB) - app.js 新增 srcOf(c, kind) / hasSrc(c, kind): · srcOf 同步返回已有源码,缺失时触发后台 fetch 并缓存 · __aaSrcReady 回调在加载完成后填充代码区 - 修正回调时机 bug:原实现捕获构建时的 current(初始 tab), 导致用户后续切换的 tab 收不到通知。改为回调内实时比对当前 tab 关于 P4 的实测修正(已登记 ROADMAP 规划修正记录) - 规划估计「拆 sources → ~110KB」。实测 css 仅占 119KB/888KB, 且 html/vue2/vue3/jsx 共 765KB 被**渲染期同步消费** (extractComponentAPI 读 vue3/vue2/jsx,extractScenarios 读 html) - 故需分阶段:A+B 先减 116KB,阶段 C 需先预计算 API 表才能分离其余 4 端 新增构建链(两步,不可省第二步) - npm run build:site = build-site.ps1 + precompute.mjs - build-site.ps1 会把 data.js 重写回全量,precompute 才做瘦身 - 已写入 AGENTS.md 的铁律章节(含「只跑第一步会怎样」的后果说明) 验证 - 回归 100%:1003/1003,79 页全通过,N/A 35 - 浏览器实测:展开代码区 → CSS tab → 2121 字符正常显示, Network 出现 sources/button/css.txt 请求 - 预计算 vs 运行时场景提取结果逐字节一致
1 line
6.7 KiB
JSON
1 line
6.7 KiB
JSON
{"$schema":"https://schemas.design-tokens.org/draft/dtcg.json","$metadata":{"name":"Aurora Admin","version":"1.4.1","brand":"#2F54EB","generated":"2026-09-11 23:22"},"tokens":{"color":{"au-color-brand":{"$value":"#2F54EB","$type":"color","$description":"品牌主色:主按钮、选中态、链接"},"au-color-brand-hover":{"$value":"#1D39C4","$type":"color","$description":"品牌主色悬停"},"au-color-brand-active":{"$value":"#10239E","$type":"color","$description":"品牌主色点击"},"au-color-brand-bg":{"$value":"#F0F5FF","$type":"color","$description":"品牌浅色背景:选中背景、标签背景、表格悬停"},"au-color-secondary":{"$value":"#13C2C2","$type":"color","$description":"辅助色"},"au-color-page-bg":{"$value":"#F5F7FA","$type":"color","$description":"页面背景"},"au-color-card-bg":{"$value":"#FFFFFF","$type":"color","$description":"卡片背景"},"au-color-table-header-bg":{"$value":"#FAFAFA","$type":"color","$description":"表头背景"},"au-color-disabled-bg":{"$value":"#F5F5F5","$type":"color","$description":"禁用背景(按钮禁用态)"},"au-color-tag-green-bg":{"$value":"#F6FFED","$type":"color","$description":"标签绿底"},"au-color-tooltip-bg":{"$value":"#1F2329","$type":"color","$description":"Tooltip 深色背景"},"au-color-text-title":{"$value":"#1F2329","$type":"color","$description":"标题文字 · 15.4:1"},"au-color-text-body":{"$value":"#262626","$type":"color","$description":"正文文字 · 14.0:1"},"au-color-text-secondary":{"$value":"#6E6E6E","$type":"color","$description":"次要文字 · 5.10:1(原 #8C8C8C 仅 3.36:1)"},"au-color-text-tertiary":{"$value":"#595959","$type":"color","$description":"三级文字/描述 · 7.00:1(规范未定义,实现补齐)"},"au-color-text-placeholder":{"$value":"#767676","$type":"color","$description":"占位文字 · 4.54:1(原 #BFBFBF 仅 1.84:1)"},"au-color-text-inverse":{"$value":"#FFFFFF","$type":"color","$description":"反色文字(品牌色背景上的白字)"},"au-color-text-disabled":{"$value":"#BFBFBF","$type":"color","$description":"禁用态文字 · WCAG 1.4.3 对禁用控件豁免(规范定义于组件1/2.txt)"},"au-color-border":{"$value":"#E8ECF1","$type":"color","$description":"分割线/边框"},"au-color-border-strong":{"$value":"#F0F0F0","$type":"color","$description":"更强的实线边框(规范未定义,实现补齐)"},"au-color-icon-inactive":{"$value":"#8F8F8F","$type":"color"},"au-color-success":{"$value":"#2E7D0A","$type":"color","$description":"成功色 · 5.18:1(原 #52C41A 仅 2.27:1)"},"au-color-warning":{"$value":"#8C5A00","$type":"color","$description":"警告色 · 5.87:1(原 #FAAD14 仅 1.90:1)"},"au-color-error":{"$value":"#CF1322","$type":"color","$description":"错误色 · 5.57:1(原 #F5222D 仅 4.08:1)"},"au-color-info":{"$value":"#096DD9","$type":"color","$description":"信息色 · 5.00:1(原 #1890FF 仅 3.24:1)"},"au-color-mask":{"$value":"rgba(0, 0, 0, 0.45)","$type":"color","$description":"弹窗遮罩"},"au-color-mask-strong":{"$value":"rgba(0, 0, 0, 0.85)","$type":"color","$description":"图片遮罩"},"au-color-focus-ring":{"$value":"rgba(47, 84, 235, 0.2)","$type":"color","$description":"输入框聚焦外发光"}},"typography":{"au-font-family":{"$value":"\"PingFang SC\", \"Source Han Sans SC\", \"Source Han Sans\", \"Microsoft YaHei\", \"Inter\", \"DIN\", -apple-system, \"Segoe UI\", sans-serif","$type":"fontFamily"},"au-font-family-cn":{"$value":"\"PingFang SC\", \"Source Han Sans SC\", \"Source Han Sans\", \"Microsoft YaHei\", sans-serif","$type":"fontFamily"},"au-font-family-num":{"$value":"\"Inter\", \"DIN\", \"Segoe UI\", sans-serif","$type":"fontFamily"},"au-type-display-size":{"$value":"24px","$type":"fontFamily"},"au-type-display-height":{"$value":"32px","$type":"fontFamily"},"au-type-display-weight":{"$value":"600","$type":"fontFamily","$description":"Semibold:页面大标题"},"au-type-h1-size":{"$value":"20px","$type":"fontFamily"},"au-type-h1-height":{"$value":"28px","$type":"fontFamily"},"au-type-h1-weight":{"$value":"600","$type":"fontFamily","$description":"Semibold:卡片标题、弹窗标题"},"au-type-h2-size":{"$value":"16px","$type":"fontFamily"},"au-type-h2-height":{"$value":"24px","$type":"fontFamily"},"au-type-h2-weight":{"$value":"500","$type":"fontFamily","$description":"Medium:区块标题"},"au-type-body-size":{"$value":"14px","$type":"fontFamily"},"au-type-body-height":{"$value":"22px","$type":"fontFamily"},"au-type-body-weight":{"$value":"400","$type":"fontFamily","$description":"Regular:正文、表格、表单"},"au-type-caption-size":{"$value":"12px","$type":"fontFamily"},"au-type-caption-height":{"$value":"20px","$type":"fontFamily"},"au-type-caption-weight":{"$value":"400","$type":"fontFamily","$description":"Regular:辅助说明、时间戳"}},"spacing":{"au-space-4":{"$value":"4px","$type":"dimension"},"au-space-8":{"$value":"8px","$type":"dimension"},"au-space-12":{"$value":"12px","$type":"dimension"},"au-space-16":{"$value":"16px","$type":"dimension"},"au-space-20":{"$value":"20px","$type":"dimension"},"au-space-24":{"$value":"24px","$type":"dimension"},"au-space-32":{"$value":"32px","$type":"dimension"},"au-space-40":{"$value":"40px","$type":"dimension"},"au-space-48":{"$value":"48px","$type":"dimension"},"au-space-64":{"$value":"64px","$type":"dimension"}},"radius":{"au-radius-small":{"$value":"2px","$type":"dimension","$description":"标签、徽章、复选框"},"au-radius-base":{"$value":"4px","$type":"dimension","$description":"按钮、输入框、选择器"},"au-radius-medium":{"$value":"6px","$type":"dimension","$description":"表格、卡片内部元素、Popover、日期面板"},"au-radius-large":{"$value":"8px","$type":"dimension","$description":"卡片、弹窗、抽屉"}},"shadow":{"au-shadow-low":{"$value":"0 1px 4px rgba(0, 0, 0, 0.06)","$type":"shadow","$description":"卡片默认"},"au-shadow-medium":{"$value":"0 4px 12px rgba(0, 0, 0, 0.08)","$type":"shadow","$description":"卡片悬停、下拉菜单、Popover"},"au-shadow-high":{"$value":"0 8px 24px rgba(0, 0, 0, 0.12)","$type":"shadow","$description":"弹窗、抽屉"}},"motion":{"au-duration-fast":{"$value":"0.2s","$type":"other"},"au-duration-base":{"$value":"0.3s","$type":"other"},"au-duration-slow":{"$value":"0.4s","$type":"other"},"au-ease-standard":{"$value":"ease","$type":"other"},"au-ease-out":{"$value":"ease-out","$type":"other"},"au-ease-in-out":{"$value":"ease-in-out","$type":"other"}},"size":{"au-icon-size-16":{"$value":"16px","$type":"dimension"},"au-icon-size-20":{"$value":"20px","$type":"dimension"},"au-icon-size-24":{"$value":"24px","$type":"dimension"},"au-control-height-small":{"$value":"24px","$type":"dimension"},"au-control-height-default":{"$value":"32px","$type":"dimension"},"au-control-height-large":{"$value":"40px","$type":"dimension"}}}} |