Here’s a fun experiment: if your app has a designer, ask them how many colors they think are in your app. Then, count the number of colors that you actually use in your app. The bigger the app, the more comical the difference will be.
I’ve got a solution for this which is pretty fun to boot. You should name your colors.
I find that a lot of people do a good job picking colors, but when it comes time to put those colors into practice, the names that get picked are somewhat boring. UIColor.gray40
? .appRed
? Where is the joy in that? Instead of really generic names, try to find short, unique, fun names for each color.
Finding names can be a challenge. Fortunately, there are tools that can help. For example, if you have a hex code, you can plug it into a website like Chirag Mehta’s Name that Color, Robert Cooper’s Color Name or colornames, the last of which seeks to name every single color (to sometimes hilarious effect). There’s also a GitHub repo with 30,000 colors in it that even has a public API for retrieving color names.
From those sites, you’ll get a name, which you may or may not like. If you don’t like the name, you can use the color picker to explore nearby names in the colorspace and try to find a name you you do like.
For example, given #3FAC38, I see “Green Seduction”, “Apple”, and “Grass Stain Green”, on each of the three websites linked above. Exploring a little bit, I can find names like Clover, Lima, or Hedge, any of which I think make reasonable names.
Another random color: #174FC5 gives “Denim”, “Mourning Blue”, and “Indigo Fork”. Denim is quite good, but we can also find Pacific, Sapphire, and Mariner if we want more options.
A great name is usually one word (which makes it short to type and easy to say), very different from the names of any other colors in your app, and is evocative. You want to feel the color as much as possible when you read its name.
The name doesn’t even really have to mean the color, as long as it feels good. For example, there was a blueish color in an app that we called “bunting” which I think we got from the Indigo bunting. We kept the “bunting” and tossed the indigo, even though you would think the other way makes more sense. Do what feels good.
Why name your colors at all? If I’m being completely honest, I mostly do it because it makes my work slightly more fun. You can find practical benefits, however: a small one is that they’re a lot easier to remember when writing code and easier to visualize when reading code.
A bigger benefit is that it forces you to stick to a color palette with a fixed number of colors. If your designer uses a new one in a design (an accident, I’m sure), you can innocuously ask them to name it, which either forces them to think hard about whether they want to add a new color to the roster, or makes them update the mock to reuse an existing color.
To close, a note on grays: I find that in practice, an app has more grays than any other color, and so this is the part that you’ll spend the most time in. Great gray color names come from metals and stones (“silver”, “boulder”, “slate”, “obsidian” “granite”), atmospheric conditions (“mist”, “fog”, “smoke”, “cloud”), and animals (“panther”, “dove”, “wolf”), but feel it out. You’ll find some good names.