返回首页 King0fLight

实验室 LAB

颜色够不够,
算一下就知道.

这个站改浅色主题时,我以为"能看清"就够了。把比值算出来才发现,邮箱那行粉色标签在白底上只有 2.56:1,而 12px 的小字要求是 4.5:1。肉眼真的量不出来,所以有了下面这个计算器。

对比度计算器

—: 1

正文 AA 4.5:1 · 待计算 大字 AA 3:1 · 待计算 正文 AAA 7:1 · 待计算
King0fLight 这段示例文字会跟着上面两个颜色实时变化。字号 14px,和站内小字接近。

算法是 WCAG 2.1 的定义:先把 sRGB 转成线性值算相对亮度,再取 (L1 + 0.05) / (L2 + 0.05)。判定线用官方三档——正文 4.5:1、大字 3:1、AAA 7:1。计算全在浏览器里完成,不发送任何请求。

上面那几个"旧稿"预设是这个站真实踩过的值:把深色主题那套高饱和强调色直接搬到白底上,比值立刻掉到 2.5~3.3:1。深色下同样的颜色却有 9:1 左右,所以问题在浅色主题这边——强调色也得跟着主题换一套。

缓动曲线

旧版网站使用过这条曲线:cubic-bezier(0.16, 1, 0.3, 1)——快出缓停,落得很稳。改下面四个数看看别的手感,两枚点同时出发:空心走线性,实心走你调的曲线。

进度 0.00

缓动用牛顿迭代从贝塞尔求值:先解出时间 t 对应的贝塞尔参数,再算进度。空心点是线性参考——两条线的差距就是「手感」本身。「过冲一点」的 y1 超过 1,进度会先冲过终点再回来。