# check:contrast 与 check:headings —— 空闲机器复跑(无并发 E2E/Lighthouse) # 生成于 2026-09-21T21:51:32Z ## npm run check:contrast > ruixin-website-react@1.0.0-phase1 check:contrast > tsx scripts/utils/check-color-contrast.ts 🎨 LIGHT 主题(:root,246 个令牌) 正文层级 × 页面底色 ✅ --color-text-primary on --color-bg-primary — 19.34:1 ✅ --color-text-primary on --color-bg-secondary — 18.48:1 ✅ --color-text-primary on --color-bg-tertiary — 17.65:1 ✅ --color-text-secondary on --color-bg-primary — 10.35:1 ✅ --color-text-secondary on --color-bg-secondary — 9.90:1 ✅ --color-text-tertiary on --color-bg-primary — 7.58:1 ✅ --color-text-muted on --color-bg-primary — 4.76:1 品牌红文字通道(text-brand-ink 及 hover 档) ✅ --color-brand-ink on --color-bg-primary — 5.84:1 ✅ --color-brand-ink on --color-bg-secondary — 5.58:1 ✅ --color-brand-ink on --color-brand-bg — 5.35:1 ✅ --color-brand-ink-hover on --color-bg-primary — 7.87:1 ✅ --color-brand-ink-hover on --color-brand-bg — 7.20:1 ✅ #FFFFFF on --color-brand — 5.84:1 alpha 修饰正文(带 /80 等修饰类的正文) ✅ --color-text-secondary on --color-bg-primary @80% — 5.74:1 大号装饰文本(text-text-hint)× 各级卡片底色 ✅ --color-text-hint on --color-bg-primary — 3.41:1 ✅ --color-text-hint on --color-bg-secondary — 3.26:1 ✅ --color-text-hint on --color-bg-tertiary — 3.12:1 ✅ --color-text-hint on --color-bg-elevated — 3.41:1 深色区块(不随主题翻转的独立 token) ✅ --color-dark-text-primary on --color-dark-bg — 18.48:1 ✅ --color-dark-text-secondary on --color-dark-bg — 13.03:1 ✅ --color-dark-text-muted on --color-dark-bg — 7.54:1 ✅ --color-brand-section-text on --color-brand-section — 8.93:1 🎨 DARK 主题(html[data-theme='dark'],246 个令牌) 正文层级 × 页面底色 ✅ --color-text-primary on --color-bg-primary — 18.48:1 ✅ --color-text-primary on --color-bg-secondary — 17.69:1 ✅ --color-text-primary on --color-bg-tertiary — 16.55:1 ✅ --color-text-secondary on --color-bg-primary — 13.03:1 ✅ --color-text-secondary on --color-bg-secondary — 12.47:1 ✅ --color-text-tertiary on --color-bg-primary — 7.54:1 ✅ --color-text-muted on --color-bg-primary — 7.54:1 品牌红文字通道(text-brand-ink 及 hover 档) ✅ --color-brand-ink on --color-bg-primary — 6.99:1 ✅ --color-brand-ink on --color-bg-secondary — 6.69:1 ✅ --color-brand-ink on --color-brand-bg — 6.27:1 ✅ --color-brand-ink-hover on --color-bg-primary — 10.19:1 ✅ --color-brand-ink-hover on --color-brand-bg — 9.13:1 ✅ #FFFFFF on --color-brand — 5.84:1 alpha 修饰正文(带 /80 等修饰类的正文) ✅ --color-text-secondary on --color-bg-primary @80% — 8.52:1 大号装饰文本(text-text-hint)× 各级卡片底色 ✅ --color-text-hint on --color-bg-primary — 7.54:1 ✅ --color-text-hint on --color-bg-secondary — 7.22:1 ✅ --color-text-hint on --color-bg-tertiary — 6.75:1 ✅ --color-text-hint on --color-bg-elevated — 6.75:1 深色区块(不随主题翻转的独立 token) ✅ --color-dark-text-primary on --color-dark-bg — 18.48:1 ✅ --color-dark-text-secondary on --color-dark-bg — 13.03:1 ✅ --color-dark-text-muted on --color-dark-bg — 7.54:1 ✅ --color-brand-section-text on --color-brand-section — 8.93:1 📊 合计 44 组:✅ 44 / ❌ 0 不达标 / ⚠️ 0 令牌缺失 ✅ 全部令牌配对满足 WCAG 2.1 AA ## npm run check:headings > ruixin-website-react@1.0.0-phase1 check:headings > tsx scripts/utils/check-heading-hierarchy.ts 🚀 启动预览服务... (node:52518) [DEP0190] DeprecationWarning: Passing args to a child process with shell option true can lead to security vulnerabilities, as the arguments are not escaped, only concatenated. (Use `node --trace-deprecation ...` to show where the warning was created) 🔍 检查页面标题层级... ✅ 首页 (0 个问题) ✅ 关于我们 (0 个问题) ✅ 产品中心 (0 个问题) ✅ 产品详情-ERP (0 个问题) ✅ 解决方案 (0 个问题) ✅ 解决方案详情-制造 (0 个问题) ✅ 服务列表 (0 个问题) ✅ 服务详情-软件开发 (0 个问题) ✅ 新闻列表 (0 个问题) ✅ 联系我们 (0 个问题) 📊 检查摘要 扫描页面: 10 通过页面: 10 失败页面: 0 问题总数: 0 📝 详细报告已保存: /Users/zhangxiang/Codes/Novalon/novalon-website/heading-hierarchy-report.json # check:contrast 与 check:headings —— 最终树空闲复跑 # 生成于 2026-09-21T22:47:59Z ## npm run check:contrast > ruixin-website-react@1.0.0-phase1 check:contrast > tsx scripts/utils/check-color-contrast.ts 🎨 LIGHT 主题(:root,246 个令牌) 正文层级 × 页面底色 ✅ --color-text-primary on --color-bg-primary — 19.34:1 ✅ --color-text-primary on --color-bg-secondary — 18.48:1 ✅ --color-text-primary on --color-bg-tertiary — 17.65:1 ✅ --color-text-secondary on --color-bg-primary — 10.35:1 ✅ --color-text-secondary on --color-bg-secondary — 9.90:1 ✅ --color-text-tertiary on --color-bg-primary — 7.58:1 ✅ --color-text-muted on --color-bg-primary — 4.76:1 品牌红文字通道(text-brand-ink 及 hover 档) ✅ --color-brand-ink on --color-bg-primary — 5.84:1 ✅ --color-brand-ink on --color-bg-secondary — 5.58:1 ✅ --color-brand-ink on --color-brand-bg — 5.35:1 ✅ --color-brand-ink-hover on --color-bg-primary — 7.87:1 ✅ --color-brand-ink-hover on --color-brand-bg — 7.20:1 ✅ #FFFFFF on --color-brand — 5.84:1 alpha 修饰正文(带 /80 等修饰类的正文) ✅ --color-text-secondary on --color-bg-primary @80% — 5.74:1 大号装饰文本(text-text-hint)× 各级卡片底色 ✅ --color-text-hint on --color-bg-primary — 3.41:1 ✅ --color-text-hint on --color-bg-secondary — 3.26:1 ✅ --color-text-hint on --color-bg-tertiary — 3.12:1 ✅ --color-text-hint on --color-bg-elevated — 3.41:1 深色区块(不随主题翻转的独立 token) ✅ --color-dark-text-primary on --color-dark-bg — 18.48:1 ✅ --color-dark-text-secondary on --color-dark-bg — 13.03:1 ✅ --color-dark-text-muted on --color-dark-bg — 7.54:1 ✅ --color-brand-section-text on --color-brand-section — 8.93:1 🎨 DARK 主题(html[data-theme='dark'],246 个令牌) 正文层级 × 页面底色 ✅ --color-text-primary on --color-bg-primary — 18.48:1 ✅ --color-text-primary on --color-bg-secondary — 17.69:1 ✅ --color-text-primary on --color-bg-tertiary — 16.55:1 ✅ --color-text-secondary on --color-bg-primary — 13.03:1 ✅ --color-text-secondary on --color-bg-secondary — 12.47:1 ✅ --color-text-tertiary on --color-bg-primary — 7.54:1 ✅ --color-text-muted on --color-bg-primary — 7.54:1 品牌红文字通道(text-brand-ink 及 hover 档) ✅ --color-brand-ink on --color-bg-primary — 6.99:1 ✅ --color-brand-ink on --color-bg-secondary — 6.69:1 ✅ --color-brand-ink on --color-brand-bg — 6.27:1 ✅ --color-brand-ink-hover on --color-bg-primary — 10.19:1 ✅ --color-brand-ink-hover on --color-brand-bg — 9.13:1 ✅ #FFFFFF on --color-brand — 5.84:1 alpha 修饰正文(带 /80 等修饰类的正文) ✅ --color-text-secondary on --color-bg-primary @80% — 8.52:1 大号装饰文本(text-text-hint)× 各级卡片底色 ✅ --color-text-hint on --color-bg-primary — 7.54:1 ✅ --color-text-hint on --color-bg-secondary — 7.22:1 ✅ --color-text-hint on --color-bg-tertiary — 6.75:1 ✅ --color-text-hint on --color-bg-elevated — 6.75:1 深色区块(不随主题翻转的独立 token) ✅ --color-dark-text-primary on --color-dark-bg — 18.48:1 ✅ --color-dark-text-secondary on --color-dark-bg — 13.03:1 ✅ --color-dark-text-muted on --color-dark-bg — 7.54:1 ✅ --color-brand-section-text on --color-brand-section — 8.93:1 📊 合计 44 组:✅ 44 / ❌ 0 不达标 / ⚠️ 0 令牌缺失 ✅ 全部令牌配对满足 WCAG 2.1 AA ## npm run check:headings > ruixin-website-react@1.0.0-phase1 check:headings > tsx scripts/utils/check-heading-hierarchy.ts 🚀 启动预览服务... (node:61061) [DEP0190] DeprecationWarning: Passing args to a child process with shell option true can lead to security vulnerabilities, as the arguments are not escaped, only concatenated. (Use `node --trace-deprecation ...` to show where the warning was created) 🔍 检查页面标题层级... ✅ 首页 (0 个问题) ✅ 关于我们 (0 个问题) ✅ 产品中心 (0 个问题) ✅ 产品详情-ERP (0 个问题) ✅ 解决方案 (0 个问题) ✅ 解决方案详情-制造 (0 个问题) ✅ 服务列表 (0 个问题) ✅ 服务详情-软件开发 (0 个问题) ✅ 新闻列表 (0 个问题) ✅ 联系我们 (0 个问题) 📊 检查摘要 扫描页面: 10 通过页面: 10 失败页面: 0 问题总数: 0 📝 详细报告已保存: /Users/zhangxiang/Codes/Novalon/novalon-website/heading-hierarchy-report.json ## npm run check:brand-token > ruixin-website-react@1.0.0-phase1 check:brand-token > tsx scripts/utils/check-brand-text-token.ts 🔴 Two-Channel Red Rule 检查 — 文字通道禁用 --color-brand 📊 检查摘要 扫描目录: src 扫描文件: 414 违规处数: 0 ✅ 文字通道全部使用 --color-brand-ink,双通道契约未被违反! # ===== 最终树空闲复跑(chain3,含门禁脚本进程回收修复后)2026-09-22T02:42:16Z ===== ## npm run check:contrast (EXIT=0) ✅ --color-brand-ink on --color-bg-primary — 6.99:1 ✅ --color-brand-ink on --color-bg-secondary — 6.69:1 ✅ --color-brand-ink on --color-brand-bg — 6.27:1 ✅ --color-brand-ink-hover on --color-bg-primary — 10.19:1 ✅ --color-brand-ink-hover on --color-brand-bg — 9.13:1 ✅ #FFFFFF on --color-brand — 5.84:1 alpha 修饰正文(带 /80 等修饰类的正文) ✅ --color-text-secondary on --color-bg-primary @80% — 8.52:1 大号装饰文本(text-text-hint)× 各级卡片底色 ✅ --color-text-hint on --color-bg-primary — 7.54:1 ✅ --color-text-hint on --color-bg-secondary — 7.22:1 ✅ --color-text-hint on --color-bg-tertiary — 6.75:1 ✅ --color-text-hint on --color-bg-elevated — 6.75:1 深色区块(不随主题翻转的独立 token) ✅ --color-dark-text-primary on --color-dark-bg — 18.48:1 ✅ --color-dark-text-secondary on --color-dark-bg — 13.03:1 ✅ --color-dark-text-muted on --color-dark-bg — 7.54:1 ✅ --color-brand-section-text on --color-brand-section — 8.93:1 📊 合计 44 组:✅ 44 / ❌ 0 不达标 / ⚠️ 0 令牌缺失 ✅ 全部令牌配对满足 WCAG 2.1 AA ## npm run check:headings (EXIT=0) (node:58761) [DEP0190] DeprecationWarning: Passing args to a child process with shell option true can lead to security vulnerabilities, as the arguments are not escaped, only concatenated. (Use `node --trace-deprecation ...` to show where the warning was created) 🔍 检查页面标题层级... ✅ 首页 (0 个问题) ✅ 关于我们 (0 个问题) ✅ 产品中心 (0 个问题) ✅ 产品详情-ERP (0 个问题) ✅ 解决方案 (0 个问题) ✅ 解决方案详情-制造 (0 个问题) ✅ 服务列表 (0 个问题) ✅ 服务详情-软件开发 (0 个问题) ✅ 新闻列表 (0 个问题) ✅ 联系我们 (0 个问题) 📊 检查摘要 扫描页面: 10 通过页面: 10 失败页面: 0 问题总数: 0 📝 详细报告已保存: /Users/zhangxiang/Codes/Novalon/novalon-website/heading-hierarchy-report.json ## npm run check:brand-token (EXIT=0) > ruixin-website-react@1.0.0-phase1 check:brand-token > tsx scripts/utils/check-brand-text-token.ts 🔴 Two-Channel Red Rule 检查 — 文字通道禁用 --color-brand 📊 检查摘要 扫描目录: src 扫描文件: 414 违规处数: 0 ✅ 文字通道全部使用 --color-brand-ink,双通道契约未被违反! # ===== 最终树复跑(chain4:404 水印 /80 + global-error 兜底页修复后)2026-09-22T03:19:50Z ===== ## npm run check:contrast (EXIT=0) ✅ --color-brand-ink on --color-bg-primary — 6.99:1 ✅ --color-brand-ink on --color-bg-secondary — 6.69:1 ✅ --color-brand-ink on --color-brand-bg — 6.27:1 ✅ --color-brand-ink-hover on --color-bg-primary — 10.19:1 ✅ --color-brand-ink-hover on --color-brand-bg — 9.13:1 ✅ #FFFFFF on --color-brand — 5.84:1 alpha 修饰正文(带 /80 等修饰类的正文) ✅ --color-text-secondary on --color-bg-primary @80% — 8.52:1 大号装饰文本(text-text-hint)× 各级卡片底色 ✅ --color-text-hint on --color-bg-primary — 7.54:1 ✅ --color-text-hint on --color-bg-secondary — 7.22:1 ✅ --color-text-hint on --color-bg-tertiary — 6.75:1 ✅ --color-text-hint on --color-bg-elevated — 6.75:1 深色区块(不随主题翻转的独立 token) ✅ --color-dark-text-primary on --color-dark-bg — 18.48:1 ✅ --color-dark-text-secondary on --color-dark-bg — 13.03:1 ✅ --color-dark-text-muted on --color-dark-bg — 7.54:1 ✅ --color-brand-section-text on --color-brand-section — 8.93:1 📊 合计 44 组:✅ 44 / ❌ 0 不达标 / ⚠️ 0 令牌缺失 ✅ 全部令牌配对满足 WCAG 2.1 AA ## npm run check:brand-token (EXIT=0) > ruixin-website-react@1.0.0-phase1 check:brand-token > tsx scripts/utils/check-brand-text-token.ts 🔴 Two-Channel Red Rule 检查 — 文字通道禁用 --color-brand 📊 检查摘要 扫描目录: src 扫描文件: 416 违规处数: 0 ✅ 文字通道全部使用 --color-brand-ink,双通道契约未被违反! ## npm run check:headings (EXIT=0) (node:41979) [DEP0190] DeprecationWarning: Passing args to a child process with shell option true can lead to security vulnerabilities, as the arguments are not escaped, only concatenated. (Use `node --trace-deprecation ...` to show where the warning was created) 🔍 检查页面标题层级... ✅ 首页 (0 个问题) ✅ 关于我们 (0 个问题) ✅ 产品中心 (0 个问题) ✅ 产品详情-ERP (0 个问题) ✅ 解决方案 (0 个问题) ✅ 解决方案详情-制造 (0 个问题) ✅ 服务列表 (0 个问题) ✅ 服务详情-软件开发 (0 个问题) ✅ 新闻列表 (0 个问题) ✅ 联系我们 (0 个问题) 📊 检查摘要 扫描页面: 10 通过页面: 10 失败页面: 0 问题总数: 0 📝 详细报告已保存: /Users/zhangxiang/Codes/Novalon/novalon-website/heading-hierarchy-report.json # ===== 最终树复跑(chain6:header 函数式 setState + 移动端性能计时修复后)2026-09-22T03:51:41Z ===== ## npm run check:contrast (EXIT=0) ✅ --color-brand-ink-hover on --color-brand-bg — 9.13:1 ✅ #FFFFFF on --color-brand — 5.84:1 alpha 修饰正文(带 /80 等修饰类的正文) ✅ --color-text-secondary on --color-bg-primary @80% — 8.52:1 大号装饰文本(text-text-hint)× 各级卡片底色 ✅ --color-text-hint on --color-bg-primary — 7.54:1 ✅ --color-text-hint on --color-bg-secondary — 7.22:1 ✅ --color-text-hint on --color-bg-tertiary — 6.75:1 ✅ --color-text-hint on --color-bg-elevated — 6.75:1 深色区块(不随主题翻转的独立 token) ✅ --color-dark-text-primary on --color-dark-bg — 18.48:1 ✅ --color-dark-text-secondary on --color-dark-bg — 13.03:1 ✅ --color-dark-text-muted on --color-dark-bg — 7.54:1 ✅ --color-brand-section-text on --color-brand-section — 8.93:1 📊 合计 44 组:✅ 44 / ❌ 0 不达标 / ⚠️ 0 令牌缺失 ✅ 全部令牌配对满足 WCAG 2.1 AA ## npm run check:brand-token (EXIT=0) > ruixin-website-react@1.0.0-phase1 check:brand-token > tsx scripts/utils/check-brand-text-token.ts 🔴 Two-Channel Red Rule 检查 — 文字通道禁用 --color-brand 📊 检查摘要 扫描目录: src 扫描文件: 416 违规处数: 0 ✅ 文字通道全部使用 --color-brand-ink,双通道契约未被违反! ## npm run check:headings (EXIT=0) ✅ 首页 (0 个问题) ✅ 关于我们 (0 个问题) ✅ 产品中心 (0 个问题) ✅ 产品详情-ERP (0 个问题) ✅ 解决方案 (0 个问题) ✅ 解决方案详情-制造 (0 个问题) ✅ 服务列表 (0 个问题) ✅ 服务详情-软件开发 (0 个问题) ✅ 新闻列表 (0 个问题) ✅ 联系我们 (0 个问题) 📊 检查摘要 扫描页面: 10 通过页面: 10 失败页面: 0 问题总数: 0 📝 详细报告已保存: /Users/zhangxiang/Codes/Novalon/novalon-website/heading-hierarchy-report.json