Every colour format, one picker
Pick a colour and get all 44 formats at once — including GLSL, HLSL and WGSL vectors in both gamma and linear space. Paste any format back in and it converts to everything else.
Contrast6.02:1 AA
How white and black text read on this colour.
Contrast of this colour against white and black | Against | WCAG 2 | APCA | Usable for |
|---|
| White | 3.49:1 AA Large | Lc 62 | Headings and large text |
|---|
| Black | 6.02:1 AA | Lc 40 | Non-text elements only |
|---|
Save colours you want to revisit.
Built for the cases other pickers miss
Gamma and linear, always labelled
A vec3 destined for a lighting calculation is not the same as one written straight to the framebuffer. Both are shown, both are labelled, and the exact piecewise sRGB transfer function is used rather than a pow(2.2)approximation.
Paste anything
Hex, rgb(), oklch(), vec4,FLinearColor, Color(0xFF…), or three bare numbers. When the input genuinely could mean two things, you get to choose instead of being guessed at.
Correct by construction
Conversions follow CSS Color 4. Matrix inverses are derived rather than transcribed, out-of-gamut colours are mapped in OKLCh instead of clipped, and the test suite checks that every format round-trips through its own parser.
Questions
Why are there two different vec3 values?
Because the same three numbers mean different colours depending on where they are used. The sRGB row holds encoded values, which is what you want when writing a colour straight to the screen. The linear row has the sRGB transfer function removed, which is what you want when the value takes part in lighting, blending or filtering. Most tools only give you the first one, which is why shader colours so often come out too bright.
What formats can I paste in?
Hex in every shape including 0x and 8-digit ARGB, all the CSS colour functions, HSV, CMYK, shader constructors like vec3, vec4, float3, half4 and vec3f, engine types like Unity Color, Unreal FLinearColor, Godot Color, Flutter Color, SwiftUI Color and Android Color.rgb, plus bare number triples in 0–1, 0–255 or percentages.
What happens if my input is ambiguous?
You get told. A bare “1, 0, 0” could be normalised floats or a 0–255 triple, so the tool picks the most likely reading, shows you which one it chose, and offers the alternatives as one-click buttons. No silent guessing.
Is the conversion maths accurate?
Every conversion follows the CSS Color 4 specification, using the exact piecewise sRGB transfer function rather than an approximate 2.2 power curve. Reference values from the specification are checked in the test suite, and every format is verified to parse its own output back to the same colour.
What happens to colours outside sRGB?
Colours from Display P3, Rec. 2020, Lab or OKLCh can fall outside what sRGB can show. Rather than clipping each channel, which shifts hue badly, the tool holds lightness and hue and walks chroma down until the colour fits. Formats that can hold the original value, such as color(display-p3 …), still show it untouched.