Is there any formula or correction values for r, g, b channels, that takes into account visual perception of color and will allow me to adjust generated colors to be more pleasant while keeping them on approximately same level of saturation and lightness?

I'm using "vibrant.js" library to pick colors from images and use them in my app's interface. I pick two colors "darkMuted" and "vibrant" - one for the background areas and one as an accent color for controls.

After plugin returns the colors, I adjust them slightly, to ensure they work well together and have enough contrast. Basically, for the "darkMuted" color I'm setting saturation and lightness equal to 0.2. For the "vibrant" color I'm using the saturation of 0.8 and the lightness of 0.6.

However, while giving good results on the average, this approach lacks the adjustment for the subjective perception of color. As you may know a couple of colors with different hues and same "s" and "l" values could be percieved differently: one as a pleasant color and another as an acid'ish, "my eyes are bleeding" color (especially with the green and purple hues).

Is it possible to receive colors with an equal visual perception using this kind of approach? Or, maybe, there are better ways of doing the same?

UPDATE: As far as I know Google using color picking from the image in their Android music app. How do they know that picked colors work well together and visually pleasing?

UPDATE 2: By this link you can find screenshots of the image and picked color pairs. I've added pairs of screenshots to show you the difference between "original" color pair returned by "vibrant.js" and colors with adjusted s and l values.

Thank you in advace!

  • Hello and welcome. I have removed the color conversion tag, or are you really suggesting we talk about what the color looks like on a another users monitor. If you need to be this precise then you lose by default.
    – joojaa
    Commented Feb 19, 2018 at 7:42
  • I think I understand what you want, but I'm unsure if it's possible. Since colors essentially are nothing but RGB values, you need to find a mathematical reason to why you perceive one color as "pleasing" and another color as "acidish". Is it just subjective or do the colors you don't like have something mathematical in common? Maybe we could get closer to an answer if you showed us examples of the different color pairs you have found, and specify which of them you regard as "unpleasing".
    – Wolff
    Commented Feb 19, 2018 at 11:46
  • Perhaps you are looking for a way to create complimentary colours? There are several online tools such as Adobe Color
    – Billy Kerr
    Commented Feb 19, 2018 at 13:06
  • @Wolff, I've attached the link to a dropbox folder with screenshots. Not the actual interface, but will give you the rough idea. Commented Feb 19, 2018 at 14:11
  • 1
    "the subjective perception of color" - I think you answered your own question here. It is subjective what is pleasant and what is not, and that changes by the eye perceiving it, the context it is seen in, the mood of the seer, and so on. You mention downstream that pastels are universally pleasant, am I wrong to not like them? God forbid someone finds this formula you seek... it will only mean they are mandating what is good and what is bad; a problem for those whose tastes vary from the mainstream.
    – rebusB
    Commented Feb 20, 2018 at 21:26

1 Answer 1


It is impossible to create "pleasant looking" colors for everyone. There's no formula which can be used. Every single person on earth has their own biases and preferences. There's no such thing as "universal acceptance" when it comes to color or artwork.

Due to inherent frequency differences in various colors, it's also practically impossible to "match" the saturation/vibrance between some colors, especially opposing colors and especially using some formulaic approach. Some color ranges will naturally appear more vibrant than others. Therefore universally applying the same adjustments will pretty much always make some colors fall within your desired range, while other colors are way too over corrected.

Your current approach is as good as any. Find what works for you or your team, because ultimately that's all you can do.

Color choice is far more of an art, than a science. You can't force math to work regarding human perception.

  • Thanks for the answer! I totally agree with you that It's nearly to impossible to create universaly pleasant color. Maybe I was incorrect in my terms. When I told "pleasant color" I meant something that most people would percieve as pleasant or ar least not irritating. Almost everyone would agree that pastel colors are pleasant, but just few would find 100% saturated and bright colors like pure 255 red or 255 green comfort to look at, or am I wrong? Also, I'm not advocating my approach. Over against, I believe there is a better way of doing it. Maybe some correction table? Commented Feb 19, 2018 at 21:13
  • 1
    No see.. you are still making (incorrect) assumptions. "Most people" do not find "pastel colors pleasing". In fact, some people really dislike pastels. You can't mathematically determine what will or will not be liked. You are seeking the impossible. Human beings never have a consensus on what may be "best". It's art and NOT science. And you can't force it to be a science.
    – Scott
    Commented Feb 19, 2018 at 21:20
  • maybe you're right, and I'm asking for too much. But Google somehow managed this problem with their notifications system: photos.google.com/share/… Commented Feb 19, 2018 at 21:34
  • 1
    No. Google determined what Google thought worked best... not what the public would "like best". As I posted in my answer, use what you think works well. You can't chase after what the general public will like or dislike. It's a fool's errand. You can use some broad, general things such as color preferences by age But beyond that, it comes down to the designer's choice. If it was all a mathematical formula... why would anyone need a designer?
    – Scott
    Commented Feb 19, 2018 at 21:37
  • 1
    Google creates their products to make money. Don't kid yourself. They aren't creating "for the people".. they are creating products for return on investment. I understand that you want this to be science. It's not. And there's no math you can figure out which will work. But, of course, you are free to keep trying. If all art could be programmatically created, the need for any artist would vanish and Google would not employ any designers whatsoever. All they would need are mathematicians.
    – Scott
    Commented Feb 19, 2018 at 22:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.