Color Converter & Contrast Checker

Every color format, .NET included, plus WCAG contrast with fix suggestions and an OKLCH palette.

Runs locally · nothing uploaded

Formats
Contrast (WCAG 2.x)

–

Normal text (16px). The quick brown fox jumps over the lazy dog.

Large text (24px)

Large bold text (18.66px / 14pt bold)

Button outline Icon & UI (3:1)
Suggest for
Tints & shades (OKLCH)click a swatch to copy

What it does

Paste a color in any format and get all the others, each with a copy button: HEX, RGB, HSL, HWB, OKLCH, OKLab, CIE Lab/LCH (D50) and color(display-p3 …). It also reads and writes what .NET code uses: Color.FromArgb(…) (int, ARGB or alpha + named color), Color.FromRgb, Colors.Red, the Color [A=…, R=…] text from ToString(), 0xAARRGGBB, signed ToArgb() integers and XAML #AARRGGBB. Use the 8-digit hex switch to choose whether #xxxxxxxx means CSS order or .NET order.

Lab, LCH and OKLCH can describe colors that sRGB cannot show. Those are flagged, and the hex/RGB values are gamut-mapped with the CSS Color 4 method (OKLCH chroma reduction) rather than clipped. The math follows CSS Color 4: sRGB transfer curve, D65 white point, Bradford adaptation to D50 for Lab, and Björn Ottosson’s OKLab.

Contrast

The color you entered is treated as text, the second color as background. You get the WCAG 2.x contrast ratio with pass/fail for AA and AAA (normal and large text) and for UI components (3:1). The ratio is rounded down, so a pair shown as 4.5:1 really passes. The APCA Lc value is shown for information only, because it is not part of WCAG 2.x. Semi-transparent colors are composited the way a browser would draw them.

When a pair fails, the tool suggests the nearest passing text and background colors by changing OKLCH lightness only, so hue and chroma stay the same. Click Apply to use one.

Palette

The 50–950 tint/shade scale is built in OKLCH, and your color appears unchanged at the nearest step. Copy it as CSS custom properties, a Tailwind v3 colors block or a Tailwind v4 @theme block.

Privacy

Everything runs in your browser. The inputs are stored only in your browser’s local storage.