Skip to content

Color Spaces

ColorAide aims to support all the color spaces and models currently offered in modern CSS, such as sRGB, Display P3, CIELab, Oklab, etc. We also include a number of color spaces that are not available in CSS.

ColorAide registers a subset of the offered color spaces by default. But additional color spaces can be registered by subclassing the Color object and then registering any additional required plugins, such as color spaces.

Everything but the Kitchen Sink

It is not generally recommended to register all possible color spaces (and plugins in general). The suggested approach is to cherry pick additional color spaces as needed by simply subclassing Color and then registering the desired plugins, but if desired coloraide.everything.ColorAll already includes all plugins and can be imported to get access to every supported plugin.

Default Color Spaces

While ColorAide supports a lot of color spaces, it is rare that a user would ever need every color space implemented by ColorAide available at all times, so to keep the Color object lighter, and color matching logic quicker, the coloraide.Color object does not register all color spaces by default.

    Default Color Spaces    
XYZ D65 XYZ D50 Linear sRGB Linear Display P3 Linear A98 RGB
Linear Rec. 2020 Linear ProPhoto RGB sRGB Display P3 A98 RGB
Rec. 2020 ProPhoto RGB HSL HSV HWB
Lab LCh Lab D65 LCh D65 Oklab
OkLCh Jzazbz JzCzhz ICtCp Rec. 2100 HLG
Rec. 2100 PQ Linear Rec. 2100

Color Space Map

When registering a plugin, it is important that all required plugins in the conversion path are registered as well. Below we've provided a diagram of all available color spaces and how they translate to one another.

Click any of the color spaces to jump to the related documentation.

flowchart TB

    acescc --- acescg ---- xyz-d65
        acescct --- acescg

    aces2065-1 --- xyz-d65

    oklch --- oklab ----- xyz-d65
        okhsl --- oklab
        okhsv --- oklab

    display-p3 --- display-p3-linear --- xyz-d65

    a98-rgb --- a98-rgb-linear --- xyz-d65

    srgb-linear --- xyz-d65
        rec709 --- srgb-linear
        srgb --- srgb-linear
            cubehelix --- srgb
            ryb --- srgb
            orgb --- srgb
            prismatic --- srgb
            hsi --- srgb
            cmy --- srgb
            cmyk --- srgb
            xyb --- srgb
            hsl --- srgb
            hsv --- srgb
            hwb --- srgb

    rec2020-linear --- xyz-d65
        rec2020 --- rec2020-linear
        rec2100-linear --- rec2020-linear
            rec2100-pq --- rec2100-linear
            rec2100-hlg --- rec2100-linear

    prophoto-rgb --- prophoto-rgb-linear --- xyz-d50 ----- xyz-d65

    lch --- lab --- xyz-d50

    xyz-d65 --- lab-d65 --- lch-d65

    xyz-d65 --- cam16-jmh
        cam16-jmh --- cam16-ucs
        cam16-jmh --- cam16-scd
        cam16-jmh --- cam16-lcd

    xyz-d65 --- zcam-jmh

    xyz-d65 --- hct

    xyz-d65 --- jzazbz --- jzczhz

    xyz-d65 --- ipt

    xyz-d65 --- ictcp

    xyz-d65 --- igpgtg

    xyz-d65 --- din99o --- lch99o

    xyz-d65 --- hunter-lab

    xyz-d65 --- rlab

    xyz-d65 --- luv --- lchuv
        luv --- hsluv
        luv --- hpluv

    xyz-d65 --- xyy

    xyz-d65 --- ucs

    xyz-d65(XYZ D65)
    xyz-d50(XYZ D50)
    rec2020(Rec. 2020)
    rec2020-linear(Linear Rec. 2020)
    rec2100-pq(Rec. 2100 PQ)
    rec2100-hlg(Rec. 2100 HLG)
    rec2100-linear(Linear Rec. 2100)
    srgb-linear(Linear sRGB)
    srgb(sRGB)
    rec709(Rec. 709)
    hsl(HSL)
    hsv(HSV)
    hwb(HWB)
    display-p3-linear(Linear Display P3)
    display-p3(Display P3)
    a98-rgb-linear(Linear A98 RGB)
    a98-rgb(A98 RGB)
    prophoto-rgb-linear(Linear ProPhoto RGB)
    prophoto-rgb(ProPhoto RGB)
    lab(Lab)
    lch(LCh)
    lab-d65(Lab D65)
    lch-d65(LCh D65)
    oklab(Oklab)
    oklch(OkLCh)
    okhsl(Okhsl)
    okhsv(Okhsv)
    luv(Luv)
    lchuv(LChuv)
    hsluv(HSLuv)
    hpluv(HPLuv)
    din99o(DIN99o)
    lch99o(DIN99o LCh)
    jzazbz(Jzazbz)
    jzczhz(JzCzhz)
    ictcp(ICtCp)
    orgb(oRGB)
    ipt(IPT)
    igpgtg(IgPgTg)
    hunter-lab(Hunter Lab)
    rlab(RLAB)
    hsi(HSI)
    cmy(CMY)
    cmyk(CMYK)
    xyy(xyY)
    ucs(CIE 1960 UCS)
    prismatic(Prismatic)
    aces2065-1(ACES2065-1)
    acescg(ACEScg)
    acescc(ACEScc)
    acescct(ACEScct)
    cam16-jmh(CAM16 JMh)
    cam16-ucs(CAM16 UCS)
    cam16-scd(CAM16 SCD)
    cam16-lcd(CAM16 LCD)
    hct(HCT)
    xyb(XYB)
    ryb(RYB)
    cubehelix(Cubehelix)
    zcam-jmh(ZCAM JMh)

    click xyz-d65 "./xyz_d65/" _self
    click xyz-d50 "./xyz_d50/" _self
    click rec2020 "./rec2020/" _self
    click rec2020-linear "./rec2020_linear/" _self
    click rec2100-pq "./rec2100_pq/" _self
    click rec2100-hlg "./rec2100_hlg/" _self
    click rec2100-linear "./rec2100_linear/" _self
    click srgb-linear "./srgb_linear/" _self
    click srgb "./srgb/" _self
    click rec709 "./rec709/" _self
    click hsl "./hsl/" _self
    click hsv "./hsv/" _self
    click hwb "./hwb/" _self
    click display-p3-linear "./display_p3_linear/" _self
    click display-p3 "./display_p3/" _self
    click a98-rgb-linear "./a98_rgb_linear/" _self
    click a98-rgb "./a98_rgb/" _self
    click prophoto-rgb-linear "./prophoto_rgb_linear/" _self
    click prophoto-rgb "./prophoto_rgb/" _self
    click lab "./lab/" _self
    click lch "./lch/" _self
    click lab-d65 "./lab_d65/" _self
    click lch-d65 "./lch_d65/" _self
    click oklab "./oklab/" _self
    click oklch "./oklch/" _self
    click okhsl "./okhsl/" _self
    click okhsv "./okhsv/" _self
    click luv "./luv/" _self
    click lchuv "./lchuv/" _self
    click hsluv "./hsluv/" _self
    click hpluv "./hpluv/" _self
    click din99o "./din99o/" _self
    click lch99o "./lch99o/" _self
    click jzazbz "./jzazbz/" _self
    click jzczhz "./jzczhz/" _self
    click ictcp "./ictcp/" _self
    click orgb "./orgb/" _self
    click ipt "./ipt/" _self
    click igpgtg "./igpgtg/" _self
    click hunter-lab "./hunter_lab/" _self
    click rlab "./rlab/" _self
    click hsi "./hsi/" _self
    click cmy "./cmy/" _self
    click cmyk "./cmyk/" _self
    click xyy "./xyy/" _self
    click ucs "./ucs/" _self
    click prismatic "./prismatic/" _self
    click aces2065-1 "./aces2065_1/" _self
    click acescg "./acescg/" _self
    click acescc "./acescc/" _self
    click acescct "./acescct/" _self
    click cam16-jmh "./cam16_jmh/" _self
    click cam16-ucs "./cam16_ucs/" _self
    click cam16-scd "./cam16_scd/" _self
    click cam16-lcd "./cam16_lcd/" _self
    click hct "./hct/" _self
    click xyb "./xyb/" _self
    click ryb "./ryb/" _self
    click cubehelix "./cubehelix/" _self
    click zcam-jmh "./zcam_jmh/" _self

