Du à l’, des à la , à . Prise en charge de CSS, des shaders, de WASM et des tables de conversion des couleurs (LUT).
Écran et web19
Espaces RGB de travail et de diffusion, du standard du web aux gamuts d’écran plus larges.
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
Variantes de RGB9
Des réglages de teinte, de saturation et de luminosité bâtis sur RGB. Des pas égaux ne paraissent pas forcément égaux.
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
Perceptuels48
Des coordonnées pour comparer les couleurs, construire des palettes et prédire l’apparence.
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
Colorimétrie et recherche22
Les fondements de la mesure, l’œil et des coordonnées de recherche spécialisées.
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αβ
Vidéo et télédiffusion20
Séparent la luminosité de la couleur pour la télédiffusion, la compression et la diffusion 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
Cinéma et caméra43
Encodages log des caméras et espaces de travail pour capter la lumière et l’étalonner.
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
Impression et peinture7
L’encre, la peinture et l’organisation mesurée des couleurs de surface.
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
L’utiliser
Un paquet JavaScript pour convertir les couleurs. Importez un espace de moins de 1.5 ko, ou tous les espaces pour les convertir entre eux. Les mêmes conversions traitent des images entières avec WASM, s’exécutent dans les shaders en GLSL ou WGSL et s’exportent en tables LUT ou en profils ICC. Les agents peuvent les appeler par le serveur MCP.
Vérifié par des référencesdes tests pour chaque espace
Dans les deux sensde n’importe quel espace vers n’importe quel autre
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
N’importe quel espace en profil .icc v2 : matrice + courbe tonale pour les espaces de travail RGB (Photoshop, gestion des couleurs du système), réseau CLUT pour tout le reste (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"] } } }
Qu’est-ce qu’un espace colorimétrique ?
Un système de coordonnées pour la couleur : des axes, des plages et une règle qui relie les nombres à une lumière mesurable. Le même orange s’écrit rgb(255 128 0), oklch(0.732 0.186 53) et XYZ [49, 36.7, 4.5] : la même couleur, écrite de trois façons. Une palette est une poignée de couleurs choisies ; un espace est une manière d’écrire n’importe quelle couleur.
Modèle de couleur ou espace colorimétrique : quelle différence ?
Un modèle de couleur définit les composantes utilisées pour décrire une couleur : trois primaires pour RGB, teinte, saturation et clarté pour HSL, quatre encres pour CMYK. Un espace colorimétrique précise les primaires, le point blanc et la courbe de codage. Chaque ensemble de valeurs correspond alors à une couleur mesurable. Ainsi, rgb(255 0 0) désigne des rouges différents en sRGB, Display P3 et Adobe RGB : un modèle, trois espaces.
Dans l’usage courant, les deux sont appelés espaces, y compris dans color-mix(in hsl, …) en CSS et dans ce catalogue. Un modèle peut prendre un espace existant comme référence : ici, HSL et HSV sont définis à partir de sRGB, comme en CSS.
Quel espace utiliser, concrètement ?
Tout dépend de la tâche :
stocker et partager des images : sRGB, le standard du web ;
concevoir des palettes et des dégradés : OKLCH, où des pas égaux paraissent égaux ;
tourner et étalonner de la vidéo : l’espace log de votre caméra, livré en Rec. 709 ou en Rec. 2100 ;
mesurer l’écart perçu entre deux couleurs : CIELAB ou DIN99o.
Regrouper le catalogue par usage le range de la même façon.
Que choisir à la place de HSL ?
OKLCH. Il garde les trois mêmes réglages – teinte, chroma, clarté –, mais sa clarté est fiable : en HSL, le jaune à L=50 émet environ 13 fois plus de lumière que le bleu à L=50 ; un même L ne veut donc pas dire une même luminosité. En OKLCH, si. CSS prend en charge oklch() en natif.
Pourquoi mes dégradés deviennent-ils boueux au milieu ?
Parce qu’ils sont calculés en sRGB encodé en gamma, où moyenner les nombres de deux couleurs donne une lumière plus sombre et plus terne que le mélange réel de leurs lumières. Interpoler en OKLab l’évite. La ligne interpoler de chaque fiche trace le même dégradé dans deux espaces côte à côte : vous voyez la différence avant de choisir.
Que signifie « hors gamut » ?
Une couleur qu’un espace peut décrire mais qu’un autre – ou votre écran – ne peut pas afficher. Un vert vif de Display P3 n’existe tout simplement pas en sRGB : convertissez-le, et les nombres sortent de la plage valide. L’atlas le rend visible : la pastille à côté de la couleur courante nomme le plus petit gamut standard qui la contient, et les tronçons hors plage apparaissent en transparence sur un damier.
Pourquoi l’impression paraît-elle plus terne que l’écran ?
Un écran émet de la lumière ; le papier réfléchit ce que ses encres n’absorbent pas. L’encre sur papier atteint moins de couleurs vives – les bleus, verts et rouges RGB saturés lui échappent –, d’où une impression plus terne. Le prépresse convertit via un profil ICC établi pour la presse et le papier, comme FOGRA39 pour le couché européen ou GRACoL aux États-Unis. Le CMYK de ce catalogue est la formule simple qu’utilise CSS pour device-cmyk() sans profil : juste pour les nombres, pas une épreuve de l’impression.
Les conversions sont-elles exactes ? Les allers-retours perdent-ils des données ?
Les conversions sont des formules fermées, pas des approximations par table, et les allers-retours reviennent au point de départ au bruit du calcul flottant près. Les rares exceptions sont documentées là où elles surviennent : OSA-UCS n’a pas d’inverse analytique, les systèmes d’atlas comme Munsell interpolent entre les échelons publiés, et la sortie rgb est bornée au gamut sRGB : passez par XYZ ou par RGB linéaire s’il vous faut des valeurs au-delà.
Elles sont aussi vérifiées : chaque espace renvoie à l’article ou à la spécification qu’il implémente, les valeurs sont testées contre colorjs.io partout où les deux se recoupent, et les logs de caméra contre les transformations ACES officielles de l’Academy. formula-verification.md consigne ce qui a été vérifié contre quoi, y compris quelques endroits où les articles publiés comportaient eux-mêmes des erreurs.
Si les nombres diffèrent de ceux d’une autre bibliothèque, comparez les plages : celle-ci garde les plages usuelles de chaque espace – RGB 0–255, clarté Lab 0–100, teinte 0–360 – là où beaucoup ramènent tout à 0–1. Chaque carte affiche ses plages ; dans le code, c’est space.oklch.range.
Lesquels CSS sait-il écrire ?
En natif : rgb(), hsl(), hwb(), lab(), lch(), oklab(), oklch(), plus color() pour Display P3, Adobe RGB, ProPhoto, sRGB linéaire et XYZ (D65 et D50). Le rec2020 de CSS est un gamma 2.4 pur, pas la courbe BT.2020 du Rec. 2020 de ce catalogue : les mêmes nombres y désigneraient une autre couleur. L’onglet css de chaque fiche écrit la couleur courante sous une forme copiable ; les espaces absents de CSS sont fournis à la place en profils ICC ou en LUT.
Où sont Pantone, NCS, RAL ?
Ce sont des produits sous licence : leurs couleurs sont définies par des données que leurs propriétaires vendent, non par des formules publiées. Il n’y a donc pas de mathématiques ouvertes à implémenter, et redistribuer leurs tables serait illégal. Des proches parents aux mathématiques publiques figurent ici : Munsell (sa renotation de 1943 est du domaine public) et RAL Design (défini directement en CIELAB). La règle : si les mathématiques ont un jour été publiées, l’espace a sa place dans la collection.
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
Copié
Déposez l’image pour afficher ses couleurs sur toutes les bandes et tous les plans