Color Converter: HEX, RGB & HSL Explained with Examples

Master color formats and conversions for web development and design

Developer ToolsApril 12, 20268 min read

Why Color Formats Matter in Web Development

Colors on the web can be expressed in multiple formats, and understanding the differences between them is essential for both developers and designers. CSS supports HEX, RGB, HSL, and several other color models. The right format depends on the context: design tools often output HEX, CSS custom properties work well with HSL for theme adjustments, and RGB gives you direct control over display channels.

A color converter eliminates manual math and ensures accuracy when translating between formats. Let's break down each format and when to use it.

HEX Color Format

HEX (hexadecimal) is the most common color format in web development. A HEX color code starts with # followed by 6 hexadecimal digits representing the red, green, and blue channels:

#RRGGBB
#FF5733 → R:FF(255) G:57(87) B:33(51)

Each pair of digits ranges from 00 (0) to FF (255), giving 256 possible values per channel and over 16.7 million total colors. The shorthand 3-digit form #RGB is also valid: #F53 expands to #FF5533.

HEX is compact, widely supported, and the default output of most design tools (Figma, Photoshop, Sketch). It's the format you'll see most often in CSS and HTML.

RGB Color Format

RGB (Red, Green, Blue) represents colors as a mix of three light channels, each ranging from 0 to 255:

rgb(255, 87, 51)
rgba(255, 87, 51, 0.8)  /* with alpha/opacity */

RGB directly maps to how screens display color — each pixel has red, green, and blue subpixels. This makes RGB intuitive for developers who think in terms of light mixing. The rgba() variant adds an alpha channel (0 to 1) for transparency, which is essential for overlays, gradients, and UI elements.

RGB is the best choice when you need to manipulate individual channels programmatically — for example, generating color variations or applying filters in JavaScript.

HSL Color Format

HSL (Hue, Saturation, Lightness) describes color the way humans perceive it:

hsl(11, 100%, 60%)
hsla(11, 100%, 60%, 0.8)  /* with alpha */

HSL is the most developer-friendly format for creating color systems. Want a darker version of a color? Decrease lightness. Want a muted version? Decrease saturation. This makes HSL ideal for CSS custom properties and theme generation.

How to Convert Between Formats

HEX to RGB

#FF5733 → R: 255, G: 87, B: 51
// Parse each pair: FF=255, 57=87, 33=51

RGB to HEX

rgb(255, 87, 51) → #FF5733
// Convert each value to 2-digit hex

RGB to HSL

The conversion involves several steps:

  1. Normalize RGB values to 0-1 range: R' = R/255
  2. Find min and max of R', G', B'
  3. Calculate lightness: L = (max + min) / 2
  4. If max equals min, saturation is 0
  5. Otherwise, calculate saturation and hue using the chroma formula

While the math is manageable, doing it by hand is tedious. A color converter tool handles all conversions instantly and accurately.

Practical Use Cases

Creating a Color Palette

Start with a base color in HEX from your design tool, then use HSL to generate variations. For example, a button's hover state might use the same hue but with 10% less lightness, and a disabled state uses 50% less saturation.

CSS Custom Properties for Theming

:root {
  --primary-h: 262;
  --primary-s: 83%;
  --primary-l: 58%;
  --primary: hsl(var(--primary-h), var(--primary-s), var(--primary-l));
  --primary-dark: hsl(var(--primary-h), var(--primary-s), 40%);
  --primary-light: hsl(var(--primary-h), 20%, 85%);
}

This approach makes theme switching trivial — change the hue values and the entire color system updates automatically.

Accessibility and Contrast Checking

When converting colors, always check contrast ratios for accessibility. WCAG 2.1 requires a minimum contrast ratio of 4.5:1 for normal text and 3:1 for large text. Converting to RGB makes it easy to calculate relative luminance and verify compliance.

Other Color Formats You Should Know

Conclusion

Understanding HEX, RGB, and HSL color formats is essential for effective web development. Each format has its strengths: HEX for compactness, RGB for channel manipulation, and HSL for intuitive color systems. Use a free color converter to switch between formats instantly, and leverage HSL-based CSS custom properties for maintainable, flexible design systems.