235 comments

[ 2.8 ms ] story [ 218 ms ] thread
Very first thing I see is a rule that the names must be non offensive and the second thing I see is the color orange named after Trump.

Apparently not a very serious attempt.

People don't like to admit this, but "offensive" is by definition subjective (to whom does this give offense?).

Thus, unless you're fairly explicit about who it's not okay to offend, "offensive" is at best vague and at worst weasel-wording.

It is, however, common knowledge that calling that particular person orange is meant as an insult. No need to have a precise definition of "offensive" for cases like that.
I, as non USAer, have no idea what is the relation between Trump and orange.
I tried naming a particular shade of brown "solid poop" and it was rejected. I feel let down.
Trump does make an effort to be orange. It’s sort of a trade mark like John Deere green.
What are you talking about? TDS is very very real and very very serious. You can say anything negative about him here too but anything positive becomes political and gets removed by the intellectual mods.
(comment deleted)
Trump can be a word meaning “done better”. I trumped you at math.
A few of my favorites so far:

Screaming Grey: #AAAAAA

It's Still Basically Black: #000001

Nice: #696969 (lol)

These would make for some great candidates: https://colors.lol/ ;)

May be they should restrict it to 2 or 3 words without punctuation.
If it's 3 non-repeating unordered words, the minimum vocabulary will need to be 256*3 = 768. Realistically you'll need an order of magnitude larger. That's a pretty large vocabulary.
That’s not right. 256 * 255 * 254
I suspect you didn't catch gp's meaning: To get to 24 bits of color info, you'd need at least 3 words of 8 bit info each. If you want these to be non-repeating and unordered that makes 256x3=768 unique words.
This isn't correct though.

You need 256 base words, and two substitute words, one of which substitutes for the first repeat, and the other for the second, so 258 words total.

That accounts for the repeating but not the ordering, right?
Oh, by 'unordered' you mean that the three words could be in any order and still mean the same thing?

Okay but that's a strange requirement. A 'big burger house' isn't a 'big house burger', after all.

I had read 'unordered' as 'the collation order of the words has no connection to the ordinal rank of the underlying byte', for some reason

I'm just jumping in where I saw a misunderstanding :) I think that's what they mean by unordered as that makes sense with the numbers (I think).

To some degree I agree, but there are also a lot of cases where different orders aren't distinguishable easily. "Light bright red" and "bright light red" is the best I can come up with quickly but I'm sure you get the idea.

It is a minor point, but 467 words would suffice, as there are 16865705 possibilities to choose 3 elements out of 467. (This is the smallest possible.)
Strictly speaking, yes, if you just view it as unordered sampling without replacement. Although that would squeeze out nearly all of the creative side of things.
For a project a few years ago I labeled a color "priest socks." It was something like #000044: very very very very very very dark blue.

That managed to uncover all of the Father Ted fans on the team.

