본문으로 건너뛰기
AZ Tools

OKLCH 컬러 피커

지각적으로 균등한 OKLCH 공간(명도·채도·색조)에서 색 픽 — 각 픽이 sRGB 디스플레이 gamut 안에 들어가는지 표시.

프리셋
#0099f0
sRGB 색역sRGB 밖 (클립됨)
  • oklch()oklch(65.0% 0.180 240.0)
  • Hex (클립됨)#0099f0
  • rgb()rgb(0, 153, 240)
  • hsl()hsl(202, 100%, 47%)
  • oklab()oklab(65.0% -0.090 -0.156)

명도 0~1 (0 = 검정, 1 = 흰색). 채도 0은 무채색; 0.3 초과는 sRGB 밖 자주 발생.

사용법

  1. L·C·H 드래그로 색 맞추기 — gamut 뱃지 주시.
  2. 스크린 스와치를 정확히 원하면 뱃지 호박색일 때 채도 약간 낮추기.
  3. 스타일시트에 필요한 형식 복사: 현대 스택은 oklch() 문자열로.

자세한 설명

펼치기

OKLCH는 밝기·채도·색상이 눈이 기대하는 대로 움직이도록 CSS Color 4가 도입한 색 공간입니다. 나머지 둘을 고정한 채 색상만 돌리면 체감 밝기가 그대로 유지되는데, HSL에서 같은 일을 하면 그렇지 않습니다. 이 피커는 세 채널과 알파를 모두 조절할 수 있게 하고, oklch() 문자열, sRGB 헥스·rgb·hsl 등가값, 밑에 깔린 OKLab의 a/b 좌표, 그리고 요청한 색이 sRGB 모니터가 표시할 수 있는 범위 밖일 때의 경고를 함께 보여 줍니다.

HSL과의 차이는 미묘하지 않고, 한 가지 비교로 분명해집니다. 순수한 노랑과 순수한 파랑은 HSL에서 둘 다 밝기 50%에 있습니다. HSL 색상환을 돌려 만든 팔레트에서 어떤 칸은 눈부시고 어떤 칸은 사라져 버리는 이유가 이것입니다. OKLCH에서 같은 두 색은 밝기 0.97과 0.45에 놓입니다. 실제로 보이는 것과 맞아떨어지는 숫자입니다. 이 척도는 기하가 아니라 지각에 기준을 두고 있고, 중간 회색 #808080이 0.50이 아니라 0.60 근처로 나오는 이유도 같습니다. sRGB의 중간값은 절반보다 밝습니다.

밝기는 0에서 1, 색상은 0에서 360이고, 채도에는 고정된 최댓값이 없습니다. 채도는 회색으로부터의 절대적인 거리이고, 그중 얼마를 디스플레이가 실제로 재현할 수 있는지는 디스플레이에 달려 있습니다. 색역 경고가 나오는 근원이 이것입니다. sRGB가 닿을 수 없는 채도를 요청해도 브라우저는 실패하지 않습니다. 보여 줄 수 있는 색으로 사상(mapping)하는데, CSS 명세는 밝기와 색상은 유지한 채 채도를 낮추는 방식으로 하라고 정합니다. 그래서 돌아오는 색은 덜 선명하지만 밝기와 색상은 맞습니다. 광색역 화면은 표준 화면보다 요청한 것에 더 가깝게 보여 주므로, 진하게 포화된 OKLCH 색은 모든 방문자에게 같은 색이 아닙니다.

실무적인 소득은 색 단계(scale)를 만들 때 나옵니다. 색상과 채도를 정하고 밝기만 균등하게 단계를 주면, 간격이 고르게 보이는 램프가 나옵니다. 헥스로 손수 맞추면 한참 씨름해도 여전히 울퉁불퉁해지는 바로 그 작업입니다. 여러 색상에 걸쳐 밝기를 일정하게 유지하면 시각적 무게가 동등한 범주형 팔레트가 나오는데, 차트 범례에 정확히 필요한 것이자 HSL이 내어 줄 수 없는 것입니다.

자주 묻는 질문

색이 왜 "sRGB 밖"이라고 나옴?

표준 모니터는 인간 가시 색의 제한된 일부(sRGB)만 표시. OKLCH는 더 넓은 지각적 균등 공간 → sRGB 화면에 안 들어가는 색 지정 가능. 브라우저는 가장 가까운 sRGB 매치로 클립 — hex 미리보기는 클립된 결과 표시.

oklch()를 hsl()보다 선호하는 이유?

HSL은 RGB 기반이라 색조에 따라 명도 불균일(같은 L에서 노랑이 파랑보다 훨씬 밝게 보임). OKLCH는 실제 지각 데이터 기반 튜닝 → 색조 변경 시 애니메이션·테마 토큰·접근성 비율 예측 가능.

크로마란 무엇이고, 최댓값이 명도와 색상에 따라 달라지는 이유는?

크로마는 색이 회색에서 얼마나 떨어져 있는가이고, 채도와 달리 가용 범위에 대한 백분율이 아니라 절대적인 거리다. 그래서 쓸 수 있는 최댓값이 위치에 따라 달라진다. 화면은 같은 명도에서 파랑보다 노랑을 훨씬 더 진하게 낼 수 있어서, 어떤 색상에서는 완벽히 표시되는 크로마가 몇 도만 돌려도 색역을 벗어난다.

디자인 시스템은 어떤 색 공간으로 보관해야 하나?

작업하는 공간으로 보관하고, 출력 형식은 세부 사항으로 두어라. OKLCH로 작업할 만한 이유는, 명도만 움직여 만든 색 단계가 눈에 고르게 보이고, 색상을 돌려도 밝기가 같게 유지되기 때문이다. HSL에서는 둘 다 성립하지 않는다. 대상이 요구하는 형식으로 변환하되 원래 값을 보관하라. 그래야 나중에 더 넓은 색역으로 내보내는 일이 재설계가 아니라 재출력이 된다.

이 주제의 가이드

관련 도구