Is the HEX to RGB converter free?
Yes. It is completely free to use, with no signup, no account, and no paywall.
Do I need to install anything?
No. It runs in any modern browser on desktop or mobile, with nothing to download and nothing to configure.
Does it stay local?
Yes. All the color math runs entirely in your browser, and nothing is sent to a server.
How does three-digit hex expand?
Each digit is doubled, so #abc becomes #aabbcc and #f00 becomes #ff0000. It is not padded with zeros, which is the common misconception, and the difference matters: doubling gives #aabbcc, whereas padding would give #a0b0c0, a visibly different colour. The consequence of the doubling rule is that the shorthand can only express 4,096 distinct colours, one for every combination of three hex digits, which is why a designer's exact value rarely survives being written in shorthand.
Why does the HSL value look wrong for my colour?
It is probably correct and not saying what you think. HSL lightness is a geometric construct, not a perceptual one: it is the midpoint between the largest and smallest RGB channels. That means a saturated yellow and a saturated blue both report a lightness of 50% despite one being far brighter to the eye. HSL is convenient for nudging a colour lighter or darker within a hue, and it is a poor foundation for a palette with even perceptual steps, which is exactly the gap OKLCH was designed to close.
Can I convert a colour with transparency?
Not here. The four-digit and eight-digit hex forms append an alpha channel, so #ff000080 is red at roughly 50% opacity, and every modern browser understands them. This converter accepts the three-digit and six-digit forms only, so remove the alpha digits before pasting, and add the opacity back in your rgba or hsla output afterwards.
Is #808080 half as bright as white?
No, and this trips up almost everyone doing colour maths. sRGB values are gamma-encoded, which means the numbers are not proportional to physical light. Middle grey at #808080 emits roughly 22% of the luminance of #ffffff, not 50%. This is why blending two colours by averaging their channels produces a result that looks too dark, and why contrast calculations require converting to linear light first rather than working with the hex values directly.
Does the conversion happen locally?
Yes. It is arithmetic on three numbers, performed in your browser, with nothing transmitted.