에서 까지, 에서 까지, 년부터 년까지. CSS, 셰이더, WASM, 색 변환 표(LUT)를 지원합니다.
디스플레이·웹19
제작과 배포를 위한 RGB 색공간. 웹 기본값부터 더 넓은 디스플레이 색역까지.
HP & Microsoft,1996
RGBApple,2015
RGBITU-R,2012
RGB
HP & Microsoft,1996
RGBITU-R,1990
RGBKodak,1999
RGBAdobe Systems,1998
RGBDCI,2005
RGBApple,2015
RGBITU-R,2012
RGBAdobe Systems,1998
RGBKodak,1999
RGBIEC,2003
RGBKodak,2000
RGBCIE,1931
RGBFCC,1953–87
RGBWalter Bruch / Telefunken,1967
RGBApple Computer,1987–96
RGBSMPTE,1988–90
RGB
RGB 변형9
RGB 위에 만든 색상·채도·밝기 조절 체계. 같은 간격이 같아 보이지는 않을 수 있습니다.
Joblove & Greenberg,1978
HSLAlvy Ray Smith,1978
HSVAlvy Ray Smith,1996
HWB
John R. Kender,1976
HSIcommunity convention,2011
HCGIan Taylor,2012
HCLDarel Rex Finley,2006
HSPKuzma Shapran,2012
HCYBianconi et al.,2009
HSM
지각 기반48
색을 비교하고, 팔레트를 만들고, 색의 외관을 예측하기 위한 좌표계.
Björn Ottosson,2020
LCHCIE,1976
LabLi et al.,2017
JMh
Björn Ottosson,2020
LabGoogle,2021
HCTBjörn Ottosson,2021
HSLBjörn Ottosson,2021
HSVBjörn Ottosson,2021
HWBBjörn Ottosson,2021
LabBjörn Ottosson,2021
LCHJan Behrens,2009
LabKonovalenko et al.,2021
LabLi & Luo,2024
IabHensley & Fairchild,2020
IgPgTgSafdar et al.,2017
JzazbzSafdar et al.,2017
JzCzHzFritz Ebner & Mark Fairchild,1998
IPTSafdar et al.,2017
IzazbzMark Fairchild & Garrett Wyble,2010
IPTCIE,1976
LCHCIE,1976
LUVAlexei Boronine,2012
HSLCIE,1976
LCHCIE,1976
LabCIE,1976
LCHAlexei Boronine,2012
HSLDIN,2018
LabDIN,2018
LCHCui et al.,2002
LabRichard S. Hunter,1948
LabDavid MacAdam / CIE,1960–76
UVWGünther Wyszecki / CIE,1964–76
UVWElliot Q. Adams,1942–76
LabMark Fairchild & Garrett Wyble,2010–16
LabCIE,2002–17
JMhLi et al.,2017
JabSafdar et al.,2021
JMhLuo et al.,2006–17
JabLi et al.,2017
JabLi et al.,2017
JabLuo et al.,2006–17
JabLuo et al.,2006–17
JabLuke Hellwig & Mark Fairchild,2022
JMhMark Fairchild,1996
LabLuo et al.,1996
LABYoshinobu Nayatani,1995
LChRobert W. G. Hunt,1994
JChSherman Lee Guth,1995
ATD
측색·연구22
측정의 기초, 눈의 원리, 연구용 특수 좌표계.
CIE,1931
XYZCIE,1931
xyYEstévez et al.,1979
LMS
ICC,1994
XYZCIE,1976
uvYYoshi Ohno / ANSI,2014
TDuRaymond Davis; CIE,1931
TJames Clerk Maxwell,1860
xyCIE,1931
wlITU-R,2016
XaYaZaDonald MacLeod & Robert Boynton,1979
lsYDerrington et al.,1984
LuRGYVCIE,1931
YHermann von Helmholtz,1860
dsYJames Clerk Maxwell,1860
rgRichard Kirk,2019
YrgJyrki Alakuijala et al.,2019
XYBOSA committee,1974
LjgTerrillon & Akamatsu,2000
TSLXerox,1989
YESOhta et al.,1980
I1I2I3Ruderman et al.,1998
lαβ
비디오·방송20
방송, 압축, HDR 배포를 위해 밝기와 색을 분리합니다.
ITU-R,1990
YCbCrDolby,2016
ICtCpITU-R,2012
YCbCr
ITU-R,1982
YCbCrITU-R,1982
YCbCrITU-R,1982
YCbCrWalter Bruch / Telefunken,1967
YUVNTSC,1953–82
YIQITU-R,1982
YPbPrMalvar & Sullivan,2003
YCgCoEric Hamilton / C-Cube Microsystems,1992
YCbCrHenri de France,1967
YDbDrITU-R,2012
YcCbCrSony / IEC,2006
YCbCrSMPTE,1987
RGBKodak,1992
YcC1C2Dolby / ITU-R,2016
RGBBBC & NHK / ITU-R,2016
RGBITU-R,2016
RGBJulian Fröhlich,2017
ICaCb
영화·카메라43
빛을 기록하고 그레이딩하기 위한 카메라 로그 인코딩과 작업 색공간.
Academy,2014
RGBARRI,2010–22
RGBAcademy,2014
RGB
Sony,2014
RGBSony,2014
RGBAcademy,2012
RGBAcademy,2016
RGBARRI,2022
RGBKodak,1992
RGBBlackmagic Design,2020
RGBSony,2012–14
RGBPanasonic,2014
RGBRED Digital Cinema,2017
RGBCanon,2011–15
RGBCanon,2015
RGBCanon,2016
RGBFujifilm,2016
RGBFujifilm,2022
RGBFujifilm,2024
RGBNikon,2018
RGBApple,2023
RGBApple,2025
RGBBlackmagic Design,2020
RGBDJI,2017
RGBFilmLight,2013
RGBKinefinity,2025
RGBSMPTE/DCI,2006
XYZSony,2008–12
RGBAcademy,2013
RGBKodak,2000
RGBLeica,2020
RGBGoPro,2012
RGBGoPro,2026
RGBInsta360,2026
RGBXiaomi,2024
RGBOPPO,2025
RGBSamsung,2025
RGBRED Digital Cinema,2007–08
RGBRED Digital Cinema,2008–17
RGBRED Digital Cinema,2016–17
RGBPanavision / Sony,2005
RGBThomson Grass Valley,2002
RGBFiLMiC Inc.,2017
RGB
인쇄·물감7
잉크, 물감, 그리고 측정에 기반한 물체색의 체계.
Eagle Printing Ink Co.,1906
CMYKAlbert H. Munsell,1905
HVCJohannes Itten,1961
RYB
Louis Ducos du Hauron,1868–1906
CMYRAL gGmbH,1993
HLCAntal Nemcsics,1980
ATVWilhelm Ostwald,1917
hWB
사용하기
색 변환을 위한 JavaScript 패키지입니다. 색공간 하나의 크기는 1.5 kB 미만이며, 모든 색공간을 가져오면 임의의 두 공간 사이에서 변환할 수 있습니다. 같은 변환을 WASM으로 이미지 전체에 적용하거나 GLSL·WGSL 셰이더에서 실행할 수 있습니다. LUT 표와 ICC 프로파일로 내보내거나 에이전트가 MCP 서버를 통해 호출할 수도 있습니다.
import space from 'color-space'
space.rgb.oklch(255, 128, 0) // → [0.732, 0.186, 53]
space.oklch.rgb(0.65, 0.25, 180) // any of 168 × 167 pairs
space.oklch.name // 'oklch'
space.oklch.range // [[0,1], [0,0.4], [0,360]]// one space only – tree-shaken, 0.4-1.5 kBimport oklch from 'color-space/oklch.js'
oklch.rgb(0.65, 0.25, 180)
// values in the notations CSS already speaks – straight from the library
color: oklch(0.732 0.186 53); // space.rgb.oklch(255, 128, 0)
color: color(display-p3 0.936 0.529 0.199); // space.rgb.p3(255, 128, 0)
color: color(xyz-d65 0.49 0.367 0.045); // space.rgb.xyz(…) / 100 – exact interchange// spaces CSS lacks ship as ICC profiles or LUTs – see those tabs;
// every dossier's css tab writes the current color in copyable forms
// per-space metadata – sourced, ships as data.jsonimport data from 'color-space/data.json' with { type: 'json' }
const m = data.spaces.oklch
m.channels // [{symbol, min, max, name}, …]
m.refs // defining spec / paper links
m.year, m.by // 2020, 'Björn Ottosson'
// scalar or whole-buffer, zero-copy – a true WASM kernelimport space, { alloc } from 'color-space/wasm'
space.oklch.rgb(0.72, 0.16, 41) // → [246, 125, 79]const buf = alloc(n) // n×3 Float64Array
space.rgb.oklch(buf) // in place – 27 spaces
// every pair as a GLSL shader chunkimport { glsl } from 'color-space/gl'
import oklch from 'color-space/gl/oklch'
const src = glsl(oklch, 'rgb')
// → self-contained: vec3 oklch_rgb(vec3 c)// paste into any fragment shader, no uniforms
어떤 쌍이든 .cube LUT로. Resolve, Premiere, Final Cut, OBS, ffmpeg에 불러올 수 있습니다. 카메라 로그는 공식 ACES 제조사 변환과 대조해 검증했습니다.
→1D
어떤 색공간이든 .icc v2 프로파일로. RGB 작업 색공간에는 행렬 + 톤 커브(Photoshop, OS 색 관리), 그 밖의 모든 색공간에는 CLUT 격자(lcms, ArgyllCMS, ImageMagick).
…
// an MCP server – convert · gamut · css · space · spaces · cube –
// so an agent calls verified conversions instead of guessing them
npx -y color-space mcp
// Claude Code
claude mcp add color-space -- npx -y color-space mcp
// VS Code
code --add-mcp '{"name":"color-space","command":"npx","args":["-y","color-space","mcp"]}'
// Claude Desktop · Cursor · .mcp.json
{ "mcpServers": { "color-space": { "command": "npx", "args": ["-y", "color-space", "mcp"] } } }
색 모델은 색을 표현하는 성분을 정합니다. RGB는 세 원색, HSL은 색상·채도·명도, CMYK는 네 가지 잉크를 사용합니다. 색공간은 원색, 백색점, 인코딩 곡선을 구체적으로 정해 각 값의 조합이 측정 가능한 하나의 색에 대응하도록 합니다. 따라서 rgb(255 0 0)은 sRGB, Display P3, Adobe RGB에서 서로 다른 빨강을 나타냅니다. 모델은 같지만 색공간이 다릅니다.
일반적으로 둘 다 색공간이라고 부릅니다. CSS의 color-mix(in hsl, …)와 이 카탈로그에서도 마찬가지입니다. 자체 기준이 없는 모델은 기존 색공간을 기준으로 정의할 수 있습니다. 여기서 HSL과 HSV는 CSS에서처럼 sRGB를 기반으로 합니다.
OKLCH입니다. 색상, 크로마, 명도라는 세 가지 조절값은 같지만 명도를 믿을 수 있습니다. HSL에서 L=50인 노랑은 L=50인 파랑보다 약 13배 많은 빛을 내므로, L이 같다고 밝기가 같지 않습니다. OKLCH에서는 같습니다. CSS는 oklch()를 기본 지원합니다.
그러데이션 가운데가 왜 탁해지나요?
감마 인코딩된 sRGB에서 계산하기 때문입니다. 여기서 두 색의 숫자를 평균하면 실제로 빛을 섞을 때보다 어둡고 탁한 빛이 나옵니다. OKLab에서 보간하면 이 문제를 피할 수 있습니다. 모든 상세 정보의 보간 행은 같은 혼합을 두 색공간에서 나란히 그려 보여 주므로, 고르기 전에 차이를 확인할 수 있습니다.
“색역 밖”이란 무슨 뜻인가요?
한 색공간에서는 표현할 수 있지만 다른 색공간이나 내 화면에서는 보여 줄 수 없는 색입니다. 선명한 Display P3 초록은 sRGB에 아예 존재하지 않습니다. 변환하면 숫자가 유효 범위를 벗어납니다. 아틀라스는 이를 그대로 보여 줍니다. 현재 색 옆의 알약 표시는 그 색을 담는 가장 좁은 표준 색역을 알려 주고, 범위를 벗어난 구간은 체크무늬 위에 흐리게 표시됩니다.
인쇄물은 왜 화면보다 탁해 보이나요?
화면은 빛을 내고, 종이는 잉크가 흡수하지 않은 빛을 반사합니다. 종이 위의 잉크가 낼 수 있는 선명한 색은 더 적어서, 채도 높은 RGB의 파랑·초록·빨강은 그 범위를 벗어나 더 탁하게 인쇄됩니다. 인쇄 전 공정에서는 유럽 코팅지용 FOGRA39나 미국의 GRACoL처럼 인쇄기와 용지에 맞춘 ICC 프로파일로 변환합니다. 이 카탈로그의 CMYK는 CSS가 프로파일 없이 device-cmyk()에 쓰는 단순 공식입니다. 숫자로는 맞지만 인쇄 교정용은 아닙니다.
변환은 정확한가요? 왕복 변환에서 데이터가 손실되나요?
변환은 룩업 근사가 아니라 닫힌 형태의 공식이며, 왕복 변환은 부동소수점 오차 범위 안으로 돌아옵니다. 몇 가지 예외는 해당 위치에 문서화되어 있습니다. OSA-UCS에는 닫힌 형태의 역변환이 없고, Munsell 같은 아틀라스 체계는 발표된 등급 사이를 보간하며, rgb 출력은 sRGB 색역으로 클램프됩니다. 그 밖의 값이 필요하면 XYZ나 선형 RGB를 거치세요.
검증도 거쳤습니다. 모든 색공간에는 구현 근거가 된 논문이나 규격의 링크가 있고, 값은 겹치는 범위에서 colorjs.io와 대조해 테스트하며, 카메라 로그는 Academy의 공식 ACES 변환과 대조합니다. formula-verification.md에는 무엇을 무엇과 대조했는지 기록되어 있습니다. 발표된 논문 자체에 오류가 있던 몇몇 지점도 포함됩니다.
다른 라이브러리와 숫자가 다르다면 범위를 비교해 보세요. 많은 라이브러리가 모든 값을 0–1로 정규화하지만, 여기서는 각 색공간의 관례적 범위를 유지합니다. RGB는 0–255, Lab 명도는 0–100, 색상은 0–360입니다. 모든 카드에 범위가 표시되며, 코드에서는 space.oklch.range입니다.
이 중 CSS로 쓸 수 있는 것은?
기본 지원은 rgb(), hsl(), hwb(), lab(), lch(), oklab(), oklch()이고, color()로 Display P3, Adobe RGB, ProPhoto, 선형 sRGB, XYZ(D65와 D50)를 쓸 수 있습니다. CSS의 rec2020은 순수한 2.4 감마로, 이 카탈로그의 Rec. 2020이 쓰는 BT.2020 커브와 다릅니다. 같은 숫자가 다른 색을 가리키게 됩니다. 각 상세 정보의 css 탭은 현재 색을 복사할 수 있는 형태로 적어 줍니다. CSS에 없는 색공간은 대신 ICC 프로파일이나 LUT로 제공합니다.
Pantone, NCS, RAL은 어디 있나요?
이들은 라이선스 제품입니다. 색이 공개된 공식이 아니라 소유자가 판매하는 데이터로 정의되므로, 구현할 공개 수학이 없고 그 표를 재배포하는 것도 합법이 아닙니다. 수학이 공개된 가까운 친척들은 여기 있습니다. Munsell(1943년 재표기는 공공 기록)과 RAL Design(CIELAB으로 직접 정의)입니다. 기준은 간단합니다. 수학이 한 번이라도 발표되었다면 이 컬렉션에 들어옵니다.
BibTeX
@software{Ivanov_color-space_2026,
author = {Ivanov, Dmitry},
license = {CC0-1.0},
month = oct,
title = {{color-space}},
url = {https://github.com/colorjs/color-space},
version = {3.2.0},
year = {2026}
}
APA
Ivanov, D. (2026). color-space (Version 3.2.0) [Computer software]. https://github.com/colorjs/color-space