Hacker News new | ask | show | jobs
by siriusfeynman 353 days ago
> do you know rgb

> colours are in hex

am I missing something or being dumb?

2 comments

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

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!
It's a shortened form of hex colors from CSS, but it does correspond to RGB since the first character of the hex value is the R, the second character is the G, and the third is the B. So for instance, a hex value from this game of #F18 means the red is F (out of F), the green is 1 (out of F), and the blue is 8 (out of F).