颜色转换器/ 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 的调色板生成逻辑相似,适合快速生成品牌色系。