跳转到正文

颜色混合器

像 CSS color-mix() 一样,按任意比例在指定颜色空间中混合两种颜色。输入任意 CSS 格式的两种颜色,将第二种颜色的占比设为 0 到 100 percent,并选择 OKLab、OKLCH、Lab、LCH、sRGB、linear sRGB、Display P3、HSL、HWB 或 XYZ。结果包括 HEX、RGB、HSL 和 OKLCH 值,以及可直接用于样式表的 color-mix() 表达式。

重置

常见问题

混合比例如何计算?

比例表示颜色 2 在混合结果中的占比。0% 会返回颜色 1,100% 会返回颜色 2,50% 则会在所选空间中得到两者的中间值。这与 color-mix(in space, color1 (100 - p)%, color2 p%) 的计算方式一致。

应该选择哪种颜色空间?

默认的 OKLab 符合感知均匀性,可避免混合结果发浑或变暗。sRGB 像旧版浏览器和 Sass 一样混合经过伽马编码的通道,因此高饱和度颜色的混合结果会更暗、更灰。Lab 是较早的 CIE 感知空间,表现与 OKLab 相似,但蓝色的均匀性较差。

基于色相的空间有什么效果?

OKLCH、LCH、HSL 和 HWB 会沿色轮较短的弧线插值色相,这是 CSS 默认方式,因此中间色会保留饱和度,可能比任一输入颜色都鲜艳。如果其中一种颜色是没有色相的中性灰,则会使用另一种颜色的色相。

linear sRGB 和 XYZ 有什么用途?

两者都会像光束重叠那样线性混合光强,因此中间色看起来比在 sRGB 中更亮。它们适用于基于物理原理的效果,以及匹配模糊或混合像素的外观。

如何处理透明度?

与 CSS color-mix() 一样,混合器使用预乘 alpha 进行插值,因此透明颜色不会让混合结果偏向黑色。alpha 值本身也会按相同比例插值,并显示在 8 位十六进制代码中,以及 CSS 函数的斜杠之后。

可以使用哪些输入格式?

支持带 # 或不带 # 的十六进制代码、CSS 颜色名称、rgb()、hsl()、hwb()、lab()、lch()、oklab()、oklch()、color()(例如 display-p3)等颜色空间,以及 cmyk(),可任意组合使用。每种颜色最多可包含 100 个字符。

结果超出 sRGB 色域时会怎样?

在 Display P3、OKLCH 或 LCH 中混合可能会产生 sRGB 无法显示的颜色。此时,HEX、RGB 和 HSL 会使用 CSS Color 4 算法映射到 sRGB,结果旁也会显示提示;OKLCH 值则保留未经映射的颜色。

如何使用 color-mix() 表达式?

将其粘贴到任何接受颜色值的 CSS 属性中。表达式会通过十六进制代码指定输入颜色;对于广色域输入,则通过 oklch() 指定,浏览器会据此重新计算相同的混合结果。所有当前版本的 Chrome、Edge、Firefox 和 Safari 都支持 color-mix()。

结果有多精确?

比例为整数百分比,混合结果由 culori 库以全精度计算。RGB 通道四舍五入为整数,HSL 百分比保留两位小数,OKLCH 亮度和色度保留四位小数,因此不同浏览器最后一位可能相差一个单位。

如何在两种颜色之间生成多个步长?

使用不同的比例运行混合器,例如 25%、50% 和 75%。如需生成从原色到白色、黑色或灰色的完整色阶,颜色淡色、暗色和色调生成器可在一张表格中显示所有步长。

关于 OneClick Pro

OneClick Pro 是一个免费的工具集合,包含超过 150 种网络工具,助你处理日常工作:转换图像和单位、格式化和验证代码、检查域名和 SEO,以及处理文本、日期和数字。所有工具均可免注册、免订阅使用;你输入的内容仅用于计算结果,绝不会被存储。你可以将它用作处理临时任务的快捷工具箱,也可以收藏每天都会用到的工具。