AZ Tools

CSS color-mix() 미리보기 (보간 공간 비교)

색상

최신 CSS 는 `color-mix(in <space>, A <p>, B)` 로 두 색을 섞을 수 있고, 선택한 보간 공간이 결과를 완전히 바꿉니다. 빨강과 파랑을 `srgb` 에서 섞으면 탁한 회보라가, 같은 비율을 `oklch` 에서 섞으면 선명한 마젠타가, `hsl` 에서는 색상환을 짧은 쪽으로 회전해 청록색이 나옵니다. 이 도구는 같은 두 색을 자주 쓰이는 8개 공간 (`srgb`, `srgb-linear`, `hsl`, `hwb`, `lab`, `lch`, `oklab`, `oklch`) 에서 동시에 미리보기 — 브라우저 네이티브 `color-mix()` 를 사용하므로 실제 스타일시트 결과와 같습니다. 각 카드에는 현재 비율의 큰 스와치, 1×1 캔버스로 픽셀을 읽어내 계산한 sRGB hex, A→B 전체 경로를 보여주는 11단계 그라데이션 스트립이 표시됩니다. 슬라이더를 움직이면 8개 경로가 동시에 변합니다. 카드 복사 아이콘으로 해당 CSS 선언을 바로 가져갈 수 있어요.

프리셋
srgb
srgb-linear
hsl
hwb
lab
lch
oklab
oklch
보간 공간에 대해

color-mix() 는 지정한 공간에서 두 색을 선형 보간합니다. sRGB 는 채도가 떨어진 회색을 통과합니다. srgb-linear 는 물리적 빛 합성 (사진 합성) 에 맞습니다. HSL/HWB/LCH/OKLCH 는 색상환에서 hue 를 보간 — 기본은 짧은 호. OKLab/OKLCH (Björn Ottosson, 2020) 는 지각 균일 — 수치적으로 같은 간격이 시각적으로도 같은 간격으로 보입니다. 각 스와치 아래의 hex 는 브라우저가 mix 를 해석한 뒤 1×1 캔버스에서 읽어낸 값이므로 getComputedStyle() 결과와 일치합니다.

사용법

  1. 색상 피커나 hex 로 색 A 와 색 B 를 정합니다.
  2. 퍼센티지 슬라이더를 드래그 — 슬라이더 값이 A 의 비율 (30% 이면 A 30% + B 70%).
  3. 8개 카드를 비교: 스와치는 현재 비율의 결과, 스트립은 해당 공간의 A→B 전체 그라데이션.
  4. 복사 아이콘으로 `background: color-mix(in <space>, ...);` 선언을 가져갑니다.
  5. 프리셋을 시도 — 빨강↔파랑, 노랑↔파랑은 'srgb 는 왜 칙칙해 보이는가' 의 대표 예시.

자주 묻는 질문

왜 공간마다 결과가 완전히 다른가요?
`color-mix()` 가 하는 선형 보간은 선택한 좌표계의 직선이에요. sRGB 큐브는 대각선이 회색이라 그 직선이 칙칙한 중간값을 통과합니다. OKLCH 에서는 같은 직선이 인지 밝기를 유지하면서 색상만 회전해 선명함을 유지합니다. HSL 은 색상환의 짧은 길로 가서 A 와 B 사이에 없는 색까지 휩쓸기도 합니다. 어느 것도 틀린 게 아니라, 기하 구조가 다른 거예요.
어떤 공간을 써야 하나요?
대부분의 UI 작업에는 `oklch` 나 `oklab` 이 인지적으로 가장 좋습니다 — 밝기가 균일하게 유지되고, 섞어도 선명하고, 칙칙한 중간점이 없어요. `srgb-linear` 는 물리적 빛 합성 (사진 합성) 에 정확합니다. `srgb` 는 구식 도구와 2023 이전 CSS 의 결과와 같습니다. `hsl` 은 A 와 B 가 채도·명도를 공유할 때만 색상 기반 팔레트에 적합합니다. 선명한 색쌍에 그냥 `srgb` 는 피하세요 — 일부러 차분한 톤을 원할 때만.
표시된 hex 는 정확한가요?
브라우저가 계산한 그대로입니다. 색 표현식을 캔버스 `fillStyle` 로 설정하고 1×1 픽셀을 그린 뒤 `getImageData()` 로 실제 sRGB 바이트를 읽습니다. 그래서 표시되는 hex 는 `getComputedStyle()` 이 같은 mix 에 대해 반환할 값과 일치합니다 — 8비트 캔버스 양자화로 인한 채널당 ±1 오차 이내.
hue-shortest 와 hue-longest 는?
CSS 는 hue 기반 공간 (hsl, hwb, lch, oklch) 에 `longer hue` / `shorter hue` / `increasing hue` / `decreasing hue` 수식자를 지원합니다. 이 도구는 카드를 단순하게 유지하려고 기본값 (shorter hue) 을 씁니다. 긴 경로가 필요하면 수식자를 직접 붙이세요: `color-mix(in oklch longer hue, A 50%, B)` — 같은 색, 환의 반대 방향.
브라우저 지원?
`color-mix()` 는 Chrome/Edge 111+ (2023.03), Safari 16.2+ (2022.12), Firefox 113+ (2023.05) 부터. 2023년 이후의 모든 메이저 브라우저가 여기 나열된 모든 공간을 지원합니다. 미지원 배너가 보이면 그보다 오래된 브라우저예요 — CSS 자체는 파싱되지만 올바른 색을 만들지 못합니다.

관련 도구