颜色转换器/ HEX · RGB · HSL · HSV · CMYK
HEX、RGB、HSL、HSV、CMYK 五种颜色格式互转,带可视化拾色器和色阶预览,纯前端处理。
HEX
色阶
HEX
#3b82f6
RGB
rgb(59, 130, 246)
HSL
hsl(217, 91%, 60%)
HSV
hsv(217, 76%, 96%)
CMYK
cmyk(76%, 47%, 0%, 4%)
这个工具有帮到你吗?
代码示例
CSS / Tailwind
/* CSS custom properties */
:root {
--color-primary: #3b82f6; /* HEX */
--color-primary-rgb: 59, 130, 246; /* RGB values only */
}
/* Usage */
.button {
background: var(--color-primary);
color: hsl(210, 40%, 98%); /* HSL */
border: 1px solid rgb(59 130 246 / 30%); /* CSS 4 syntax */
}
/* Tailwind config */
// tailwind.config.js
colors: { brand: '#3b82f6' }JavaScript
// HEX → RGB
function hexToRgb(hex) {
const n = parseInt(hex.replace('#', ''), 16);
return { r: (n >> 16) & 255, g: (n >> 8) & 255, b: n & 255 };
}
// RGB → HEX
function rgbToHex(r, g, b) {
return '#' + [r, g, b]
.map(v => v.toString(16).padStart(2, '0'))
.join('');
}
// npm: chroma-js (full-featured)
import chroma from 'chroma-js';
chroma('#3b82f6').rgb() // [59, 130, 246]
chroma('#3b82f6').hsl() // [0.58, 0.89, 0.60]
chroma.scale(['white','#3b82f6']).colors(6)Python
import colorsys
# HEX → RGB
hex_str = '#3b82f6'
rgb = tuple(int(hex_str[i:i+2], 16) for i in (1, 3, 5))
# (59, 130, 246)
# RGB → HSL (0-1 range)
r, g, b = (v / 255 for v in rgb)
h, l, s = colorsys.rgb_to_hls(r, g, b)
print(f"hsl({h*360:.0f}, {s*100:.0f}%, {l*100:.0f}%)")
# pip install colour-science
import colour
colour.sRGB_to_XYZ([0.23, 0.51, 0.96])Swift / iOS
import SwiftUI
// HEX to Color
extension Color {
init(hex: String) {
let hex = hex.trimmingCharacters(
in: .alphanumerics.inverted)
var int = UInt64()
Scanner(string: hex).scanHexInt64(&int)
let r = Double((int >> 16) & 0xFF) / 255
let g = Double((int >> 8) & 0xFF) / 255
let b = Double( int & 0xFF) / 255
self.init(red: r, green: g, blue: b)
}
}
Color(hex: "#3b82f6")常见问题
HEX、RGB、HSL 有什么区别?
HEX(十六进制)是 Web 开发最常用的颜色格式,如 #FF5733,本质上是 RGB 的十六进制表示。RGB 直接指定红绿蓝三通道的强度(0-255)。HSL 使用色相(Hue)、饱和度(Saturation)、亮度(Lightness),更符合人的直觉,便于调色。
HSV 和 HSL 有什么区别?
HSV(色相、饱和度、明度/Value)和 HSL(色相、饱和度、亮度/Lightness)都是面向人眼直觉的颜色模型。主要区别:HSV 中 V=100% 是最亮的纯色,S=0 时退化为白色;HSL 中 L=100% 是白色,L=0% 是黑色,L=50% 才是最鲜艳的颜色。图像编辑软件(Photoshop、Figma)多用 HSB(HSV),CSS 用 HSL。
CMYK 是什么?为什么 Web 不用它?
CMYK 是印刷行业的颜色模型,C(青)、M(品红)、Y(黄)、K(黑)是印刷油墨的四原色,用于描述减色混合。Web 和屏幕显示使用加色模型 RGB(光的三原色),所以 CSS 不原生支持 CMYK。设计师需要在交付印刷稿前将 RGB 转换为 CMYK。
如何在 CSS 中使用 HEX 颜色?
CSS 支持三种写法:完整六位 #RRGGBB(如 #3b82f6)、简写三位 #RGB(如 #38f,等同于 #3388ff)、带透明度的八位 #RRGGBBAA(如 #3b82f680 表示 50% 透明度)。现代浏览器也支持 CSS Color Level 4 的 color(srgb ...) 语法。
颜色对比度怎么计算?
WCAG(Web 内容无障碍指南)规定,正文文字与背景的对比度至少达到 4.5:1(AA 级)或 7:1(AAA 级),大号文字至少 3:1。对比度通过相对亮度(Relative Luminance)计算:先将 RGB 值线性化,再用公式 (L1 + 0.05) / (L2 + 0.05) 得出比率。
色阶(Shades)是如何生成的?
本工具的色阶是在保持原始颜色的色相(H)和饱和度(S)不变的前提下,通过改变 HSL 亮度(L)生成 6 个从浅到深的变体。这与 Tailwind CSS 的调色板生成逻辑相似,适合快速生成品牌色系。