BTW, that "Nice Cyan" (#006969) is actually really nice (at least to me), I can imagine myself building a website/app with that color theme.
I have a handful I'd nominate as "lazy programmer" colors that I think are useful as placeholders but aren't as horrid as #FF00FF etc:

  blue   #aabbdd
  green  #aaddbb
  purple #bbaadd
  pink   #ddaabb
  orange #ddbbaa
(I usually end up using #bbddaa as well but it's just a different shade of green)
After seeing your comment, I thought blue should be #DaBaDe(e) but I wasn't first to come up with this idea: https://colornames.org/color/dabade
That ought to end well. "It enhances understanding! We benefit from a nomenclature..."

... that is apparently entirely reliant on case-sensitivity. Because "I'm Blue" is a very different color to "I'M BLuE" (and I guarantee there's probably dozens of other variations there, at least).

Seriously?

#BADA55 - hex for some key lime pie in the web UI
haven't checked if it's there, but

Stubbed Toe: #FFFFFF

#DEADBF is dead beef, as it should be.
No Fate: #000fa8
I'm curious—is there a point to giving two separate names to two colors which are indistinguishable from one another to the human eye?

There are zero people in the world who can tell #FF4500 from #FF4501, so aren't they effectively the same color?

By induction, doesn’t that mean we would only have one color name?
If there are zero people who cannot tell two colors apart, they should have the same name.

If there is at least one person who cannot tell two colors apart, they should have different names.

What does 'telling a color apart' even mean? I did a mini project some time ago, where I basically did some custom color quantization (it was to reduce an image into a configurable amount of discrete colors, to make a pixel quilt with a manageable amount of distinct fabric colors). So I used CieLAB colors to calculate the 'visual distance' between the available colors and then recursively merged colors until I got to the desired amount. But even a simple algorithm like that, it turned out, could be implemented in several way; each of which gave different, yet equally 'valid' results.

My point being - it's very hard to give a simple, unambiguous meaning to seemingly simple concepts like 'what is a color', 'when are colors the same' and 'are these two colors more similar than those other two'. There is a lot of abstraction between the physics of light and representations of color e.g. on a screen, or in fabric, or when printing.

I think in the case of telling two colors apart, it's can be as simple as presenting them side by side, and seeing if someone can distinguish a difference.
Not sure that is so simple unfortunately.

First, because if I recursively apply your argument, then no color would have a name. Starting from the very 1st lowest color frequency and the 2nd right next to it, no-one could differentiate them. Apply the same logic between the 2nd and the 3rd, the 3rd and the 4th, etc.

So you cannot apply this argument to "any" color pair. You would have to define a set of starting colors, and always do the comparison against them. Now you enter the problem of which starting colors to starts, and the fact that using any pre-existing color names would most likely not be evenly distributed on the color spectrum.

Second, it wouldn't work because color recognition is not a transitive process.

- If you show me two very close red variations side by side, I may not be able to tell the difference.

- If you space the variation, I may be able to tell that there are 2 different reds, but wouldn't be able to tell which one is darker/lighter accurately.

- If instead of showing me the two close reds side by side, you show them to me paired with an other color, I may be able to tell the difference. For instance, show me a board with half red1 + yellow, and an other board with red2 + yellow. I may spot than 1 of the red + yellow is matching that good compared to the other one.

You can get out of that argument by saying that colour names apply in different amounts to different hex-colours.

So #FF0000 is red. But is #FA0101 is also red, just slightly less so.

That's interesting. So what you have is some sort of similarity metric that is colour based. You could define it as being 1 for an exact match, and 0 for not matching, so cyan, etc. would be 0 red, while orange may be slightly red (e.g. 0.1), and pink may be slightly more red (e.g. 0.25). This would be a 3D function/surface.

This would allow you to model classes of colours, like purples. Shades of a colour could then be any similar colour in the range 0 to 0.5 (or 0.25).

Yes, this is what Delta E in the CIELAB color space is meant for. But in RGB color space this concept doesn't make sense; well, only if you would accept a non linear similarity metric - but then what is the metric for, if you need to apply a curve to it to normalize it? But still, this is different from modeling 'shades' of a color (if we say 'shades' are varying brightness in RGB space using the 0.21/0.72/0.7 brightness conversion - but again, I argue that 'shades' is an ambiguous concept).

My point is, again, that colors are a much more difficult concept than some in this discussion are making it out to be, and 'distance between colors' is more complex still.

Yes, agreed.
Yep, in fact, that’s exactly what those hex codes are: a specification for how much red, how much green, and how much blue is in the color (though our vision and color perception may not map linearly to that specification).
Sort-of. My aim was to suggest looking at natural clusters of similar shades.

You can map those clusters into RGB space. Or other colour spaces.

Technically you are correct, but I don't think that's what the colour-namers are going for.

That restricts you to 8 bits per color channel, and more importantly, to the RGB color space which is non linear. Comparing colors in RGB color space is nonsense in the first place ('comparing' here is 'judge by human perception'). 'Comparing' colors is just not that easy; in fact, I'd argue that without (much) more definition and clarification, it's impossible to do, because it can mean different things depending on the purpose.
I only used RGB and 8 bits per channel in the example.

My argument was more general.

> What does 'telling a color apart' even mean?

Being able to distinguish colors on a test such as https://xritephoto.com/cool-tools

Although I got it right in the end, I found the second row to be insanely hard.

But somehow, on all rows, the colors just seemed to snap into place for me, is that a normal feeling?

I don't follow. Two given colors being indistinguishable doesn't imply that any two colors are indistinguishable.
Your suggestion was that if two colors are indistinguishable, they should have that name.

But given any two colors A and B you can construct a sequence C1 = A, C2, C3, ..., Cn = B where adjacent colors Ci and Ci+1 are indistinguishable from each other, and so need the same name, for 1 <= i < n. Hence, A and B have to have the same name.

So make Ci and Ci + 1 distinguishable. Problem solved.
The problem with your argument is that indistinguishable doesn't mean the equal. I'm not saying there is no difference between adjacent colors. I'm saying that the difference is indistinguishable. A lot of indistinguishable differences add to a distinguishable difference.

Think about it with numbers: if your sequence A, B, C... are each zero units apart, then yes, A = B = C = ...

In actuality, though, they are not zero units apart. They are a small, but positive distance apart. Those tiny differences add up so the distance from A to C is twice as far as the distance from A to B.

Any two adjacent colors must either have the same name or different names.
This assumes a color must have only one name. Why not two, or more?
Having more than one name doesn’t change the story, and neither does some colors having no name at all. For each pair of adjacent colors which is indistinguishable to most people, and the two colors must either have the same name (the two sets of names are equal) or different names (the two sets of names have no intersection).
Let's do an example, using just colors with no red or green in their RGB representation so we just have to give the B component, which is a decimal from from 0 to 255. Let's call 0 "black".

Your suggestion was that if a color is close enough to another to be indistinguishable it the two should have the same name.

1 is close enough to 0, so gets the name "black" too.

How about 2? That's farther from 0 "black". Is it distinguishable? If not, it too is "black", and we can go on to compare 3 and 0, and beyond.

At some point we get our lowest blue-only RGB color that is distinguishable from 0 "black". Suppose that is 4. So we have 0, 1, 2, and 3 are all called "black", and since 4 is distinguishable from 0 it needs a new name, say "very light blue".

But now we have 3 "black" only 1 away from 4 "very light blue". Those are probably indistinguishable, so are supposed to have the same name. Oops.

"can't tell apart" isn't a transitive relation. That is, just because I can't tell A from B and I can't tell B from C doesn't mean I can't tell A from C.
“Has the same name as”, however, is a transitive relation.

So, if no two indistinguishable colors have distinct names, and for every pair of colors have a path between them of colors such that adjacent colors in the path are indistinguishable, then all colors would have the same name.

The flaw here is the assumption that colors have a single, well-defined name.
Even if you associate each color with a set of names, if the graph where vertices are colors and edges are “these colors are indistinguishable” is connected, and any two indistinguishable colors have the same set of names, then all colors would have the same set of names.

The solution of “assign a degree of applicability if each name to each color” and allow a color name to have different levels of applicability for a pair of indistinguishable colors, sorta solves the problem?

But, in a sense, isn’t “to what degree do each of these names apply to this color” just a kind of identifier like a name is? (Though it has the advantage that we can talk about the identifiers being very close to each other )

We can’t have identifiers for colors always be the same iff the colors are indistinguishable, because “is the same” is transitive while “is visually indistinguishable” is not.

Therefore, in order to be able to describe a large variety of colors (with say, rgb), we choose to use an identifying scheme (such as rgb) which has different identifiers for colors which are visually indistinguishable.

If that were so that would mean induction was a bad thing.
Hah, I love it! There's a lot to dislike about HN and the culture here, but questions like these that sort of make me go "Well obviously not, because ... erm" are quite common and always interesting.
(comment deleted)
Sure. At a minimum, it seems some folks find it entertaining to do so. That is a point. But naming them for the conventional purpose of indexing into cognitive clusters doesn't work, obviously.
I can't take it as more than a joke.

Or maybe lockdown is really getting to their head.

Sure.

And conversely, there are infinitely more colors than that particular digital representation can express.

The entire website is obviously a silly joke. Even if the colours were distinguishable you wouldn't go about naming them in this fashion but in some more systematic fashion
I thought the entire thing was an excuse to have yet another node dependency.

    const namedColors = require('namedColors'); 
    const chalk = require('chalk');
    console.log(chalk.hex(nameColors['Hacker News Orange'])(
       lol, you just downloaded a 200meg dep for named colors
    ));
Good, let's have it so that the the senior developers can come in and save the day by hardcoding the "hacker news orange" :)
I propose that names be considered more like probability distributions. For example the name “red” has a probability distribution that probably peaks in the neighbourhood of #FF0000 but includes a large range of colors; the distribution of the name “crimson” likely has a much narrower distribution. Under this interpretation, and given enough data, one could feasibly extract “the” name for any given colour using a maximum likelihood estimation (what name is most likely to generate the observed colour).

And to collect data on this, one could for example ask many random users to choose the range of colours they believe correspond to a given name (“select all red colours”) and merge the results into the distribution. (There are many, many other ways to carry out such a survey; this is but one example).

Obviously, you won’t get to 16M names this way, but you could definitely learn quite a lot about where the “boundaries” are between colours from this kind of exercise!

You might expect to hear this, but what you're hinting at was done by xkcd: https://blog.xkcd.com/2010/05/03/color-survey-results/

Particularly, what you're describing is this: http://imgs.xkcd.com/blag/satfaces_map_1024.png :-)

Every time I see that xkcd I'm never surprised that gold is the smallest section. It's consistently a pain in the ass to get something that looks semi-decent gold ish. A shine effect helps, but then that's more work to get right.

#b18800, from the xkcd, looks pretty bad; #d4af37 is a good bit better, #cfb53b is semi-passable IMO.

Depending on how it's produced it's not even _a_ colour, it's three colours, or two colours, then the same two with a bit of blue. Perhaps my eyes lack a normal number of blue receptors, and a substantial amount of blue still wouldn't alter the perceived colour.
I can't see this succeeding at all. Randall Munroe tried something similar and the results weren't encouraging: https://blog.xkcd.com/2010/05/03/color-survey-results/

> People are primed by the colors they saw previously, which adds overall noise and some biases to the data

and

> Moreover, monitors vary; RGB is not an absolute color space

2000 suggestions a hour seems like a success to me.
Would be fun to take all this data and interpolate it to all the 16M colours using a natural language model. We'll need this if we want to stand a chance against at ten bit colour depth.
Maybe kind of silly like buying titles to land on the moon but I have to admit to naming a few. It’s fun.
One of my favorites:

Greerg: #123321

So I can give it my name?
They have a voting system, it seems.
More discrimination against us colour blind people. The basic names are confusing enough - my housemate mentions something "green" when there's no such thing, he's talking about the brown one.
Can you suggest an alternative?
I think Perenti is just joking.

I'm colourblind myself. I mind when eg UI elements or real world distinctions are _only_ communicated by hue (instead of also using texture, brightness, saturation, shape, text, etc); but I don't think anyone can mind less disabled people making full use of the facilities they have.

Although mostly tongue in cheek, I do think the lack of awareness by some UI designers is a real issue. I've also found IDE syntax colouring schemes that are just too hard.

I've also found posters and signs where important information is in colours/shades that I can't discriminate between. Sometimes I wonder if there should be a law that prevents safety information being green on brown, or brown on green, or the wrong shades of red/green/brown together.

And no, I don't do domestic wiring, nor can I read many resistors.

I am wary of adding extra laws. Especially ones that are hard to enforce. Luckily, I found that people seem to be paying more attention to accessibility than they did in the past.

Eg Game Maker's Toolkit has a video series about 'designing for disability', see eg their 'Colourblindness & Low Vision' entry at https://www.youtube.com/watch?v=xrqdU4cZaLw

One of their points is that lots of adjustments made to assist people with disabilities can also help normal people grasp information quicker or in unusual circumstances.

I sometimes wonder if there are actually that many colours, or whether people are just making up differences that don't exist.

They seem to have their conspiracy up and running pretty tight, though: when I ask different people, they usually give me the same answer. All very well prepared!

So amused by this project as I struggle to give names beyond "copper", "blue", "dark green", etc.
"Blartreuse" ow my sides...

They need to have a way to sort by votes, or have a "Best of" or whatever. I was curious (and they provide the data! Thanks!)...so naturally-

  $ curl -sL https://colornames.org/download/colornames.zip | zcat | sort -nk3 -t, | tail -n10
  486d83,Blue Loneliness,0.069
  123456,Incremental Blue,0.071
  1eeb01,Creeper Aw Man,0.072
  336699,MetaFilter Blue,0.077
  abcdef,Alphabet Blue,0.078
  696969,Nice,0.124
  b83c73,Red Tedir,0.139
  ff0000,Red,0.249
  ffffff,White,0.417
  000000,Lil Huddy,1


Edit: sorry..."Focus Group Blue"...im dying
Hey, I independently came up with a similar solution (https://notryan.com/colors) and it renders to HTML.

But ugh... I applaud your simplicity. I used `unzip` instead of zcat, but I guess .zip files normally use GZIP internally. And, I didn't know you could use `sort` for a specific field! So I ended up using a full SQL engine... Learn something new everyday :)

Of course, 16.7M colors aren’t all colors, not even in “web space”. Enter color(display-p3). https://webkit.org/blog/10042/wide-gamut-color-in-css-with-d...
CSS Color Module 4, which introduced support for the DCI-P3 color space, also introduced support for the even larger ProPhoto RGB and Rec.2020 color spaces (as well as the similarly-sized Adobe RGB). These were already supported in media that could be embedded in web pages.
Voting system kinda ruins it, ppl game it too much and bring in western cultural references a lot so their choice goes to the top instantly
Western cultural references are kind of unavoidable when naming things in English I think.
Added "Hacker News Orange" to the list: https://colornames.org/color/ff6500

I'm struggling to figure out if this is a serious attempt, though.

There are submissions from 7 and more months ago. Seems serious.
HN should allow changing of color of top bar via a get parameter. It would be awesome.
You can change it in your profile settings (though that’s not exactly what you’re asking for). I think there’s a karma threshold, though.
I believe it's 256
I was so happy when I reached that number (or whatever it was) and didn't have to look at the orange bar any more.

For anyone looking for a more tasteful topcolor, try d0c8b5. It's just a darker version of the main HN background color, so it's easy on the eyes.

And here I thought it was released for everyone at the point where I apparently hit that number. Is it just me, or is the fact that it's based on karma not clear?
I mean, Hackernews isn't known for its good UX. What does "showdead", "noprocrast", "maxvisit", "minaway", "delay" do in the profile? I've been using HN for a while and I have no clue
It’s 250. There’s also a list of all colors in use, sorted by frequency: https://news.ycombinator.com/topcolors
#abcabc is second on HN... "soft foam". Because people like foam, or easy to remember?
(comment deleted)
Nice. I did not know this. I have set mine to #fff2af. I used to manually edit each character and see if it fits for me. It is 480 of 2923 in that list!
I love that chrome offers to translate this page from Welsh.
Some funny ones:

c0ffee, dadb0d, badcab, deface, deadbf, baddad, daddad, debeef, beefed, adbeef, beeeef, efface, faceb0, deeded, facade, 2faced, decafe, dabeef

#debeef is a lovely lavender actually!

Write a Grease-monkey (or equivalent) script, that reads your query variable, applies the value to the top bar, and then add that parameter to all links on the page.

Optional: Then write a bookmarklet, that displays a color-picker, and reloads the tab with the changed querystring variable.

(HN web server admin might get some "scary" log file entries though, regarding an "unusual" additional QS variable)

That’s called CSS. Use a user style, not javascript. The query is not applicable since its not offered by HN themselves.
You are misunderstanding what grease-monkey can do, and what I'm proposing.

e.g. try loading news.ycombinator.com?myColorVar=44ff55 , it will load normally, as usual. Of course, this variable means nothing to the HN backend, but this is where e.g. Grease-monkey comes in: It injects a bit of javascript of your choosing into the page context for the news.ycombinator.com/* pages. This scriplet can easily change the color of the header-bar, and add the colorVariable to all (non-external) links.

Of course, you can add a line like the following to your local userContent.css:

@-moz-document domain(news.ycombinator.com) { #hnmain>tbody>tr:first-of-type>td { background-color: lime !important; }

, but this has the disadvantage of requiring a Firefox restart for each change, whereas my method requires only twiddling the value in the URL, and it's valid for all future requests, until you change it again.

I hope, the above makes it clearer, what I meant the post above

The following code snippet in a grease-monkey-script with

// @include https://news.ycombinator.com/*

in the header will color the top-bar on HN pages with the color given in the URL such like https://news.ycombinator.com#MYC=lime or https://news.ycombinator.com#MYC=#ce1c01 .

(function() { if (color=document.location.href.match(/#MYC=(.)/)[1]) { document.querySelector("#hnmain>tbody>tr:first-of-type>td").setAttribute("bgcolor",color); document.querySelectorAll('a[href^="https://news.ycomb"],a:not([href="/"])') .forEach(e => {e.href+="#MYC="+color}); } })();

This script colors the top bar, and adds the custom colour to all HN-internal links, so until you manually change the URL, further navigation in that tab within news.ycombinator.com will retain your chosen top-bar colour.

(I hope the code comes out formatted in a legible way)

You’re missing the point of the query. What’s the point of using the query at all?

OP suggested it as a way for users to customize their HN color; Then you suggested to take this query and make an extension out of it.

If you want to customize your HN color, use CSS, not this roundabout way through a query parameter.

The query never makes sense anyway. If HN were to allow customization they’d allow it in the options, not as a random query that you have to set manually.

On my browser, it appears that the top bar of Hacker News is #ff6600. Is there somewhere that #ff6500 is used?
(comment deleted)
Heyyo "Hacker News Orange [0.123]" is ranked #5 now.

Edit: I think my new favorite is "#403403 Forbidden Brown"

I'm still working diligently on counting the grains of sand on the beach closest to me, and hopefully we can pool all of our work together for a final count. As soon as that's done I'll start trying to name all the stars. Colors? I'm tired already.
But you're not giving each one a name. Slacker.
There are only 5000 stars visible to the human eye. And many already have names. That would be a much easier job than naming 16m colors ;-)
Grains of sand? Easy! Want a real challenge? Try naming all the numbers between 0 and 1! I've been at it for weeks and struggling to get much past 0.
Ha, I thought of doing that but decided it would be too hard, so i picked the much easier challenger of naming the numbers between 0-0.01. I'll be finished in no time.

Though it did cross my mind to split the range in to 2 parts and then recursively bin each part in two; if I allow repeating names ... Perhaps then ones chances would be greater than zero.

;oP

I am workingon naming a billion stars after real people name.
What about those colours which live beyond the pale of RGB in LAB space? Will they forever be nameless?
Would be nice a multi-language support
There's a downloadable dataset! Would be fun to train a color-labeling model :)
On X11 you have /etc/X11/rgb.txt with ~750 color names.