iter(g295): 新增表面阶梯审计并修正悬停底
This commit is contained in:
@@ -83,10 +83,9 @@ function parseColor(text) {
|
||||
return { r: ch(parts[0]), g: ch(parts[1]), b: ch(parts[2]), a: parts[3] === undefined ? 1 : parseFloat(parts[3]) };
|
||||
}
|
||||
|
||||
/*** 作用:求表达式的值:递归替换 var(--x),支持 alpha 变量与 color-mix 单层混色
|
||||
* 只覆盖令牌文件里真实用到的语法(in srgb + 两个颜色 + 一个百分比),不做通用 CSS 求值器——
|
||||
* 遇到认不出的表达式直接抛错,宁可红也不静默算错对比度。 ***/
|
||||
function resolve(expr, vars, depth = 0) {
|
||||
// 只覆盖令牌文件里真实用到的语法(in srgb + 两个颜色 + 一个百分比),不做通用 CSS 求值器——遇到认不出的表达式直接抛错,宁可红也不静默算错
|
||||
/*** 作用:求表达式的值:递归替换 var(--x),支持 alpha 变量与 color-mix 单层混色 ***/
|
||||
export function resolve(expr, vars, depth = 0) {
|
||||
if (depth > 12) throw new Error(`令牌引用层级过深:${expr}`);
|
||||
const text = expr.trim();
|
||||
const color = parseColor(text);
|
||||
@@ -167,7 +166,7 @@ function luminance(c) {
|
||||
}
|
||||
|
||||
/*** 作用:两色对比度(1~21),前景先合成到底色上再算;半透明底由调用方压到页面底色上 ***/
|
||||
function ratio(fg, bg) {
|
||||
export function ratio(fg, bg) {
|
||||
const solid = bg;
|
||||
const f = over(fg, solid);
|
||||
const l1 = Math.max(luminance(f), luminance(solid));
|
||||
|
||||
Reference in New Issue
Block a user