颜色变亮与变暗
按百分比把任意颜色变亮、变暗、提高或降低饱和度、变灰。可选 Sass 方式、与白或黑混合、OKLCH,并得到 HEX、CSS 和 Sass 代码。
把颜色“变亮 20%”听起来很简单,但不同工具对它的理解不同。Sass 的 lighten() 是在 HSL 明度上加 20 个百分点;color.scale() 是朝白色明度移动剩余距离的 20%;浅色(tint)是混入 20% 的白色;而 OKLCH 改变的是人眼实际感知到的明度。本工具对变亮、变暗、提高饱和度、降低饱和度和变灰都用这四种方法计算,以 HEX、RGB、HSL 和 OKLCH 显示结果,给出对应的 Sass 和现代 CSS 代码,并列出每 10% 一档的所有步进。
使用方法
- 输入任意 CSS 格式的颜色。
- 选择更亮、更暗、饱和度更高或更低,或更灰,并设置幅度。
- 选择与你的代码库相符的方法:Sass HSL、Sass scale、与白/黑混合或 OKLCH。
- 复制 HEX、CSS(HEX 兼容行加相对颜色或 color-mix() 行)或 Sass 调用。
计算公式
HSL add: L′ = L + a · HSL scale: L′ = L + (100 − L) × a · mix: c′ = c + (t − c) × a · OKLCH: L′ = L + a, C′ = C × (1 ± a) · luma: Y′ = 0.2126 R + 0.7152 G + 0.0722 B
a 是幅度(HSL 加减时是百分点,其他情况是比例);c 是 RGB 的每个通道,t 是混入的白、黑或灰。变暗和降低饱和度使用对应的减法。用混合方式变灰时,使用 Rec. 709 亮度灰,权重与 CSS filter: grayscale() 相同。超出 sRGB 的 OKLCH 结果会损失色度,此时 CSS 行给出的是拟合后的颜色。
示例
Sass 的 lighten(#6b717f, 20%) 把 HSL 明度从 45.9% 提高到 65.9%,得到 #A1A5AF;darken(#b37399, 20%) 得到 #7C4465。如果改成把 #3366CC 与 20% 的白色混合,则得到 #5C85D6(51 + 204 × 0.2 = 91.8 → 92,其余同理)——在相同百分比下,比 lighten() 的变化更柔和。#3366CC 的亮度灰是 0.2126 × 51 + 0.7152 × 102 + 0.0722 × 204 = 98.5,所以用混合方式变灰的结果是 #636363。
常见问题
为什么 Sass 的 lighten() 和浅色(tint)结果不同?
lighten() 在 HSL 中工作,保持色相和饱和度,所以颜色可能变得很亮、很鲜艳;浅色则是混入白色,同时也会让颜色变淡发白。
为什么同样变亮后,黄色和蓝色看起来差别这么大?
HSL 明度并不等于感知亮度:明度 50% 的 HSL 黄色看起来比 50% 的蓝色亮得多。OKLCH 方法使用感知明度,所以相同的幅度对每种色相看起来都是同样的一档。
不用预处理器,CSS 能让颜色变亮吗?
可以。color-mix(in srgb, #3366cc, white 20%) 以及 hsl(from #3366cc h s min(l + 20, 100)) 这类相对颜色在现行浏览器中都可用;HEX 行是给旧浏览器的兼容写法。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/color-lightener/
引用此工具
kakaoCalc. (2026, November 8). 颜色变亮与变暗. https://kakao.mobile/zh/tools/color-lightener/
“颜色变亮与变暗.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/color-lightener/.