Supported Color Space IDs

As an easy reference, this table contains all the color space names and their associated IDs that are used to specify a specific color space for conversion or otherwise.

Color Space ID
A98 RGB a98-rgb
Linear A98 RGB a98-rgb-linear
ACES 2065-1 aces2065-1
ACEScc acescc
ACEScct acescct
ACEScg acescg
CAM16 JMh cam16-jmh
CAM16 LCD cam16-lcd
CAM16 SCD cam16-scd
CAM16 UCS cam16-ucs
CMY cmy
CMYK cmyk
Cubehelix cubehelix
DIN99o din99o
Display P3 display-p3
Linear Display P3 display-p3-linear
HCT hct
HPLuv hpluv
HSI hsi
HSL hsl
HSLuv hsluv
HSV hsv
Hunter Lab hunter-lab
HWB hwb
ICtCp ictcp
IgPgTg igpgtg
IPT ipt
Jzazbz jzazbz
JzCzhz jzczhz
Lab (D50) lab
Lab (D65) lab-d65
LCh (D50) lch
LCH (D65) lch-d65
DIN99o LCh lch99o
Luv LCh lchuv
Luv luv
Okhsl okhsl
Okhsv okhsv
Oklab oklab
OkLCh oklch
oRGB orgb
Prismatic prismatic
ProPhoto RGB prophoto-rgb
Linear ProPhoto RGB prophoto-rgb-linear
Rec. 2020 rec2020
Linear Rec. 2020 rec2020-linear
Rec. 2100 HLG rec2100-hlg
Linear Rec. 2100 rec2100-linear
Rec. 2100 PQ rec2100-pq
Rec. 709 rec709
RLAB rlab
RYB ryb
sRGB srgb
Linear sRGB srgb-linear
UCS ucs
XYB xyb
xyY xyy
XYZ (D50) xyz-d50
XYZ (D65) xyz-d65
ZCAM JMh zcam-jmh