🎨 Free Color Picker — HEX, RGB, HSL & Contrast Checker

Pick any color, copy its HEX, RGB and HSL in one click, check WCAG contrast with live AA/AAA badges, and generate a 10-shade palette. Free, private, no sign-up.

🎨 Pick a color

HEX
#f2c230
RGB
rgb(242, 194, 48)
HSL
hsl(46, 88%, 57%)

🌈 Shade strip — 10 clickable tints & shades

Same hue, stepped lightness — a ready-made palette for backgrounds, buttons and text. Click any shade to copy its HEX. Great for mood boards and Pinterest palettes.

⚖️ WCAG contrast checker

Large heading text

The quick brown fox jumps over the lazy dog — body copy at a normal reading size.

18.42:1

📖 How to use

  1. Pick a color — tap the big color box for your device's native picker, or type a HEX, RGB or HSL value directly into any field; all formats update instantly.
  2. Copy what you need — each format has its own one-click copy button, or grab the full CSS snippet (HEX + RGB + HSL + CSS variable) in a single paste.
  3. Build a palette — the shade strip generates ten matching tints and shades from your color; click any one to copy it.
  4. Check contrast — set your text and background colors and read the ratio with live AA/AAA pass–fail badges. Swap them to test dark mode too.
  5. Ship it — everything runs locally in your browser, so brand colors never leave your device. Paste the copied values straight into CSS, Figma or your design tokens.

🧪 HEX vs RGB vs HSL — which one is for what?

Every color on a screen is the same number wearing three different outfits. HEX (#f2c230) is the web's default: compact, paste-ready, and the format browser dev tools and Figma show first. RGB (rgb(242, 194, 48)) speaks in three channel values, which is what canvas, image libraries and server code usually expect — and it grows an alpha channel (rgba) when you need transparency. HSL (hsl(46, 88%, 57%)) is the human-friendly one: raise the L to get lighter, lower the S to go muted, nudge the H to slide to a neighboring hue. That is why HSL is the design-system favorite — an entire shade scale is just one number changing.

FormatLooks likeBest for
HEX#f2c230Plain CSS values, Figma/Sketch fields, config files, sharing with developers — the most portable format
RGBrgb(242, 194, 48)Canvas and image APIs, adding transparency with rgba(), code that expects separate channel values
HSLhsl(46, 88%, 57%)Building tints, shades and design tokens — tweak lightness or saturation without guessing new hex digits

⚖️ WCAG contrast basics (for European websites)

Contrast is measured as a ratio from 1:1 (no difference) to 21:1 (black on white). The Web Content Accessibility Guidelines (WCAG) set the bar: 4.5:1 for normal text and 3:1 for large text and UI components to reach level AA; 7:1 and 4.5:1 for level AAA. In plain English: light grey text on a white background usually fails, while the same text darkened a few steps passes — the checker's badges above show this live. Why this matters in Europe: WCAG 2.1 AA is the benchmark inside the harmonised European standard EN 301 549, which public bodies across the EU must meet, and the European Accessibility Act is extending similar duties to many private online services. Aim for AA on every piece of readable text — it protects low-vision users, helps mobile readers in bright sunlight, and keeps you on the safe side of European accessibility rules.

💡 Tips for designers

Define tokens in HSL. Store brand colors as hue/saturation/lightness values, then generate your light and dark variants by changing only the lightness. It stays more consistent than hand-picking hexes.
Check contrast on real backgrounds. Compare your text against the actual opaque background it sits on — a color that passes on white can fail on a photo or gradient.
Design the strip first. Pick one brand color, generate the 10-shade strip above, and assign roles: lightest for page backgrounds, darkest for body text, mid tones for buttons and links. Instant palette.
Never rely on color alone. Color-blind users cannot distinguish your red-green error states; pair colors with icons, labels or underlines for meaning.
Test on your phone. A refined palette on a calibrated monitor can wash out on a bright phone screen outdoors — if it barely passes AA on desktop, darken it one more step.

❓ Frequently asked questions

Do I legally need to check contrast on my website in Europe?

If your site offers products or services to the public, quite possibly yes. The European Accessibility Act is transposing into national law across the EU, and public-sector bodies have been bound to WCAG 2.1 AA for years under the Web Accessibility Directive, based on the harmonised European standard EN 301 549. Even without a legal duty, AA contrast is the accepted definition of "readable text" in Europe — aim for at least 4.5:1 on body text.

Which color format should I paste into my CSS?

HEX for plain color values (#f2c230), RGB/rgba when you need transparency, and HSL when you plan to tweak lightness programmatically. This page's Copy full CSS snippet button gives you all three in one ready-to-paste block, so you can use whichever your code needs.

How do I make a matching shade palette from one color?

Keep the hue (and roughly the saturation) fixed and step the lightness through about ten values — exactly what the shade strip generator above does. Pick your brand color, then click any of the ten generated shades to copy its HEX. Use the lightest shades for backgrounds, the darkest for text, and the middle ones for buttons and accents.

Do logos and decorative text need to pass contrast?

No. WCAG exempts logotypes and purely decorative text that nobody needs to read to use the page. Everything functional — body copy, form labels, buttons, navigation — should meet at least AA: 4.5:1 for normal text, 3:1 for large text and UI components.

Is my color data sent to a server?

No. The picker, converter, contrast math and shade generator are plain JavaScript running locally in your browser. Nothing you type or pick is uploaded, stored or logged — brand colors stay private.

🔗 See also

🔐

Password Generator

Create strong, random passwords with a strength meter — free and private.

Generate →
📏

Unit Converter

km to miles, kg to pounds, °C to °F — 7 categories, instant conversion.

Convert →
🔐

Base64 Encoder & Decoder

Encode & decode Base64, URL-safe mode, file→Base64, image→data URI.

Encode →
Share: