Hacker News new | ask | show | jobs
by williamdclt 357 days ago
This is hexadecimal notation for rgb. Each character represents 2 bytes, which encode a value from 0 to 255.

This is a bit more confusing because this is a shorthand notation: you’d actually need 2 hexadecimal characters for 2 bytes (eg #0077ff would be rbg(0, 127, 255)). In this shorthand notation, I think there’s an implied 0 (eg #07f is #0070f0).

So you can’t represent all rgb colour with only 3 characters, but for this use-case it’s fine.

In css you can use either of these 3 notations, for example

3 comments

The 3-digit shorthand for hexadecimal RGB colours dates back to CSS1, if not earlier.

From <https://www.w3.org/TR/CSS1/>:

> The format of an RGB value in hexadecimal notation is a '#' immediately followed by either three or six hexadecimal characters. The three-digit RGB notation (#rgb) is converted into six-digit form (#rrggbb) by replicating digits, not by adding zeros. For example, #fb0 expands to #ffbb00. This makes sure that white (#ffffff) can be specified with the short notation (#fff) and removes any dependencies on the color depth of the display.

I'm quite fond of the 3-digit hexadecmial RGB notation. It's a concise way to express the colours I use for web pages or Emacs font locking. In these cases, I rarely need the full 16-million-colour range offered by 6 digits. The 3 digits are usually more than enough, at least to me.

Every tool I've ever used referred to this as hex (including design tools but maybe I'm sheltered), whereas rgb refers to the 0-255 triples

If someone asked me for a colour in "RGB" they'd be rightly confused if gave them a hex format colour (obviously you can convert between them but that's not what they asked for)

I'm not sure I agree. One is RGB decimal, the other is RGB hex. It's not Lab, or HSV, or any other color space, it's RGB. Whether it's decimal or hex doesn't change that.
Hmmm I see what you mean, but it’s more of an abuse of language I think. Both are rgb. If I asked for an rgb id expect any format, it rarely matters (actually id probably expect an hex code _more_, i see it used more often, as its textual representation is well defined whereas the three numbers don’t have a universal textual representation)
In CSS, #07f is the same as #0077ff. (i.e. double each symbols)
Thanks for the correction!