Files
aurora-admin/frameworks/ResultVariants.html
T
aurora-admin 382ca79b66 v1.4.0: 组件层全面令牌化(设计系统根基修复)
问题
- 79 个组件的 844 个颜色属性里,只有 2 个(0.2%)引用令牌,
  788 个(93.4%)硬编码 hex
- 后果:改令牌组件不跟着变、主题定制器对组件无效、For Agents 页写的
  「所有色值必须取自 au-* 变量」形同虚设
- 这是本项目第五次「声称≠实现」,且动摇了设计系统的根本

两层令牌化(此前只改了从未被加载的文件,走了弯路)
- 组件样式表 frameworks/*.css:915 处 / 78 文件
- 演示页内嵌 <style>(实际生效的样式层):287 处 / 51 文件
- 内嵌样式层是决定性的:演示页只 link colors_and_type.css + 自己的 CSS,
  而多数页面把关键样式写在 <style> 块里 —— 只改 CSS 文件不生效

安全策略
- 只替换颜色属性值位置的 hex(color/background*/border*/outline*/fill/stroke)
- 跳过 rgba()/渐变/url() 复合值;不动 SVG 属性与 JS 数据(色板数组)
- 歧义色值按属性语义消解(#FFFFFF 作 color→text-inverse,作 background→card-bg)
- 幂等,可重复运行

补齐令牌语义(71 → 74)
- --au-color-text-tertiary #595959(规范未定义、实现补齐,7.00:1)
- --au-color-text-disabled #BFBFBF(规范定义于组件1/2.txt;WCAG 1.4.3 豁免)
- --au-color-border-strong #F0F0F0(规范未定义、实现补齐)
- 同步 legacy 别名;修复 colors_and_type.css 一处重复注释起始行

修复
- Countdown 首帧空白:setInterval(render, 1000) 首次执行要等 1 秒,
  期间容器为空。改为定义函数后立即执行一次再挂 interval

验证(本轮核心验收)
- 逐组件验证「改令牌 → 元素是否跟着变」:79/79 全部响应
- 过程中修正两处测量方法缺陷(初测 40/79 是误报):
  ① 选择器 .demo * 在无 .demo 容器的页面抓不到元素
  ② 探针令牌选错 —— Breadcrumb 用 text-tertiary 而只改了 text-body
- CSS 结构完整:158 个文件括号平衡、var(--*) 引用全部有定义
- 回归保持 100%:961 断言 / 0 失败 / 79 页全通过,三次连跑一致
2026-09-11 17:29:30 +08:00

36 lines
1.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Aurora Admin · ResultVariants(普通 H5)</title>
<link rel="stylesheet" href="../.design_library/aurora-admin/colors_and_type.css" />
<link rel="stylesheet" href="ResultVariants.css" />
<style>body{margin:0;padding:24px;background: var(--au-color-page-bg);display:flex;gap:16px;flex-wrap:wrap;}
.aa-card{background: var(--au-color-card-bg);border: 1px solid var(--au-color-border);border-radius:8px;width:360px;}</style>
</head>
<body>
<div class="aa-card"><div class="aa-result is-success" role="status" data-i="0"></div></div>
<div class="aa-card"><div class="aa-result is-error" role="status" data-i="1"></div></div>
<div class="aa-card"><div class="aa-result is-warning" role="status" data-i="2"></div></div>
<div class="aa-card"><div class="aa-result is-info" role="status" data-i="3"></div></div>
<script>
var DATA = [
{ icon: '✓', title: '提交成功', desc: '您的申请已提交,我们将在 1 个工作日内处理。' },
{ icon: '✕', title: '提交失败', desc: '表单校验未通过,请检查后重新提交。' },
{ icon: '!', title: '请注意', desc: '部分商品库存不足,已自动移除。' },
{ icon: 'i', title: '已保存草稿', desc: '内容已存为草稿,可稍后继续编辑。' }
];
document.querySelectorAll('.aa-result').forEach(function (el, i) {
var d = DATA[i];
el.innerHTML = '<div class="aa-result-icon">' + d.icon + '</div>' +
'<div class="aa-result-title">' + d.title + '</div>' +
'<div class="aa-result-desc">' + d.desc + '</div>' +
'<div class="aa-result-actions" role="status"><button class="aa-result-btn primary" role="status">查看详情</button>' +
'<button class="aa-result-btn" role="status">返回列表</button></div>';
});
</script>
</body>
</html>