#0D9488rgb(13, 148, 136) · hsl(175, 84%, 32%)rgb(13, 148, 136)hsl(175, 84%, 32%)关于 颜色转换器
在设计与前端之间来回传递颜色时,格式不统一是最常见的摩擦:设计稿给的是十六进制,CSS 需要 RGB 或 HSL,而做渐变与悬浮态时又要回到 HSL 调明度。颜色转换工具的价值在于把同一个颜色在几种表示之间即时互转,避免手工换算时把某一位算错。 几种表示各有用途。十六进制是屏幕配色的通用写法,前两位红、中间两位绿、后两位蓝,每通道 0 到 255;RGB 用三个十进制数表达同样的信息,便于程序计算;HSL 用色相、饱和度、亮度三个维度描述,色相是 0 到 360 度的色环角度,因此调整明暗或降低饱和度时用 HSL 更直观;带透明度的场景还需要第四个分量,通常写成八位十六进制(末尾两位表示不透明度)或 rgba 与 hsla 函数。 使用要点:做「同一色系的不同深浅」时,改 HSL 的亮度分量比逐个手改十六进制更可靠,也更容易保持色相一致;做「悬停时略微变暗」这类效果时,固定色相与饱和度只调亮度,视觉上不会串色。十六进制与 RGB 互相转换时留意每通道的取值范围,超出一百二十七的五官感受容易算错,使用工具比自己换算更稳。若要在不同色域间迁移(例如把 sRGB 的颜色放进支持广色域的显示环境),转换之外还要考虑色域映射,单纯换算数值可能产生可见偏色。 边界与限制:三位缩写形式(如井号 abc)等价于每位重复一遍,因此井号一二三四这类四位写法是非法值,浏览器会静默丢弃整条声明,不报错也不回退,排查样式不生效时容易忽略这一条。命名颜色只有一百多个,且 transparent 与 currentColor 是关键字而不是颜色值:用脚本读取计算样式时,前者会被解析成全零的透明值,后者会解析成当前文字颜色,做颜色比对时要单独处理。八位十六进制与 rgba 的语义方向相反——前者把不透明度放在末尾,顺序写错会得到完全不同的颜色,跨项目协作时应统一一种写法并写进规范。此外十六进制与 RGB 都不携带色彩空间信息,默认按 sRGB 理解,混用广色域值会让不同设备上的观感不一致。 数据与隐私:颜色本身不含个人信息,它是本组工具里隐私敏感度最低的一个。本工具仍在浏览器内完成全部换算,不发送请求,因此即使在内网环境或离线状态下也可放心使用。
做无障碍与可读性检查时,颜色转换只是第一步:文字与背景的对比度需要按亮度公式计算,浅色主题下常见的问题是把中灰文字放在浅灰底上,计算后对比度刚好低于门槛。可以先在 HSL 里调整亮度分量把对比度抬到达标,再转回十六进制落到样式表;同理,做暗色主题时不要简单反相,反相会同时改变饱和度与色相,视觉上往往显得脏,正确做法是固定色相、降低饱和度并重新分配亮度。把这些换算连同设计令牌一起维护,长期看能省下大量返工。
实现原理
十六进制把三个通道各用两位十六进制表示,因此井号后每两位对应一个通道;RGB 是同样的三个十进制数;HSL 换了一套坐标——色相是色环角度、饱和度与明度是比例,因此「保持色相只改明度」能得到同色系的不同深浅。三类表示都不携带色彩空间信息,默认按 sRGB 理解。
#0d9488rgb(13, 148, 136)|hsl(175, 84%, 32%)使用方法
- 打开「颜色转换器」
- 选择源格式与目标格式
- 根据需要调整输出选项
- 点击「转换」按钮,结果实时显示
- 复制或导出结果
使用场景
- 对齐设计稿 — 把设计师给的 HEX 转成 CSS 里要用的 rgb 或 hsl 值。
- 加透明度 — 把不透明的颜色转成 rgba,调出半透明遮罩或阴影。
- 微调色相 — 用 HSL 模式调整色相和明度,快速生成同色系的深浅变体。
- 统一变量 — 把散落的颜色统一成一种格式,方便录入设计系统的色彩变量。
- 核对预览 — 粘贴未知颜色值,实时看到色块确认是否为想要的颜色。
常见问题
支持简写 HEX 吗?
支持。三位简写如 #f00 会被识别并展开成 #ff0000,四位带透明度的简写(#f008)同样可解析。
HEX 转 HSL 会丢精度吗?
HEX 每通道只有 256 级,转成 HSL 后再转回可能有 1 个数值的舍入误差,属正常现象,肉眼通常无法分辨。
透明度怎么表示?
RGBA/HSLA 里 alpha 用 0 到 1 的小数;八位 HEX 则用最后两位十六进制表示透明度,工具会自动对应换算。
支持 CSS 颜色名吗?
常见的命名颜色(如 red、rebeccapurple)通常可作为输入识别,输出则以数值格式为主,便于精确使用。
转出来会有色差吗?
各表示法描述的是同一个颜色,转换本身无色差;真正的差距来自显示器色域与色彩配置文件,建议在目标设备上再核对一次。
想做纯数字进制换算怎么办?
本工具专注颜色格式;若只是想把十六进制数转十进制等纯数字换算,请用本站的进制转换工具。
为什么我粘入的 oklch() 或 color(display-p3 ...) 解析不了?
那是因为本工具面向的是标准 sRGB 色域的 HEX / RGB / HSL / HSV,而 oklch() 和 color() 函数是 CSS Color 4 里定义的较新语法,很多设计稿和旧浏览器仍未支持。若你的设计稿给了 Oklab / Oklch 或广色域 display-p3 值,建议先在支持这些语法的环境里确认颜色,再用常规工具转成 sRGB 的 HEX 使用;或者直接核对设计稿中同时给出的 sRGB 近似值。若只是想知道颜色长什么样,也可先把预览色块结果作为参考,再手动转为目标格式。
HEX 转 HSL 后颜色看起来不一样?
数值等价但感知不同是正常现象:HEX 是 sRGB 通道值,HSL 是人感知模型,同一颜色两种表示在饱和度感知上会有偏差。另外 sRGB 的 HSL 与 OKLCH/Display-P3 的 HSL 完全不同,确认你对比的是同一色彩空间。