Da à , dos à , a . Suporte a CSS, shaders, WASM e tabelas de conversão de cores (LUTs).
Display e web19
Espaços RGB de trabalho e entrega, do padrão da web a gamuts de tela mais amplos.
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
Variações de RGB9
Controles de matiz, saturação e brilho construídos sobre o RGB. Passos iguais não precisam parecer iguais.
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
Perceptuais48
Coordenadas para comparar cores, criar paletas e prever a aparência.
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
Colorimetria e pesquisa22
Os fundamentos da medição, o olho e coordenadas especializadas de pesquisa.
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αβ
Vídeo e transmissão20
Separam o brilho da cor para transmissão, compressão e entrega em 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
Cinema e câmera43
Codificações log de câmera e espaços de trabalho para capturar a luz e fazer a correção de cor.
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
Impressão e pintura7
Tinta, pintura e a organização medida das cores de superfície.
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
Use
Um pacote JavaScript para converter cores. Importe um espaço com menos de 1,5 kB ou todos para converter entre qualquer par de espaços. As mesmas conversões processam imagens inteiras com WASM, são executadas em shaders GLSL ou WGSL e podem ser exportadas como tabelas LUT ou perfis ICC. Agentes podem chamá-las pelo servidor MCP.
Testado contra referênciastestes para cada espaço
Nos dois sentidosde qualquer espaço para qualquer outro
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
Qualquer espaço como perfil .icc v2 – matriz + curva de tom para espaços de trabalho RGB (Photoshop, gerenciamento de cor do sistema operacional), um reticulado CLUT para todo o resto (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"] } } }
O que é um espaço de cor?
Um sistema de coordenadas para a cor: eixos, faixas e uma regra que liga os números à luz mensurável. O mesmo laranja é rgb(255 128 0), oklch(0.732 0.186 53) e, em XYZ, [49, 36.7, 4.5] – a mesma cor, escrita de três maneiras. Uma paleta é um punhado de cores escolhidas; um espaço é uma maneira de anotar qualquer cor.
Modelo de cor ou espaço de cor: qual é a diferença?
Um modelo de cor define os componentes usados para descrever uma cor: três primárias no RGB, matiz, saturação e claridade no HSL, quatro tintas no CMYK. Um espaço de cor especifica as primárias, o ponto branco e a curva de codificação, para que cada conjunto de valores corresponda a uma cor mensurável. Por isso, rgb(255 0 0) representa vermelhos diferentes em sRGB, Display P3 e Adobe RGB: um modelo, três espaços.
No uso comum, ambos são chamados de espaços, inclusive no color-mix(in hsl, …) do CSS e neste catálogo. Um modelo pode usar um espaço já definido como referência: aqui, HSL e HSV são baseados no sRGB, como no CSS.
Qual espaço eu devo usar, afinal?
Depende da tarefa:
armazenar e compartilhar imagens – sRGB, o padrão da web;
criar paletas e gradientes – OKLCH, em que passos iguais parecem iguais;
gravar vídeo e fazer a correção de cor – o espaço log da sua câmera, entregue em Rec. 709 ou Rec. 2100;
medir quão diferentes duas cores parecem – CIELAB ou DIN99o.
Agrupar o catálogo por finalidade o organiza da mesma forma.
O que devo usar no lugar do HSL?
OKLCH. Ele mantém os mesmos três controles – matiz, croma, claridade –, mas sua claridade é confiável: no HSL, o amarelo em L=50 emite cerca de 13 vezes a luz do azul em L=50, então L igual não significa brilho igual. No OKLCH, significa. O CSS suporta oklch() nativamente.
Por que meus gradientes ficam sujos no meio?
Porque são calculados em sRGB codificado com gama, onde tirar a média dos números de duas cores produz uma luz mais escura e mais apagada do que misturar de fato a sua luz produziria. Interpolar no OKLab evita isso. A linha interpolar de cada dossiê desenha a mesma mistura através de dois espaços lado a lado, para que você veja a diferença antes de escolher.
O que significa “fora do gamut”?
Uma cor que um espaço consegue descrever, mas outro – ou a sua tela – não consegue mostrar. Um verde vívido do Display P3 simplesmente não existe no sRGB: converta-o, e os números caem fora da faixa válida. O atlas deixa isso à vista: a etiqueta ao lado da cor atual indica o gamut padrão mais estreito que a contém, e os trechos fora da faixa aparecem esmaecidos sobre um quadriculado.
Por que a impressão parece mais apagada que a tela?
Uma tela emite luz; o papel reflete o que suas tintas não absorvem. Tinta no papel alcança menos cores vivas – azuis, verdes e vermelhos RGB saturados ficam fora do seu gamut – e por isso saem mais apagados. A pré-impressão converte por um perfil ICC feito para a impressora e o papel, como o FOGRA39 para papel couché europeu ou o GRACoL nos EUA. O CMYK deste catálogo é a fórmula simples que o CSS usa para device-cmyk() sem perfil: certa para os números, não uma prova da impressão.
As conversões são exatas? As idas e voltas perdem dados?
As conversões são fórmulas fechadas, não aproximações por tabela, e as idas e voltas retornam dentro do ruído de ponto flutuante. As poucas exceções estão documentadas onde ocorrem: o OSA-UCS não tem inversa fechada, sistemas de atlas como o Munsell interpolam entre graus publicados, e a saída rgb é limitada ao gamut sRGB – passe pelo XYZ ou pelo RGB linear quando precisar de valores fora dele.
E são verificadas: cada espaço aponta o artigo ou a especificação que implementa, os valores são testados contra colorjs.io onde os dois se sobrepõem, e os logs de câmera contra as transformações ACES oficiais da Academia. formula-verification.md registra o que foi conferido contra o quê – inclusive alguns pontos em que os próprios artigos publicados tinham erros.
Se os números diferem dos de outra biblioteca, compare as faixas: esta mantém as faixas convencionais de cada espaço – RGB 0–255, claridade Lab 0–100, matiz 0–360 – enquanto muitas achatam tudo para 0–1. Cada cartão mostra suas faixas; no código elas são space.oklch.range.
Quais destes o CSS consegue escrever?
Nativamente rgb(), hsl(), hwb(), lab(), lch(), oklab(), oklch(), além de color() para Display P3, Adobe RGB, ProPhoto, sRGB linear e XYZ (D65 e D50). O rec2020 do CSS é uma curva gama 2.4 pura, não a curva BT.2020 do Rec. 2020 deste catálogo – os mesmos números nomeariam uma cor diferente. A aba css de cada dossiê escreve a cor atual em forma copiável; os espaços que o CSS não tem são oferecidos como perfis ICC ou LUTs.
Onde estão Pantone, NCS, RAL?
São produtos licenciados: suas cores são definidas por dados que os proprietários vendem, não por fórmulas publicadas – então não há matemática aberta para implementar, e redistribuir suas tabelas não seria legal. Parentes próximos cuja matemática é pública estão aqui: Munsell (sua renotação de 1943 é de registro público) e RAL Design (definido diretamente em CIELAB). A regra prática: se a matemática foi publicada algum dia, ela pertence à coleção.
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
Copiado
Solte a imagem para ver suas cores em todas as faixas e planos