<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Colors on Smashing Magazine — For Web Designers And Developers</title><link>https://www.smashingmagazine.com/category/colors/index.xml</link><description>Recent content in Colors on Smashing Magazine — For Web Designers And Developers</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Tue, 14 Oct 2025 04:02:41 +0000</lastBuildDate><item><author>Frederick O’Brien</author><title>The Grayscale Problem</title><link>https://www.smashingmagazine.com/2025/10/the-grayscale-problem/</link><pubDate>Mon, 13 Oct 2025 10:00:00 +0000</pubDate><guid>https://www.smashingmagazine.com/2025/10/the-grayscale-problem/</guid><description>From A/B tests to AI slop, the modern web is bleeding out its colour. Standardized, templated, and overoptimized, it’s starting to feel like a digital Levittown. But it doesn’t have to be.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2025/10/the-grayscale-problem/" />
              <title>The Grayscale Problem</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>The Grayscale Problem</h1>
                  
                    
                    <address>Frederick O’Brien</address>
                  
                  <time datetime="2025-10-13T10:00:00&#43;00:00" class="op-published">2025-10-13T10:00:00+00:00</time>
                  <time datetime="2025-10-13T10:00:00&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>Last year, a study found that <a href="https://www.forbes.com/sites/kbrauer/2024/07/16/where-have-all-the-colorful-cars-gone-study-shows-them-vanishing/">cars are steadily getting less colourful</a>. In the US, around 80% of cars are now black, white, gray, or silver, up from 60% in 2004. This trend has been attributed to cost savings and consumer preferences. Whatever the reasons, the result is hard to deny: a big part of daily life isn’t as colourful as it used to be.</p>














<figure class="
  
  
  ">
  
    <a href="https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="420"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png"
			
			sizes="100vw"
			alt=""
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://files.smashing.media/articles/the-grayscale-problem/1-car-color-market-share.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>The colourfulness of mass consumer products is hardly the bellwether for how vibrant life is as a whole, but the study captures a trend a lot of us recognise &mdash; offline and on. From colour to design to public discourse, a lot of life is getting less varied, more grayscale.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="580"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png"
			
			sizes="100vw"
			alt=""
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://files.smashing.media/articles/the-grayscale-problem/2-grayscale-car-models.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>The web is caught in the same current. There is plenty right with it &mdash; it retains plenty of its founding principles &mdash; but its state is not healthy. From AI slop to shoddy service providers to enshittification, the digital world faces its own <strong>grayscale problem</strong>.</p>

<p>This bears talking about. One of life’s great fallacies is that things get better over time on their own. They can, but it’s certainly not a given. I don’t think the moral arc of the universe does not bend towards justice, not on its own; I think it bends wherever it is dragged, kicking and screaming, by those with the will and the means to do so.</p>

<p>Much of the modern web, and the forces of optimisation and standardisation that drive it, bear an uncanny resemblance to the trend of car colours. Processes like market research and A/B testing &mdash; <a href="https://hbr.org/2017/06/a-refresher-on-ab-testing">the process by which two options are compared to see which ‘performs’ better on clickthrough, engagement, etc.</a> &mdash; have their value, but they don’t lend themselves to particularly stimulating design choices.</p>

<p>The spirit of free expression that made the formative years of the internet so exciting &mdash; think GeoCities, personal blogging, and so on &mdash; is on the slide.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="416"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png"
			
			sizes="100vw"
			alt="Screenshot from the Geocities Gallery"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      Image source: <a href='https://geocities.restorativland.org/'>The Geocities Gallery</a>. (<a href='https://files.smashing.media/articles/the-grayscale-problem/3-geocities.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>The ongoing transition to a more decentralised, privacy-aware <a href="https://aws.amazon.com/what-is/web3/">Web3</a> holds some promise. Two-thirds of the world’s population now has online access &mdash; <a href="https://www.weforum.org/stories/2024/01/digital-divide-internet-access-online-fwa/">though that still leaves plenty of work to do</a> &mdash; with a wealth of platforms allowing billions of people to connect. The dream of a digital world that is open, connected, and flat endures, but is tainted.</p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p><p>Meet <a data-instant href="/the-smashing-newsletter/"><strong>Smashing Email Newsletter</strong></a> with useful tips on front-end, design &amp; UX. Subscribe and <strong>get “Smart Interface Design Checklists”</strong> &mdash; a <strong>free PDF deck</strong> with 150+ questions to ask yourself when designing and building almost <em>anything</em>.</p><div><section class="nlbf"><form action="//smashingmagazine.us1.list-manage.com/subscribe/post?u=16b832d9ad4b28edf261f34df&amp;id=a1666656e0" method="post"><div class="nlbwrapper"><label for="mce-EMAIL-hp" class="sr-only">Your (smashing) email</label><div class="nlbgroup"><input type="email" name="EMAIL" class="nlbf-email" id="mce-EMAIL-hp" placeholder="Your email">
<input type="submit" value="Meow!" name="subscribe" class="nlbf-button"></div></div></form><style>.c-garfield-the-cat .nlbwrapper{margin-bottom: 0;}.nlbf{display:flex;padding-bottom:.25em;padding-top:.5em;text-align:center;letter-spacing:-.5px;color:#fff;font-size:1.15em}.nlbgroup:hover{box-shadow:0 1px 7px -5px rgba(50,50,93,.25),0 3px 16px -8px rgba(0,0,0,.3),0 -6px 16px -6px rgba(0,0,0,.025)}.nlbf .nlbf-button,.nlbf .nlbf-email{flex-grow:1;flex-shrink:0;width:auto;margin:0;padding:.75em 1em;border:0;border-radius:11px;background:#fff;font-size:1em;box-shadow:none}.promo-box .nlbf-button:focus,.promo-box input.nlbf-email:active,.promo-box input.nlbf-email:focus{box-shadow:none}.nlbf-button:-ms-input-placeholder,.nlbf-email:-ms-input-placeholder{color:#777;font-style:italic}.nlbf-button::-webkit-input-placeholder,.nlbf-email::-webkit-input-placeholder{color:#777;font-style:italic}.nlbf-button:-ms-input-placeholder,.nlbf-button::-moz-placeholder,.nlbf-button::placeholder,.nlbf-email:-ms-input-placeholder,.nlbf-email::-moz-placeholder,.nlbf-email::placeholder{color:#777;font-style:italic}.nlbf .nlbf-button{transition:all .2s ease-in-out;color:#fff;background-color:#0168b8;font-weight:700;box-shadow:0 1px 1px rgba(0,0,0,.3);width:100%;border:0;border-left:1px solid #ddd;flex:2;border-top-left-radius:0;border-bottom-left-radius:0}.nlbf .nlbf-email{border-top-right-radius:0;border-bottom-right-radius:0;width:100%;flex:4;min-width:150px}@media all and (max-width:650px){.nlbf .nlbgroup{flex-wrap:wrap;box-shadow:none}.nlbf .nlbf-button,.nlbf .nlbf-email{border-radius:11px;border-left:none}.nlbf .nlbf-email{box-shadow:0 13px 27px -5px rgba(50,50,93,.25),0 8px 16px -8px rgba(0,0,0,.3),0 -6px 16px -6px rgba(0,0,0,.025);min-width:100%}.nlbf .nlbf-button{margin-top:1em;box-shadow:0 1px 1px rgba(0,0,0,.5)}}.nlbf .nlbf-button:active,.nlbf .nlbf-button:focus,.nlbf .nlbf-button:hover{cursor:pointer;color:#fff;background-color:#0168b8;border-color:#dadada;box-shadow:0 1px 1px rgba(0,0,0,.3)}.nlbf .nlbf-button:active,.nlbf .nlbf-button:focus{outline:0!important;text-shadow:1px 1px 1px rgba(0,0,0,.3);box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}.nlbgroup{display:flex;box-shadow:0 13px 27px -5px rgba(50,50,93,.25),0 8px 16px -8px rgba(0,0,0,.3),0 -6px 16px -6px rgba(0,0,0,.025);border-radius:11px;transition:box-shadow .2s ease-in-out}.nlbwrapper{display:flex;flex-direction:column;justify-content:center}.nlbf form{width:100%}.nlbf .nlbgroup{margin:0}.nlbcaption{font-size:.9em;line-height:1.5em;color:#fff;border-radius:11px;padding:.5em 1em;display:inline-block;background-color:#0067b859;text-shadow:1px 1px 1px rgba(0,0,0,.3)}.wf-loaded-stage2 .nlbf .nlbf-button{font-family:Mija}.mts{margin-top: 5px !important;}.mbn{margin-bottom: 0 !important;}</style></section><p class="mts mbn"><small class="promo-box__footer mtm block grey"><em>Once a week. Useful tips on <a href="https://www.smashingmagazine.com/the-smashing-newsletter/">front-end &amp; UX</a>. Trusted by 207.000 friendly folks.</em></small></p></div></p>
</div>
</div>
<div class="feature-panel-right-col">
<div class="feature-panel-image">
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="/images/smashing-cat/cat-firechat.svg"
    alt="Feature Panel"
    width="310"
    height="400"
/>

</div>

<p></div>
</aside>
</div></p>

<h2 id="monopolies">Monopolies</h2>

<p>One of the main sources of concern for me is that although more people are online than ever, they are concentrating on fewer and fewer sites. A study <a href="https://www.sciencealert.com/we-re-going-to-fewer-and-fewer-websites-and-that-could-be-a-problem">published in 2021</a> found that <strong>activity is concentrated in a handful of websites</strong>. Think Google, Amazon, Facebook, Instagram, and, more recently, ChatGPT:</p>

<blockquote>“So, while there is still growth in the functions, features, and applications offered on the web, the number of entities providing these functions is shrinking. [...] The authority, influence, and visibility of the top 1,000 global websites (as measured by network centrality or PageRank) is growing every month, at the expense of all other sites.”</blockquote>

<p>Monopolies by nature <strong>reduce variance</strong>, both through their domination of the market and (understandably in fairness) internal preferences for consistency. And, let’s be frank, they have a vested interest in crushing any potential upstarts.</p>

<ul>
<li>“<a href="https://www.smashingmagazine.com/2020/05/readability-algorithms-tools-targets/">Readability Algorithms Should Be Tools, Not Targets</a>”</li>
<li>“<a href="https://www.smashingmagazine.com/2021/01/towards-ad-free-web-diversifying-online-economy/">Towards An Ad-Free Web: Diversifying The Online Economy</a>”</li>
</ul>

<p>Dominant websites often fall victim to what I like to call <strong>Internet Explorer Syndrome</strong>, where their dominance breeds a certain amount of complacency. Why improve your <a href="https://www.smashingmagazine.com/2025/05/what-zen-art-motorcycle-maintenance-teach-web-design/">quality</a> when you’re sitting on 90% market share? No wonder <a href="https://www.standard.co.uk/news/tech/google-search-worse-quality-spam-study-b1133559.html">the likes of Google are getting worse</a>.</p>

<p>The most immediate sign of this is obviously how sites are designed and how they look. A lot of the big players look an awful lot like each other. Even personal websites are built atop third-party website builders. Millions of people wind up using the same handful of templates, and that’s if they have their own website at all. On social media, we are little more than a profile picture and a pithy tagline. The rest is boilerplate.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="728"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png"
			
			sizes="100vw"
			alt="Gratscale minimalist layout example"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://files.smashing.media/articles/the-grayscale-problem/4-grayscale-minimalist-layout.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Should there be sleek, minimalist, ‘grayscale’ design systems and websites? Absolutely. But there should be colourful, kooky ones too, and if anything, they’re fading away. Do we really want to spend our online lives in the digital equivalent of Levittowns? Even logos are contriving to be less eye-catching. It feels like a matter of time before every major logo is a circle in a pastel colour.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="508"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png"
			
			sizes="100vw"
			alt=""
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://files.smashing.media/articles/the-grayscale-problem/5-levittown.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>The arrival of Artificial Intelligence into our everyday lives (and a decent chunk of the digital services we use) has put all of this into overdrive. Amalgamating &mdash; and hallucinating from &mdash; content that was already trending towards a perfect average, it is grayscale in its purest form.</p>

<p>Mix all the colours together, and what do you get? A muddy gray gloop.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="424"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png"
			
			sizes="100vw"
			alt="Colors mixed together into gray lopp"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://files.smashing.media/articles/the-grayscale-problem/6-mix-colors-muddy-gray-gloop.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>I’m not railing against best practice. A lot of conventions have become the standard for good reason. One could just as easily shake their fist at the sky and wonder why all newspapers look the same, or all books. I hope the difference here is clear, though.</p>

<blockquote class="pull-quote">
  <p>
    <a class="pull-quote__link" aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aThe%20web%20is%20a%20flexible%20enough%20domain%20that%20I%20think%20it%20belongs%20in%20the%20realm%20of%20architecture.%20A%20city%20where%20all%20buildings%20look%20alike%20has%20a%20soul-crushing%20quality%20about%20it.%20The%20same%20is%20true,%20I%20think,%20of%20the%20web.%0a&url=https://smashingmagazine.com%2f2025%2f10%2fthe-grayscale-problem%2f">
      
The web is a flexible enough domain that I think it belongs in the realm of architecture. A city where all buildings look alike has a soul-crushing quality about it. The same is true, I think, of the web.

    </a>
  </p>
  <div class="pull-quote__quotation">
    <div class="pull-quote__bg">
      <span class="pull-quote__symbol">“</span></div>
  </div>
</blockquote>

<p>In the Oscar Wilde play <em><a href="https://www.gutenberg.org/files/790/790-h/790-h.htm">Lady Windermere’s Fan</a></em>, a character quips that a cynic <em>“knows the price of everything and the value of nothing.”</em> In fairness, another quips back that a sentimentalist <em>“sees an absurd value in everything, and doesn’t know the market price of any single thing.”</em></p>

<p>The sweet spot is somewhere in between. Structure goes a long way, but life needs a bit of variety too.</p>

<p>So, how do we go about bringing that variety? We probably shouldn’t hold our breath on big players to lead the way. They have the most to lose, after all. Why risk being colourful or dynamic if it impacts the bottom line?</p>

<p>We, the citizens of the web, have more power than we realise. This is the web, remember, a place where if you can imagine it, odds are you can make it. And at zero cost. No materials to buy and ship, no shareholders to appease. A place as flexible &mdash; and limitless &mdash; as the web has no business being boring.</p>

<p>There are plenty of ways, big and small, of keeping this place colourful. Whether our digital footprints are on third-party websites or ones we build ourselves, we needn’t toe the line.</p>

<p><strong>Colour</strong> seems an appropriate place to start. When given the choice, try something audacious rather than safe. The worst that can happen is that it doesn’t work. It’s not like the sunk cost of painting a room; if you don’t like the palette, you simply change the hex codes. The same is true of <a href="https://www.smashingmagazine.com/2023/03/free-fonts-interface-designers/">fonts</a>, <a href="https://www.smashingmagazine.com/2021/08/open-source-icons/">icons</a>, and other building blocks of the web.</p>

<p>As an example, a couple of friends and I listen to and review albums occasionally as a hobby. On the website, the palette of each review page reflects the album artwork:</p>














<figure class="
  
  
  ">
  
    <a href="https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="800"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png"
			
			sizes="100vw"
			alt=""
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://files.smashing.media/articles/the-grayscale-problem/8-audioxide-screenshot.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>I couldn’t tell you if reviews ‘perform’ better or worse than if they had a grayscale palette, because I don’t care. I think it’s a lot nicer to look at. And for those wondering, yes, I have tried to make every page meet <a href="https://www.w3.org/WAI/WCAG2AA-Conformance">AA Web Accessibility standards</a>. Vibrant and accessible aren’t mutually exclusive.</p>

<p>Another great way of bringing vibrancy to the web is a <strong>degree of randomisation</strong>. Bruno Simon of <a href="https://threejs-journey.com/">Three Journey</a> and <a href="https://bruno-simon.com/">awesome portfolio</a> fame weaves random generation into a lot of his projects, and the results are gorgeous. What’s more, they feel familiar, natural, because life is full of wildcards.</p>

<figure><a href="https://files.smashing.media/articles/the-grayscale-problem/7-3d-model.gif"><img src="https://files.smashing.media/articles/the-grayscale-problem/7-3d-model.gif" width="800" height="520" alt="3D model" /></a></figure>

<p>This needn’t be in fancy 3D models. You could lightly rotate images to create a more informal, photo album mood, or chuck in the occasional random link in a list of recommended articles, just to shake things up.</p>

<p>In a lot of ways, it boils down to an attitude of just trying stuff out. Make your own font, give the site a sepia filter, and add that easter egg you keep thinking about. Just because someone, somewhere has already done it doesn’t mean you can’t do it your own way. And who knows, maybe your way stumbles onto someplace wholly new.</p>

<p>I’m wary of being too prescriptive. I don’t have the keys to a colourful web. No one person does. A vibrant community is the sum total of its people. What keeps things interesting is individuals trying wacky ideas and putting them out there. Expression for expression’s sake. Experimentation for experimentation’s sake. Tinkering for tinkering’s sake.</p>

<p>As users, there’s also plenty of room to be adventurous and try out <a href="https://openalternative.co/">open source alternatives to the software monopolies</a> that shape so much of today’s Web. Being active in the communities that shape those tools helps to sustain <strong>a more open, collaborative digital world</strong>.</p>

<p>Although there are lessons to be taken from it, we won’t get a more colourful web by idealising the past or pining to get back to the ‘90s. Nor is there any point in resisting new technologies. AI is here; the choice is whether we use it or it uses us. We must have the courage to carry forward what still holds true, drop what doesn’t, and explore new ideas with a spirit of play.</p>

<div class="partners__lead-place"></div>

<p>Here are a few more <em>Smashing</em> articles in that spirit:</p>

<ul>
<li>“<a href="https://www.smashingmagazine.com/2020/11/playfulness-code-supercharge-fun-learning/">Playfulness In Code: Supercharge Your Learning By Having Fun</a>” by Jhey Tompkins</li>
<li>“<a href="https://www.smashingmagazine.com/2025/08/psychology-color-ux-design-digital-products/">The Psychology Of Color In UX And Digital Products</a>” by Rodolpho Henrique</li>
<li>“<a href="https://www.smashingmagazine.com/2020/12/creativity-technology/">Creativity In A World Of Technology: Does It Exist?</a>” By Maggie Mackenzie</li>
<li>“<a href="https://www.smashingmagazine.com/2025/05/what-zen-art-motorcycle-maintenance-teach-web-design/">What Zen And The Art Of Motorcycle Maintenance Can Teach Us About Web Design</a>”</li>
<li>“<a href="https://www.smashingmagazine.com/2025/01/ode-to-side-project-time/">An Ode To Side Project Time</a>”</li>
</ul>

<p>I do think there’s a broader discussion to be had about the extent to which A/B tests, bottom lines, and focus groups seem to dictate much of how the modern web looks and feels. With sites being squeezed tighter and tighter by dwindling advertising revenues, and <a href="https://www.forbes.com/sites/torconstantino/2025/04/14/the-60-problem---how-ai-search-is-draining-your-traffic/">AI answers muscling in on search traffic</a>, the corporate entities behind larger websites can’t justify doing anything other than what is safe and proven, for fear of shrinking their slice of the pie.</p>

<p>Lest we forget, though, most of the web isn’t beholden to those types of pressure. From pet projects to wikis to forums to community news outlets to all manner of other things, there are countless reasons for websites to exist, and they needn’t take design cues from the handful of sites slugging it out at the top.</p>

<p>Connected with this is the dire need for <a href="https://tcg.uis.unesco.org/wp-content/uploads/sites/4/2021/08/Metadata-4.4.2.pdf">digital literacy</a> (PDF) &mdash; ‘the confident and critical use of a full range of digital technologies for information, communication and basic problem-solving in all aspects of life.’ For as long as using third-party platforms is a necessity rather than a choice, the needle’s only going to move so much.</p>

<p>There’s a reason why <a href="https://www.bbc.co.uk/news/technology-67105983">Minecraft is the world’s best-selling game</a>. People are creative. When given the tools &mdash; and the opportunity &mdash; that creativity will manifest in weird and wonderful ways. That game is a lot of things, but gray ain’t one of them.</p>

<p>The web has all of that flexibility and more. It is a <strong>manifestation of imagination</strong>. Imagination trends towards colour, not grayness. It doesn’t always feel like it, but where the internet goes is decided by its citizens. The internet is ours. If we want to, we can make it technicolor.</p>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(yk)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Rodolpho Henrique</author><title>The Psychology Of Color In UX And Digital Products</title><link>https://www.smashingmagazine.com/2025/08/psychology-color-ux-design-digital-products/</link><pubDate>Fri, 15 Aug 2025 15:00:00 +0000</pubDate><guid>https://www.smashingmagazine.com/2025/08/psychology-color-ux-design-digital-products/</guid><description>Rodolpho Henrique guides you through the essential aspects of color in digital design and user experience, from the practical steps of creating effective and scalable color palettes to critical accessibility considerations.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2025/08/psychology-color-ux-design-digital-products/" />
              <title>The Psychology Of Color In UX And Digital Products</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>The Psychology Of Color In UX And Digital Products</h1>
                  
                    
                    <address>Rodolpho Henrique</address>
                  
                  <time datetime="2025-08-15T15:00:00&#43;00:00" class="op-published">2025-08-15T15:00:00+00:00</time>
                  <time datetime="2025-08-15T15:00:00&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>Color plays a pivotal role in crafting compelling user experiences and successful digital products. It’s far more than just aesthetics; color strategically guides users, establishes brand identity, and evokes specific emotions.</p>

<p>Beyond functionality, color is also a powerful tool for <strong>brand recognition</strong> and <strong>emotional connection</strong>. Consistent use of brand colors across a digital product reinforces identity and builds trust. Different hues carry cultural and psychological associations, allowing designers to subtly influence user perception and create the desired mood. A thoughtful and deliberate approach to color in UX design elevates the user experience, strengthens brand presence, and contributes significantly to the overall success and impact of digital products. In this article, we will talk about the importance of color and <em>why</em> they are important for creating emotional connection and delivering consistent and accessible digital products.</p>

<p>Well-chosen color palettes enhance <strong>usability</strong> by creating visual hierarchies, highlighting interactive elements, and providing crucial feedback on screens. For instance, a bright color might draw attention to a call-to-action button, while consistent color coding can help users navigate complex interfaces intuitively. Color also contributes significantly to <strong>accessibility</strong>, ensuring that users with visual impairments can still effectively interact with digital products. By carefully considering contrast ratios and providing alternative visual cues, designers can create inclusive experiences that cater to a wider audience.</p>

<blockquote class="pull-quote">
  <p>
    <a class="pull-quote__link" aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aThe%20colors%20we%20choose%20are%20the%20silent%20language%20of%20our%20digital%20products,%20and%20speaking%20it%20fluently%20is%20essential%20for%20success.%0a&url=https://smashingmagazine.com%2f2025%2f08%2fpsychology-color-ux-design-digital-products%2f">
      
The colors we choose are the silent language of our digital products, and speaking it fluently is essential for success.

    </a>
  </p>
  <div class="pull-quote__quotation">
    <div class="pull-quote__bg">
      <span class="pull-quote__symbol">“</span></div>
  </div>
</blockquote>

<h2 id="communicating-brand-identity-through-color-in-the-digital-space">Communicating Brand Identity Through Color In The Digital Space</h2>

<p>A thoughtfully curated and vibrant color palette becomes a critical differentiator, allowing a brand to stand out amidst the digital noise and cultivate stronger connections with the audience.</p>

<p>Far beyond mere decoration, color acts as a visual shorthand, instantly conveying a brand’s personality, its underlying values, and its unique essence. According to the <a href="https://www.ama.org/2025/04/08/more-vividmore-effective-how-saturated-colors-impact-consumer-behavior-and-waste/">American Marketing Association</a>, vibrant colors, in particular, possess an inherent magnetism, drawing the eye and etching themselves into memory within the online environment. They infuse the brand with energy and dynamism, projecting approachability and memorability in a way that more muted tones often cannot.</p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="/printed-books/image-optimization/">Image Optimization</a></strong>, Addy Osmani’s new practical guide to optimizing and delivering <strong>high-quality images</strong> on the web. Everything in one single <strong>528-pages</strong> book.</p>
<a data-instant href="https://www.smashingmagazine.com/printed-books/image-optimization/" class="btn btn--green btn--large" style="">Jump to table of contents&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="https://www.smashingmagazine.com/printed-books/image-optimization/" class="feature-panel-image-link">
<div class="feature-panel-image"><picture><source type="image/avif" srcSet="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2c669cf1-c6ef-4c87-9901-018b04f7871f/image-optimization-shop-cover-opt.avif" />
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/87fd0cfa-692e-459c-b2f3-15209a1f6aa7/image-optimization-shop-cover-opt.png"
    alt="Feature Panel"
    width="480"
    height="697"
/>
</picture>
</div>
</a>
</div>
</aside>
</div>

<h2 id="consistency-the-core-of-great-design">Consistency: The Core Of Great Design</h2>

<p>Consistency is important because it fosters trust and familiarity, allowing users to quickly identify and connect with the brand in the online landscape. The strategic deployment of vibrant colors is especially crucial for brands seeking to establish themselves and flourish within the digital ecosystem. In the absence of physical storefronts or tangible in-person interactions, visual cues become paramount in shaping user perception and building brand recognition. A carefully selected primary color, supported by a complementary and equally energetic secondary palette, can become synonymous with a brand’s digital presence. A consistent application of the right colors across different digital touchpoints &mdash; from the logo and website design to the user interface of an app and engaging social media campaigns &mdash; creates a cohesive and instantly recognizable visual language.</p>

<p>Several sources and professionals agree that the psychology behind the colors plays a significant role in shaping brand perception. The publication <a href="https://insightspsychology.org/psychology-of-color-emotional-impact/">Insights Psychology</a>, for instance, explains how colors can create emotional and behavioural responses. Vibrant colors often evoke strong emotions and associations. A bold, energetic red, for example, might communicate passion and excitement, while a bright, optimistic yellow could convey innovation and cheerfulness. By consciously aligning their color choices with their brand values and target audience preferences, digitally-native brands can create a powerful emotional resonance.</p>














<figure class="
  
  
  ">
  
    <a href="https://files.smashing.media/articles/psychology-color-ux-design-digital-products/1-colors-psychology.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="800"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/1-colors-psychology.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/1-colors-psychology.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/1-colors-psychology.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/1-colors-psychology.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/1-colors-psychology.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/1-colors-psychology.png"
			
			sizes="100vw"
			alt="Colors with corresponding emotions and associations"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      The psychology behind the colors plays a significant role in shaping brand perception. (<a href='https://files.smashing.media/articles/psychology-color-ux-design-digital-products/1-colors-psychology.png'>Large preview</a>)
    </figcaption>
  
</figure>

<h2 id="beyond-aesthetics-how-color-psychologically-impacts-user-behavior-in-digital">Beyond Aesthetics: How Color Psychologically Impacts User Behavior In Digital</h2>

<p>As designers working with digital products, we’ve learned that color is far more than a superficial layer of visual appeal. It’s a potent, <strong>often subconscious</strong>, force that shapes how users interact with and feel about the digital products we build.</p>

<blockquote>We’re not just painting pixels, we’re conducting a psychological symphony, carefully selecting each hue to evoke specific emotions, guide behavior, and ultimately forge a deeper connection with the user.</blockquote>

<p>The initial allure of a color palette might be purely aesthetic, but its true power lies in its <strong>ability to bypass conscious thought and tap directly into our emotional core</strong>. Think about the subtle unease that might creep in when encountering a predominantly desaturated interface for a platform promising dynamic content, or the sense of calm that washes over you when a learning application utilizes soft, analogous colors. These are not arbitrary responses; they’re deeply rooted in our evolutionary history and cultural conditioning.</p>

<p>To understand how colors psychologically impact user behavior in digital, we first need to understand how colors are defined. In digital design, colors are precisely defined using the <strong>HSB model</strong>, which stands for <strong>Hue</strong>, <strong>Saturation</strong>, and <strong>Brightness</strong>. This model provides a more intuitive way for designers to think about and manipulate color compared to other systems like RGB (Red, Green, Blue). Here is a quick breakdown of each component:</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://files.smashing.media/articles/psychology-color-ux-design-digital-products/2-hsb-colors.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="384"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/2-hsb-colors.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/2-hsb-colors.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/2-hsb-colors.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/2-hsb-colors.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/2-hsb-colors.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/2-hsb-colors.png"
			
			sizes="100vw"
			alt="HSB model"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      HSB describes colors based on how humans perceive them, rather than the physical components of light like RGB. (<a href='https://files.smashing.media/articles/psychology-color-ux-design-digital-products/2-hsb-colors.png'>Large preview</a>)
    </figcaption>
  
</figure>

<h3 id="hue">Hue</h3>

<p>This is the pure color itself, the essence that we typically name, such as red, blue, green, or yellow. On a color wheel, hue is represented as an angle ranging from 0 to 360 degrees. For example, 0 is red, 120 is green, and 240 is blue. Think of it as the specific wavelength of light that our eyes perceive as a particular color. In UX, selecting the base hues is often tied to brand identity and the overall feeling you want to convey.</p>

<h3 id="saturation">Saturation</h3>

<p>Saturation refers to the intensity or purity of the hue. It describes how vivid or dull the color appears. A fully saturated color is rich and vibrant, while a color with low saturation appears muted, grayish, or desaturated. Saturation is typically expressed as a percentage, from 0% (completely desaturated, appearing as a shade of gray) to 100% (fully saturated, the purest form of the hue).</p>

<p>In UX, saturation levels are crucial for creating <strong>visual hierarchy</strong> and drawing attention to key elements. Highly saturated colors often indicate interactive elements or important information, while lower saturation can be used for backgrounds or less critical content.</p>

<h3 id="brightness">Brightness</h3>

<p>Brightness, sometimes also referred to as a value or lightness, indicates how light or dark a color appears. It’s the amount of white or black mixed into the hue. Brightness is also usually represented as a percentage, ranging from 0% (completely black, regardless of the hue or saturation) to 100% (fully bright). At 100% brightness and 0% saturation, you get white. In UX, adjusting brightness is essential for <strong>creating contrast</strong> and <strong>ensuring readability</strong>. Sufficient brightness contrast between text and background is a fundamental accessibility requirement. Furthermore, variations in brightness within a color palette can create visual depth and subtle distinctions between UI elements.</p>

<p>By understanding and manipulating these 3 color dimensions, digital designers have precise control over their color choices. This allows for the creation of harmonious and effective color palettes that not only align with brand guidelines but also strategically influence user behavior.</p>

<p>Just as in the physical world, colors in digital also carry symbolic meanings and trigger subconscious associations. Understanding these color associations is essential for UX designers aiming to craft experiences that not only look appealing but also resonate emotionally and guide user behavior effectively.</p>

<p>As the <a href="https://blog.emb.global/color-psychology-in-branding/">EMB Global</a> states, the way we perceive and interpret color is not universal, yet broad patterns of association exist. For instance, the color <strong>blue</strong> often evokes feelings of trust, stability, and calmness. This association stems from the natural world &mdash; the vastness of the sky and the tranquility of deep waters. In the digital space, this makes blue a popular choice for financial institutions, corporate platforms, and interfaces aiming to project reliability and security. However, the specific shade and context matter immensely. A bright, electric blue can feel energetic and modern, while a muted and darker blue might convey a more serious and authoritative tone.</p>

<p>Kendra Cherry, a psychosocial and rehabilitation specialist and author of the book <em>Everything Psychology</em>, <a href="https://www.verywellmind.com/color-psychology-2795824">explains</a> very well how colors evoke certain responses in us. For example, the color <strong>green</strong> is intrinsically linked to nature, often bringing about feelings of growth, health, freshness, and tranquility. It can also symbolize prosperity in some cultures. In digital design, green is frequently used for health and wellness applications, environmental initiatives, and platforms emphasizing sustainability. A vibrant lime green can feel energetic and youthful, while a deep forest green can evoke a sense of groundedness and organic quality.</p>

<p><strong>Yellow</strong>, the color of sunshine, is generally associated with optimism, happiness, energy, and warmth. It’s attention-grabbing and can create a sense of playfulness. In digital interfaces, yellow is often used for highlighting important information, calls to action (though sparingly, as too much can be overwhelming), or for brands wanting to project a cheerful and approachable image.</p>

<p><strong>Red</strong>, a color with strong physiological effects, typically evokes excitement, passion, urgency, and sometimes anger or danger. It commands attention and can stimulate action. Digitally, red is often used for alerts, error messages, sales promotions, or for brands wanting to project a bold and energetic identity. Its intensity requires careful consideration, as overuse can lead to user fatigue or anxiety.</p>

<p><strong>Orange</strong> blends the energy of red with the optimism of yellow, often conveying enthusiasm, creativity, and friendliness. It can feel less aggressive than red but still commands attention. In digital design, orange is frequently used for calls to action, highlighting sales or special offers, and for brands aiming to appear approachable and innovative.</p>

<p><strong>Purple</strong> has historically been associated with royalty and luxury. It can evoke feelings of creativity, wisdom, and mystery. In digital contexts, purple is often used for brands aiming for a sophisticated or unique feel, particularly in areas like luxury goods, beauty, or spiritual and creative platforms.</p>

<p><strong>Black</strong> often signifies sophistication, power, elegance, and sometimes mystery. In digital design, black is frequently used for minimalist interfaces, luxury brands, and for creating strong contrast with lighter elements. The feeling it evokes heavily depends on the surrounding colors and overall design aesthetic.</p>

<p><strong>White</strong> is generally associated with purity, cleanliness, simplicity, and neutrality. It provides a sense of spaciousness and allows other colors to stand out. In digital design, white space is a crucial element, and white is often used as a primary background color to create a clean and uncluttered feel.</p>

<p><strong>Gray</strong> is often seen as neutral, practical, and sometimes somber or conservative. In digital interfaces, various shades of gray are essential for typography, borders, dividers, and creating visual hierarchy without being overly distracting.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://files.smashing.media/articles/psychology-color-ux-design-digital-products/3-color-associations.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="361"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/3-color-associations.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/3-color-associations.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/3-color-associations.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/3-color-associations.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/3-color-associations.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/3-color-associations.png"
			
			sizes="100vw"
			alt="Guide to some common color associations"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      Guide to some common color associations. (<a href='https://files.smashing.media/articles/psychology-color-ux-design-digital-products/3-color-associations.png'>Large preview</a>)
    </figcaption>
  
</figure>

<div class="partners__lead-place"></div>

<h2 id="evoking-emotions-in-digital-interfaces">Evoking Emotions In Digital Interfaces</h2>

<p>Imagine an elegant furniture application. The designers might choose a primary palette of soft, desaturated blues and greens, accented with gentle earth tones. The muted blues could subtly induce a feeling of calmness and tranquility, aligning with the app’s core purpose of relaxation. The soft greens might evoke a sense of nature and well-being, further reinforcing the theme of peace and mental clarity. The earthy browns could ground the visual experience, creating a feeling of stability and connection to the natural world.</p>














<figure class="
  
  
  ">
  
    <a href="https://files.smashing.media/articles/psychology-color-ux-design-digital-products/4-calm-vs-vibrant-color-palette.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="717"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/4-calm-vs-vibrant-color-palette.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/4-calm-vs-vibrant-color-palette.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/4-calm-vs-vibrant-color-palette.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/4-calm-vs-vibrant-color-palette.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/4-calm-vs-vibrant-color-palette.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/4-calm-vs-vibrant-color-palette.png"
			
			sizes="100vw"
			alt="Example of a calm and vibrant color palette"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      Example of a calm and vibrant color palette. (<a href='https://files.smashing.media/articles/psychology-color-ux-design-digital-products/4-calm-vs-vibrant-color-palette.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Now, consider a platform for extreme investment enthusiasts. The color palette might be dominated by high-energy oranges and reds, contrasted with stark blacks and sharp whites. The vibrant oranges could evoke feelings of excitement and adventure, while the bold red might amplify the sense of adrenaline and intensity. The black and white could provide a sense of dynamism and modernity, reflecting the fast-paced nature of the activities.</p>

<blockquote class="pull-quote">
  <p>
    <a class="pull-quote__link" aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aBy%20consciously%20understanding%20and%20applying%20these%20color%20associations,%20digital%20designers%20can%20move%20beyond%20purely%20aesthetic%20choices%20and%20craft%20experiences%20that%20resonate%20deeply%20with%20users%20on%20an%20emotional%20level,%20leading%20to%20more%20engaging,%20intuitive,%20and%20successful%20digital%20products.%0a&url=https://smashingmagazine.com%2f2025%2f08%2fpsychology-color-ux-design-digital-products%2f">
      
By consciously understanding and applying these color associations, digital designers can move beyond purely aesthetic choices and craft experiences that resonate deeply with users on an emotional level, leading to more engaging, intuitive, and successful digital products.

    </a>
  </p>
  <div class="pull-quote__quotation">
    <div class="pull-quote__bg">
      <span class="pull-quote__symbol">“</span></div>
  </div>
</blockquote>

<h3 id="color-as-a-usability-tool">Color As A Usability Tool</h3>

<p>Choosing the right colors isn’t about adhering to fleeting trends; it’s about ensuring that our mobile applications and websites are usable by the widest possible audience, including individuals with visual impairments. Improper color choices can create significant barriers, rendering content illegible, interactive elements indistinguishable, and ultimately excluding a substantial portion of potential users.</p>

<blockquote>Prioritizing color with accessibility in mind is not just a matter of ethical design; it’s a fundamental aspect of creating inclusive and user-friendly digital experiences that benefit everyone.</blockquote>

<p>For individuals with low vision, sufficient color contrast between text and background is paramount for readability. Imagine trying to decipher light gray text on a white background &mdash; a common design trend that severely hinders those with even mild visual impairments. Adhering to <a href="https://www.w3.org/WAI/standards-guidelines/wcag/">Web Content Accessibility Guidelines</a> (WCAG) contrast ratios ensures that text remains legible and understandable.</p>

<p>Furthermore, color blindness, affecting a significant percentage of the population, necessitates the use of redundant visual cues. Relying solely on color to convey information, such as indicating errors in red without an accompanying text label, excludes colorblind users. By pairing color with text, icons, or patterns, we ensure that critical information is conveyed through multiple sensory channels, making it accessible to all. Thoughtful color selection, therefore, is not an optional add-on but an integral component of designing digital products that are truly usable and equitable.</p>














<figure class="
  
  
  ">
  
    <a href="https://files.smashing.media/articles/psychology-color-ux-design-digital-products/5-high-vs-low-contrast-texts.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="717"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/5-high-vs-low-contrast-texts.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/5-high-vs-low-contrast-texts.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/5-high-vs-low-contrast-texts.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/5-high-vs-low-contrast-texts.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/5-high-vs-low-contrast-texts.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/5-high-vs-low-contrast-texts.png"
			
			sizes="100vw"
			alt="Example of high and low contrast on texts"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      Example of high and low contrast on texts. (<a href='https://files.smashing.media/articles/psychology-color-ux-design-digital-products/5-high-vs-low-contrast-texts.png'>Large preview</a>)
    </figcaption>
  
</figure>

<h2 id="choosing-your-palette">Choosing Your Palette</h2>

<p>As designers, we need a strategic approach to choosing color palettes, considering various factors to build a scalable and impactful color system. Here’s a breakdown of the steps and considerations involved:</p>

<h3 id="1-deep-dive-into-brand-identity-and-main-goals">1. Deep Dive Into Brand Identity And Main Goals</h3>

<p>The journey begins with a thorough understanding of the brand itself. What are its core values? What personality does it project? Is it playful, sophisticated, innovative? Analyze existing brand guidelines (if any), target audience demographics and psychographics, and the overall goals of the digital product. The color palette should be a visual extension of this identity, reinforcing brand recognition and resonating with the intended users. For instance, a financial app aiming for trustworthiness might lean towards blues and greens, while a creative platform could explore more vibrant and unconventional hues.</p>

<h3 id="2-understand-color-psychology-and-cultural-associations">2. Understand Color Psychology And Cultural Associations</h3>

<p>As discussed previously, colors carry inherent psychological and cultural baggage. While these associations are not absolute, they provide a valuable framework for initial exploration. Consider the emotions you want to evoke and research how your target audience might perceive different colors, keeping in mind cultural nuances that can significantly alter interpretations. This step is important to help in making informed decisions that align with the desired user experience and brand perception.</p>

<h3 id="3-defining-the-core-colors">3. Defining The Core Colors</h3>

<p>Start by identifying the primary color &mdash; the dominant hue that represents your brand’s essence. This will likely be derived from the brand logo or existing visual identity. Next, establish a secondary color or two that complement the primary color and provide visual interest and hierarchy. These secondary colors should work harmoniously with the primary, offering flexibility for different UI elements and interactions.</p>

<h3 id="4-build-a-functional-color-system">4. Build A Functional Color System</h3>

<p>A consistent and scalable color palette goes beyond just a few base colors. It involves creating a system of variations for practical application within the digital interface. This typically includes tints and shades, accent colors, and neutral colors.</p>

<h3 id="5-do-not-forget-about-usability-and-accessibility">5. Do Not Forget About Usability And Accessibility</h3>

<p>Ensure sufficient color contrast between text and background, as well as between interactive elements and their surroundings, to meet WCAG guidelines. Tools are readily available to check color contrast ratios.</p>

<p>Test your palette using color blindness simulators to see how it will be perceived by individuals with different types of color vision deficiencies. This helps identify potential issues where information might be lost due to color alone.</p>

<p>Visual hierarchy is also important to guide the user’s eye and establish a clear visual story. Important elements should be visually distinct.</p>

<h3 id="6-testing-and-iteration">6. Testing And Iteration</h3>

<p>Once you have a preliminary color palette, it’s crucial to test it within the context of your digital product. Create mockups and prototypes to see how the colors work together in the actual interface. Gather feedback from stakeholders and, ideally, conduct user testing to identify any usability or aesthetic issues. Be prepared to iterate and refine your palette based on these insights.</p>

<p>A well-defined color palette for the digital medium should be:</p>

<ul>
<li>Consistent,</li>
<li>Scalable,</li>
<li>Accessible,</li>
<li>Brand-aligned,</li>
<li>Emotionally resonant, and</li>
<li>Functionally effective.</li>
</ul>

<p>By following these steps and keeping these considerations in mind, designers can craft color palettes that are not just visually appealing but also strategically powerful tools for creating effective and accessible digital experiences.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://files.smashing.media/articles/psychology-color-ux-design-digital-products/6-consistent-color-palette.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="392"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/6-consistent-color-palette.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/6-consistent-color-palette.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/6-consistent-color-palette.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/6-consistent-color-palette.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/6-consistent-color-palette.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/psychology-color-ux-design-digital-products/6-consistent-color-palette.png"
			
			sizes="100vw"
			alt="Example of a consistent color palette with base colors and accent colors"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      Example of a consistent color palette with base colors and accent colors. (<a href='https://files.smashing.media/articles/psychology-color-ux-design-digital-products/6-consistent-color-palette.png'>Large preview</a>)
    </figcaption>
  
</figure>

<div class="partners__lead-place"></div>

<h2 id="color-consistency-building-trust-and-recognition-through-a-harmonized-digital-presence">Color Consistency: Building Trust And Recognition Through A Harmonized Digital Presence</h2>

<p>Consistency plays an important role in the whole color ecosystem. By maintaining a unified color scheme for interactive elements, navigation cues, and informational displays, designers create a seamless and predictable user journey, building trust through visual stability.</p>

<p>Color consistency directly contributes to brand recognition in the increasingly crowded digital landscape. Just as a logo or typeface becomes instantly identifiable, a consistent color palette acts as a powerful visual signature. When users repeatedly encounter the same set of colors associated with a particular brand, it strengthens their recall and fosters a stronger brand association. This visual consistency extends beyond the core interface to marketing materials, social media presence, and all digital touchpoints, creating a cohesive and memorable brand experience. By strategically and consistently applying a solid and consistent color palette, digital products can cultivate stronger brand recognition, build user trust, and enhance user loyalty.</p>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(yk)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Philip Jägenstedt</author><title>Interview With Björn Ottosson, Creator Of The Oklab Color Space</title><link>https://www.smashingmagazine.com/2024/10/interview-bjorn-ottosson-creator-oklab-color-space/</link><pubDate>Wed, 02 Oct 2024 10:00:00 +0000</pubDate><guid>https://www.smashingmagazine.com/2024/10/interview-bjorn-ottosson-creator-oklab-color-space/</guid><description>Go behind the scenes with Björn Ottosson, the Swedish engineer who created Oklab color space, and discover how he developed a simple yet effective model with good hue uniformity while also handling lightness and saturation well &amp;mdash; and is “okay” to use.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2024/10/interview-bjorn-ottosson-creator-oklab-color-space/" />
              <title>Interview With Björn Ottosson, Creator Of The Oklab Color Space</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>Interview With Björn Ottosson, Creator Of The Oklab Color Space</h1>
                  
                    
                    <address>Philip Jägenstedt</address>
                  
                  <time datetime="2024-10-02T10:00:00&#43;00:00" class="op-published">2024-10-02T10:00:00+00:00</time>
                  <time datetime="2024-10-02T10:00:00&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>Oklab is a new perceptual color space supported in all major browsers created by the Swedish engineer Björn Ottosson. In this interview, Philip Jägenstedt explores how and why Björn created Oklab and how it spread across the ecosystem.</p>

<p><strong>Note</strong>: <em>The original interview was conducted in Swedish and is <a href="https://www.youtube.com/watch?v=1LuF9eOXeBY">available to watch</a>.</em></p>

<h2 id="about-björn">About Björn</h2>

<p><span class="smashing-tv-host">Philip Jägenstedt:</span> Tell me a little about yourself, Björn.</p>

<p><p><img style="float: right; padding: 1em;border-radius: 110px;max-width: 50%;height:auto" src="https://files.smashing.media/authors/bjorn-ottosson.jpg" width="200" height="200" alt="Photo of Björn Ottosson" /><span class="smashing-tv-speaker">Björn Ottosson:</span> I worked for many years in the game industry on game engines and games like FIFA, Battlefield, and Need for Speed. I&rsquo;ve always been interested in technology and its interaction with the arts. I’m an engineer, but I’ve always held both of these interests.</p>

<h2 id="on-working-with-color">On Working With Color</h2>

<p><span class="smashing-tv-host">Philip:</span> For someone who hasn’t dug into colors much, what’s so hard about working with them?</p>

<p><span class="smashing-tv-speaker">Björn:</span> Intuitively, colors can seem quite simple. A color can be lighter or darker, it can be more blue or more green, and so on. Everyone with typical color vision has a fairly similar experience of color, and this can be modeled.</p>

<p>However, the way we manipulate colors in software usually doesn’t align with human perception of colors. The most common color space is sRGB. There’s also HSL, which is common for choosing colors, but it’s also based on sRGB.</p>

<p>One problem with sRGB is that in a gradient between blue and white, it becomes a bit purple in the middle of the transition. That’s because sRGB really isn’t created to mimic how the eye sees colors; rather, it is based on how <a href="https://en.wikipedia.org/wiki/Cathode-ray_tube">CRT monitors</a> work. That means it works with certain frequencies of red, green, and blue, and also the <a href="https://blog.johnnovak.net/2016/09/21/what-every-coder-should-know-about-gamma/">non-linear coding called gamma</a>. It’s a miracle it works as well as it does, but it’s not connected to color perception. When using those tools, you sometimes get surprising results, like purple in the gradient.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/1-purple-in-gradient.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="76"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/1-purple-in-gradient.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/1-purple-in-gradient.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/1-purple-in-gradient.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/1-purple-in-gradient.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/1-purple-in-gradient.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/1-purple-in-gradient.png"
			
			sizes="100vw"
			alt="Purple in the gradient"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      Image source: <a href='https://bottosson.github.io/posts/colorwrong/'>How software gets color wrong</a>. (<a href='https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/1-purple-in-gradient.png'>Large preview</a>)
    </figcaption>
  
</figure>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="/printed-books/image-optimization/">Image Optimization</a></strong>, Addy Osmani’s new practical guide to optimizing and delivering <strong>high-quality images</strong> on the web. Everything in one single <strong>528-pages</strong> book.</p>
<a data-instant href="https://www.smashingmagazine.com/printed-books/image-optimization/" class="btn btn--green btn--large" style="">Jump to table of contents&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="https://www.smashingmagazine.com/printed-books/image-optimization/" class="feature-panel-image-link">
<div class="feature-panel-image"><picture><source type="image/avif" srcSet="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2c669cf1-c6ef-4c87-9901-018b04f7871f/image-optimization-shop-cover-opt.avif" />
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/87fd0cfa-692e-459c-b2f3-15209a1f6aa7/image-optimization-shop-cover-opt.png"
    alt="Feature Panel"
    width="480"
    height="697"
/>
</picture>
</div>
</a>
</div>
</aside>
</div>

<h2 id="on-color-perception">On Color Perception</h2>

<p><span class="smashing-tv-host">Philip:</span> How do humans perceive color?</p>

<p><span class="smashing-tv-speaker">Björn:</span> When light enters the eye and hits the retina, it’s processed in many layers of neurons and creates a mental impression. It’s unlikely that the process would be simple and linear, and it’s not. But incredibly enough, most people still perceive colors similarly.</p>

<p>People have been trying to understand colors and have created color wheels and similar visualizations for hundreds of years. During the 20th century, a lot of research and modeling went into color vision. For example, the <a href="https://en.wikipedia.org/wiki/CIE_1931_color_space">CIE XYZ</a> model is based on how sensitive our photoreceptor cells are to different frequencies of light. CIE XYZ is still a foundational color space on which all other color spaces are based.</p>

<p>There were also attempts to create simple models matching human perception based on XYZ, but as it turned out, it’s not possible to model all color vision that way. Perception of color is incredibly complex and depends, among other things, on whether it is dark or light in the room and the background color it is against. When you look at a photograph, it also depends on what you think the color of the light source is. <a href="https://en.wikipedia.org/wiki/The_dress">The dress</a> is a typical example of color vision being very context-dependent. It is almost impossible to model this perfectly.</p>

<p>Models that try to take all of this complexity into account are called <strong>color appearance models</strong>. Although they have many applications, they’re not that useful if you don’t know if the viewer is in a light or bright room or other viewing conditions.</p>

<p>The odd thing is that there’s a gap between the tools we typically use &mdash; such as sRGB and HSL &mdash; and the findings of this much older research. To an extent, this makes sense because when HSL was developed in the 1970s, we didn’t have much computing power, so it’s a fairly simple translation of RGB. However, not much has changed since then.</p>

<blockquote class="pull-quote">
  <p>
    <a class="pull-quote__link" aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aWe%20have%20a%20lot%20more%20processing%20power%20now,%20but%20we%e2%80%99ve%20settled%20for%20fairly%20simple%20tools%20for%20handling%20colors%20in%20software.%0a&url=https://smashingmagazine.com%2f2024%2f10%2finterview-bjorn-ottosson-creator-oklab-color-space%2f">
      
We have a lot more processing power now, but we’ve settled for fairly simple tools for handling colors in software.

    </a>
  </p>
  <div class="pull-quote__quotation">
    <div class="pull-quote__bg">
      <span class="pull-quote__symbol">“</span></div>
  </div>
</blockquote>

<p>Display technology has also improved. Many displays now have different RGB primaries, i.e., a redder red, greener green, or bluer blue. sRGB cannot reach all colors available on these displays. The new P3 color space can, but it&rsquo;s very similar to sRGB, just a little wider.</p>

<h2 id="on-creating-oklab">On Creating Oklab</h2>

<p><span class="smashing-tv-host">Philip:</span> What, then, is Oklab, and how did you create it?</p>

<p><span class="smashing-tv-speaker">Björn:</span> When working in the game industry, sometimes I wanted to do simple color manipulations like making a color darker or changing the hue. I researched existing color spaces and how good they are at these simple tasks and concluded that all of them are problematic in some way.</p>

<p>Many people know about <a href="https://en.wikipedia.org/wiki/CIELAB_color_space">CIE Lab</a>. It’s quite close to human perception of color, but the handling of hue is not great. For example, a gradient between blue and white turns out purple in CIE Lab, similar to in sRGB. Some color spaces handle hue well but have other issues to consider.</p>

<p>When I left my job in gaming to pursue education and consulting, I had a bit of time to tackle this problem. Oklab is my attempt to find a better balance, something Lab-like but “okay”.</p>

<p>I based Oklab on two other color spaces, <a href="https://onlinelibrary.wiley.com/doi/abs/10.1002/col.22131">CIECAM16</a> and <a href="https://library.imaging.org/admin/apis/public/api/ist/website/downloadArticle/cic/6/1/art00003">IPT</a>. I used the lightness and saturation prediction from CIECAM16, which is a color appearance model, as a target. I actually wanted to use the datasets used to create CIECAM16, but I couldn’t find them.</p>

<p>IPT was designed to have better hue uniformity. In experiments, they asked people to match light and dark colors, saturated and unsaturated colors, which resulted in a dataset for which colors, subjectively, have the same hue. IPT has a few other issues but is the basis for hue in Oklab.</p>

<p>Using these three datasets, I set out to create a simple color space that would be “okay”. I used an approach quite similar to IPT but combined it with the lightness and saturation estimates from CIECAM16. The resulting Oklab still has good hue uniformity but also handles lightness and saturation well.</p>

<p><span class="smashing-tv-host">Philip:</span> How about the name Oklab? Why is it just okay?</p>

<p><span class="smashing-tv-speaker">Björn:</span> This is a bit tongue-in-cheek and some amount of humility.</p>

<p>For the tasks I had in mind, existing color spaces weren’t okay, and my goal was to make one that is. At the same time, it is possible to delve deeper. If a university had worked on this, they could have run studies with many participants. For a color space intended mainly for use on computer and phone screens, you could run studies in typical environments where they are used. It’s possible to go deeper.</p>

<p>Nevertheless, I took the datasets I could find and made the best of what I had. The objective was to make a very simple model that’s okay to use. And I think it is okay, and I couldn’t come up with anything better. I didn’t want to call it Björn Ottosson Lab or something like that, so I went with Oklab.</p>

<p><span class="smashing-tv-host">Philip:</span> Does the name follow a tradition of calling things okay? I know there’s also a <a href="https://qoiformat.org/">Quite OK Image</a> format.</p>

<p><span class="smashing-tv-speaker">Björn:</span> No, I didn’t follow any tradition here. Oklab was just the name I came up with.</p>

<div class="partners__lead-place"></div>

<h2 id="on-oklab-adoption">On Oklab Adoption</h2>

<p><span class="smashing-tv-host">Philip:</span> I discovered Oklab when it suddenly appeared in all browsers. Things often move slowly on the web, but in this case, things moved very quickly. How did it happen?</p>

<p><span class="smashing-tv-speaker">Björn:</span> I was surprised, too! I wrote <a href="https://bottosson.github.io/posts/oklab/">a blog post</a> and shared it on Twitter.</p>

<p>I have a lot of contacts in the gaming industry and some contacts in the Visual Effects (VFX) industry. I expected that people working with shaders or visual effects might try this out, and maybe it would be used in some games, perhaps as an effect for a smooth color transition.</p>

<p>But the blog post was spread much more widely than I thought. It was on Hacker News, and many people read it.</p>

<p>The code for Oklab is only 10 lines long, so many open-source libraries have adopted it. This all happened very quickly.</p>

<p><a href="https://svgees.us">Chris Lilley</a> from the W3C got in touch and asked me some questions about Oklab. We discussed it a bit, and I explained how it works and why I created it. He gave a <a href="https://www.w3.org/Graphics/Color/Workshop/slides/talk/lilley">presentation</a> at a conference about it, and then he pushed for it to be added to CSS.</p>

<p>Photoshop also changed its gradients to use Oklab. All of this happened organically without me having to cheer it on.</p>

<h2 id="on-okhsl">On Okhsl</h2>

<p><span class="smashing-tv-host">Philip:</span> In <a href="https://bottosson.github.io/posts/colorpicker/">another blog post</a>, you introduced two other color spaces, Okhsv and Okhsl. You’ve already talked about HSL, so what is Okhsl?</p>

<p><span class="smashing-tv-speaker">Björn:</span> When picking colors, HSL has a big advantage, which is that the parameter space is simple. Any value 0-360 for hue (H) together with any values 0-1 for saturation (S) and lightness (L) are valid combinations and result in different colors on screen. The geometry of HSL is a cylinder, and there’s no way to end up outside that cylinder accidentally.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/2-color-solid-cylinder.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="349"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/2-color-solid-cylinder.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/2-color-solid-cylinder.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/2-color-solid-cylinder.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/2-color-solid-cylinder.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/2-color-solid-cylinder.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/2-color-solid-cylinder.png"
			
			sizes="100vw"
			alt="Color solid cylinder"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      Image source: <a href='https://en.wikipedia.org/wiki/HSL_and_HSV'>Wikipedia</a>. (<a href='https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/2-color-solid-cylinder.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>By contrast, <a href="https://en.wikipedia.org/wiki/Oklab_color_space">Oklab</a> contains all physically possible colors, but there are combinations of values that don’t work where you reach colors that don’t exist. For example, starting from light and saturated yellow in Oklab and rotating the hue to blue, that blue color does not exist in sRGB; there are only darker and less saturated blues. That’s because sRGB in Oklab has a strange shape, so it’s easy to end up going outside it. This makes it difficult to select and manipulate colors with Oklab or Oklch.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/3-srgb-shape-oklab.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="641"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/3-srgb-shape-oklab.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/3-srgb-shape-oklab.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/3-srgb-shape-oklab.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/3-srgb-shape-oklab.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/3-srgb-shape-oklab.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/3-srgb-shape-oklab.png"
			
			sizes="100vw"
			alt="sRGB shape in Oklab."
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      sRGB shape in Oklab. (Image source: <a href='https://ccameron-chromium.github.io/webgl-examples/gamut.html'>Chris Cameron demo</a>) (<a href='https://files.smashing.media/articles/interview-bjorn-ottosson-creator-oklab-color-space/3-srgb-shape-oklab.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Okhsl was an attempt at compromise. It maintains Oklab’s behavior for colors that are not very saturated, close to gray, and beyond that, stretches out to a cylinder that contains all of sRGB. Another way to put it is that the strange shape of sRGB in Oklab has been stretched into a cylinder with reasonably smooth transitions.</p>

<p>The result is similar to HSL, where all parameters can be changed independently without ending up outside sRGB. It also makes Okhsl more complicated than Oklab. There are unavoidable compromises to get something with the characteristics that HSL has.</p>

<blockquote class="pull-quote">
  <p>
    <a class="pull-quote__link" aria-label="Share on Twitter" href="https://twitter.com/share?text=%0aEverything%20with%20color%20is%20about%20compromises.%20Color%20vision%20is%20so%20complex%20that%20it%27s%20about%20making%20practical%20compromises.%0a&url=https://smashingmagazine.com%2f2024%2f10%2finterview-bjorn-ottosson-creator-oklab-color-space%2f">
      
Everything with color is about compromises. Color vision is so complex that it&#39;s about making practical compromises.

    </a>
  </p>
  <div class="pull-quote__quotation">
    <div class="pull-quote__bg">
      <span class="pull-quote__symbol">“</span></div>
  </div>
</blockquote>

<p>This is an area where I wish there were more research. If I have a white background and want to pick some nice colors to put on it, then you can make a lot of assumptions. Okhsl solves many things, but is it possible to do even better?</p>

<div class="partners__lead-place"></div>

<h2 id="on-color-compromises">On Color Compromises</h2>

<p><span class="smashing-tv-host">Philip:</span> Some people who have tried Oklab say there are too many dark shades. You changed that in Okhsl with a new lightness estimate.</p>

<p><span class="smashing-tv-speaker">Björn:</span> This is because Oklab is exposure invariant and doesn’t account for viewing conditions, such as the background color. On the web, there’s usually a white background, which makes it harder to see the difference between black and other dark colors. But if you look at the same gradient on a black background, the difference is more apparent.</p>

<p>CIE Lab handles this, and I tried to handle it in Okhsl, too. So, gradients in Okhsl look better on a white background, but there will be other issues on a black background. It’s always a compromise.</p>

<h2 id="and-finally">And, Finally…</h2>

<p><span class="smashing-tv-host">Philip:</span> Final question: What’s your favorite color?</p>

<p><span class="smashing-tv-speaker">Björn:</span> I would have to say Burgundy. Burgundy, dark greens, and navy blues are favorites.</p>

<p><span class="smashing-tv-host">Philip:</span> Thank you for your time, Björn. I hope our readers have learned something, and I’ll remind them of <a href="https://bottosson.github.io/">your excellent blog</a>, where you go into more depth about Oklab and Okhsl.</p>

<p><span class="smashing-tv-speaker">Björn:</span> Thank you!</p>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(gg, yk)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Adel Khamatov</author><title>Color Mechanics In UI Kits</title><link>https://www.smashingmagazine.com/2023/04/color-mechanics-ui-kits/</link><pubDate>Wed, 19 Apr 2023 20:00:00 +0000</pubDate><guid>https://www.smashingmagazine.com/2023/04/color-mechanics-ui-kits/</guid><description>In this article, Adel Khamatov shares a model of color mechanics that he came up with during research on developing UI kits and illustrates an approach to solving related problems with best practices.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2023/04/color-mechanics-ui-kits/" />
              <title>Color Mechanics In UI Kits</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>Color Mechanics In UI Kits</h1>
                  
                    
                    <address>Adel Khamatov</address>
                  
                  <time datetime="2023-04-19T20:00:00&#43;00:00" class="op-published">2023-04-19T20:00:00+00:00</time>
                  <time datetime="2023-04-19T20:00:00&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>I am currently working on research linked to a project on creating a complete guide to <strong>developing a UI kit as a technical system</strong>. In the first stage, I collected technical decisions, requirements, and possible solutions by analyzing open-source and proprietary UI kits. My initial plan was to to dive deep into every detail after collecting the main decisions that were made in dozens of such UI kits.</p>

<p>At my main workplace, an open-source UI kit is used under the hood. I soon noticed that it was difficult to understand its API when it came to anything related to colors.</p>

<p>I had many questions:</p>

<ul>
<li>Which tasks does the kit’s API solve?</li>
<li>Which concepts does its API implement?</li>
<li>How is the API implemented?</li>
<li>What should I know before starting to implement such mechanics in a UI kit from scratch?</li>
<li>What are the best practices?</li>
</ul>

<p>I decided to temporarily interrupt my data collection and dive deep into this topic. In this article, I want to share some things that I’ve learned. I suppose that I’m not the only one who has such questions, and this article’s goal is to answer these questions to save you time. It will also help me not to burn out and to continue my research work.</p>

<p>How to deal with colors is one of many technical decisions. It incorporates many subdecisions and relates to other decisions, such as:</p>

<ul>
<li>How to implement theme switching &mdash; according to user action or the OS setting?</li>
<li>How to provide theme configuration for different system levels?</li>
<li>How to automatically make a color palette?</li>
<li>How to implement color-contrast checking?</li>
<li>How to support different contrast models? (<a href="https://adrianroselli.com/2017/11/os-high-contrast-versus-inverted-colors.html">Windows has high-contrast mode, whereas macOS has inverted colors</a>.)</li>
</ul>

<p>In the article, I’ll cover two parts. First, we’ll look at <strong>base operations</strong>, which include the definition and use of colors and known issues and practices related to color. Secondly, we’ll look into an <strong>approach to solving tasks</strong> by analyzing existing solutions and understanding the connections between them.</p>

<p>Some code examples will contain Sass and TypeScript, but these aren’t the focus of this article. You will hopefully come to understand a model that you can implement with the tools of your choice.</p>

<p>Also, I’d like to warn you against trying to create your own UI kit. The subdecisions that I mentioned aren’t done consciously. You will see that even implementing a small part of a kit, such as the definition and use of colors, is not as easy as it seems at first glance. Can you imagine the complexity of developing an entire system?</p>

<p>As reference examples, we will use <a href="https://mui.com/material-ui/customization/color/">Material UI</a> and <a href="https://fluentsite.z22.web.core.windows.net/">Fluent UI React Northstar</a>.</p>

<p>Why them?</p>

<p>As for <strong>Material UI</strong>:</p>

<ul>
<li>It contains a lot of best practices (I have compared it with others).</li>
<li>It’s one of the most popular UI kits in open-source software (at least according to the GitHub stars).</li>
<li>I have a lot of experience in using and <a href="https://github.com/mui/material-ui/issues/20852#issuecomment-1239306709">customizing</a> it.</li>
</ul>

<p>As for <strong>Fluent UI React Northstar</strong>:</p>

<ul>
<li>It contains a lot of best practices (I’ve also compared it with others);</li>
<li>It’s used in large-scale enterprise projects.</li>
<li>It contains new concepts that simplify the public API and implementation based on previous experience developing UI kits (see the <a href="https://github.com/layershifter/office-ui-fabric-react">Fluent UI Web readme</a>).</li>
</ul>

<p>As a bonus, you will understand how to use the APIs of these UI kits.</p>

<p>To achieve the article’s goals, we will follow a few steps:</p>

<ol>
  <li>Consider which tasks are required to be solved.</li>
  <li>Define the terms and their meaning. Without a common language, it would be hard for us to understand each other.<br />

<blockquote>“A project faces serious problems when its language is fractured. Domain experts use their jargon, while technical team members have their own language tuned for discussing the domain in terms of design.<br /><br />The terminology of day-to-day discussions is disconnected from the terminology embedded in the code (ultimately the most important product of a software project). And even the same person uses different language in speech and in writing so that the most incisive expressions of the domain often emerge in a transient form that is never captured in the code or even in writing.<br /><br /><strong>Translation blunts communication and makes knowledge crunching anemic.</strong>”<br /><br />&mdash; <em>Domain-Driven Design Tackling Complexity in the Heart of Software</em>, Eric Evans, Addison-Wesley, 2004</blockquote>
</li>
<li>Consider problems we might encounter and how to solve them.</li>
<li>Illustrate solutions by considering the implementation of reference UI kits.</li>
<li>Follow the example of the best reference.</li>
</ol>

<p>Let’s dive in!</p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p><p>Meet <a data-instant href="/the-smashing-newsletter/"><strong>Smashing Email Newsletter</strong></a> with useful tips on front-end, design &amp; UX. Subscribe and <strong>get “Smart Interface Design Checklists”</strong> &mdash; a <strong>free PDF deck</strong> with 150+ questions to ask yourself when designing and building almost <em>anything</em>.</p><div><section class="nlbf"><form action="//smashingmagazine.us1.list-manage.com/subscribe/post?u=16b832d9ad4b28edf261f34df&amp;id=a1666656e0" method="post"><div class="nlbwrapper"><label for="mce-EMAIL-hp" class="sr-only">Your (smashing) email</label><div class="nlbgroup"><input type="email" name="EMAIL" class="nlbf-email" id="mce-EMAIL-hp" placeholder="Your email">
<input type="submit" value="Meow!" name="subscribe" class="nlbf-button"></div></div></form><style>.c-garfield-the-cat .nlbwrapper{margin-bottom: 0;}.nlbf{display:flex;padding-bottom:.25em;padding-top:.5em;text-align:center;letter-spacing:-.5px;color:#fff;font-size:1.15em}.nlbgroup:hover{box-shadow:0 1px 7px -5px rgba(50,50,93,.25),0 3px 16px -8px rgba(0,0,0,.3),0 -6px 16px -6px rgba(0,0,0,.025)}.nlbf .nlbf-button,.nlbf .nlbf-email{flex-grow:1;flex-shrink:0;width:auto;margin:0;padding:.75em 1em;border:0;border-radius:11px;background:#fff;font-size:1em;box-shadow:none}.promo-box .nlbf-button:focus,.promo-box input.nlbf-email:active,.promo-box input.nlbf-email:focus{box-shadow:none}.nlbf-button:-ms-input-placeholder,.nlbf-email:-ms-input-placeholder{color:#777;font-style:italic}.nlbf-button::-webkit-input-placeholder,.nlbf-email::-webkit-input-placeholder{color:#777;font-style:italic}.nlbf-button:-ms-input-placeholder,.nlbf-button::-moz-placeholder,.nlbf-button::placeholder,.nlbf-email:-ms-input-placeholder,.nlbf-email::-moz-placeholder,.nlbf-email::placeholder{color:#777;font-style:italic}.nlbf .nlbf-button{transition:all .2s ease-in-out;color:#fff;background-color:#0168b8;font-weight:700;box-shadow:0 1px 1px rgba(0,0,0,.3);width:100%;border:0;border-left:1px solid #ddd;flex:2;border-top-left-radius:0;border-bottom-left-radius:0}.nlbf .nlbf-email{border-top-right-radius:0;border-bottom-right-radius:0;width:100%;flex:4;min-width:150px}@media all and (max-width:650px){.nlbf .nlbgroup{flex-wrap:wrap;box-shadow:none}.nlbf .nlbf-button,.nlbf .nlbf-email{border-radius:11px;border-left:none}.nlbf .nlbf-email{box-shadow:0 13px 27px -5px rgba(50,50,93,.25),0 8px 16px -8px rgba(0,0,0,.3),0 -6px 16px -6px rgba(0,0,0,.025);min-width:100%}.nlbf .nlbf-button{margin-top:1em;box-shadow:0 1px 1px rgba(0,0,0,.5)}}.nlbf .nlbf-button:active,.nlbf .nlbf-button:focus,.nlbf .nlbf-button:hover{cursor:pointer;color:#fff;background-color:#0168b8;border-color:#dadada;box-shadow:0 1px 1px rgba(0,0,0,.3)}.nlbf .nlbf-button:active,.nlbf .nlbf-button:focus{outline:0!important;text-shadow:1px 1px 1px rgba(0,0,0,.3);box-shadow:inset 0 3px 3px rgba(0,0,0,.3)}.nlbgroup{display:flex;box-shadow:0 13px 27px -5px rgba(50,50,93,.25),0 8px 16px -8px rgba(0,0,0,.3),0 -6px 16px -6px rgba(0,0,0,.025);border-radius:11px;transition:box-shadow .2s ease-in-out}.nlbwrapper{display:flex;flex-direction:column;justify-content:center}.nlbf form{width:100%}.nlbf .nlbgroup{margin:0}.nlbcaption{font-size:.9em;line-height:1.5em;color:#fff;border-radius:11px;padding:.5em 1em;display:inline-block;background-color:#0067b859;text-shadow:1px 1px 1px rgba(0,0,0,.3)}.wf-loaded-stage2 .nlbf .nlbf-button{font-family:Mija}.mts{margin-top: 5px !important;}.mbn{margin-bottom: 0 !important;}</style></section><p class="mts mbn"><small class="promo-box__footer mtm block grey"><em>Once a week. Useful tips on <a href="https://www.smashingmagazine.com/the-smashing-newsletter/">front-end &amp; UX</a>. Trusted by 207.000 friendly folks.</em></small></p></div></p>
</div>
</div>
<div class="feature-panel-right-col">
<div class="feature-panel-image">
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="/images/smashing-cat/cat-firechat.svg"
    alt="Feature Panel"
    width="310"
    height="400"
/>

</div>

<p></div>
</aside>
</div></p>

<h2 id="colors-mechanics-model">Colors Mechanics Model</h2>

<h3 id="terminology">Terminology</h3>

<p>Let’s say that our ultimate goal is to provide the ability to switch themes. In this case, the following concepts come into play:</p>

<ul>
<li><strong>Color, hue</strong><br />
This refers to the type of color (red, blue, and so on). The term we’ll use in this article is “color”.</li>
<li><strong>Color shade, color gradient, color variant, color tone</strong><br />
Color may be determined by hue, brightness, and saturation. The term we’ll use in this article is “color variant”.</li>
</ul>

<blockquote>“One important detail about Munsell’s color system is that he divided the color space into three new dimensions: The hue determined the type of color (red, blue, and so on), the value determined the brightness of the color (light or dark), and the chroma determined the saturation of the color (the purity of the color). These dimensions are still used to this day in some representations of the RGB color model.”<br /><br />&mdash; “<a href="https://programmingdesignsystems.com/color/a-short-history-of-color-theory/index.html#a-short-history-of-color-theory-xZzRFOZ">A Short History of Color Theory</a>”, from <em>Programming Design Systems</em></blockquote>

<ul>
<li><strong>Color palette</strong><br />
This is a set of variants of color. We’ll refer to it in this article as “color palette”.</li>
<li><strong>Design tokens</strong><br />
These are general component property names from a design point of view. The term we’ll use in this article is “visual properties”. For example:

<ul>
<li>border,</li>
<li>text,</li>
<li>background.</li>
</ul></li>
<li><strong>Color scheme, theme, color theme</strong><br />
A color scheme is created to impose some constraints. The term we’ll use in this article is “color scheme” because “theme” is more general than “color scheme” (encompassing font size and so on). For example, a color scheme might:

<ul>
<li>contain only variants of the color pink,</li>
<li>be tailored to light or dark illumination of the space around the device,</li>
<li>be tailored to people with vision impairment,</li>
<li>be tailored to specific device constraints.</li>
</ul></li>
</ul>

<h3 id="producing-operations-with-color">Producing Operations With Color</h3>

<p>We’ll consider basic operations such as defining and using color.</p>

<p>Color is defined according to various color model notations (RGB, HSL, etc.).</p>

<p>In the case of development of a digital user interface, a color scheme is created to color UI components. Each UI component might have a different color for its various properties in each scheme. For example, the background color of a call-to-action button might be red or blue depending on the current theme.</p>

<p>So, how can colors be represented?</p>

<h4 id="how-to-name-variables">How to Name Variables?</h4>

<p>If you just name variables according to their color, you will get into a situation where a variable named <code>redColor</code> should have a blue color value in another scheme.</p>

<p>Also, the components that show an error state should still be able to use the red color from the <code>redColor</code> variable. So, another layer of abstraction needs to be introduced to solve the problem.</p>

<p>This additional layer organizes colors by their function (for example, error state) or visual property name (for example, background). It acts as a color scheme.</p>

<p>It’s interesting that organization by function was already introduced to <a href="https://www.smashingmagazine.com/2021/09/simplifying-form-styles-accent-color/">CSS properties</a>.</p>

<p>Each value in the layer’s structure would be mapped to the color palette value by color name and color variant.</p>

<h3 id="how-to-remember-use-cases">How To Remember Use Cases?</h3>

<p>After adding colors to the layer, you might encounter a minor problem &mdash; how to remember their use cases:</p>

<blockquote>I remember the very first time I tried Sass on a project. The first thing I wanted to do was variablize my colors. From my naming-things-in-HTML skillz, I knew to avoid classes like <code>.header-blue-left-bottom</code> because the color and position of that element might change. It’s better for them to reflect what it is than what it looks like.<br /><br />So, I tried to make my colors semantic, in a sense &mdash; what they represent, not what they literally are:<br /><br />
<pre><code class="language-css">$mainBrandColor: #F060D6;
$secondaryFocus: #4C9FEB;
$fadedHighlight: #F1F3F4;
</code></pre>
But I found that I absolutely never remembered them and had to constantly refer to where I defined them in order to use them. Later, in a ‘screw it’ moment, I named colors more like…<br /><br />
<pre><code class="language-css">$orange: #F060D6;
$red: #BB532E;
$blue: #4C9FEB;

$gray-1: #eee;
$gray-2: #ccc;
$gray-3: #555;
</code></pre>
I found that to be much more intuitive, with little, if any, negative side effects. After all, this isn’t crossing the HTML-CSS boundary here; this is all within CSS and developer-only-facing, which puts more of a narrow scope on the problem.”<br /><br />&mdash; Chris Coyier, “<a href="https://css-tricks.com/what-do-you-name-color-variables/">What do you name color variables?</a>”</blockquote>

<p>In the initial stage of the project, writing comments next to the variables might help. And creating a dictionary might help to communicate with a design team in subsequent stages.</p>

<blockquote>“The use of dictionaries as a means to establish a common understanding of terms has already proved its benefits in various software-related fields. Literature on software project management <strong>recommends the usage of a project glossary or dictionary that contains a description of all terms used in a project</strong>. This glossary serves as a reference for project participants over the entire project life cycle.”<br /><br />&mdash; <em>Concise and Consistent Naming</em>, Florian Deissenboeck, Markus Pizka, 2006, Software Qual J</blockquote>

<p>Now we understand why just using color names wouldn’t work. But it points to the solution for another minor problem: defining names for variants of a particular color.</p>

<h3 id="how-to-define-names-for-color-variants">How To Define Names For Color Variants?</h3>

<p>The solution is simple. Just add numbers as suffixes to the names. The advantage of this approach is that adding a new color will be easy, and the suffix will tell you that the color is a variant of another color. But this is still hard to remember.</p>

<pre><code class="language-css">$gray-1: #eee;
$gray-2: #ccc;
$gray-3: #555;
</code></pre>

<p>Another approach is to give a unique name to each color. This approach is the least convenient because names wouldn’t have any useful information, and you would have to remember them. You would need to define the names or use a name generator, which is an unnecessary dependency.</p>

<p>A better solution is suggested by Zain Adeel in his article “<a href="https://uxdesign.cc/my-struggle-with-colors-52156c664b87">My Struggle With Colors</a>”:</p>

<blockquote>Using a scale from 10–100 with a tone at each ten is by far the simplest. A purple-10 will understandably be the lighter tone in comparison to a purple-50. The familiarity of such an approach allows the system to grow predictably.</blockquote>

<p>The approach provides maximum useful information by name. Also, it can cover more cases if a prefix is added. For example, the prefix “A” can denote an accent color. As explained <a href="https://mui.com/material-ui/customization/color/#2014-material-design-color-palettes">in the Material UI documentation</a>:</p>

<blockquote>A single color within the palette is made up of a hue, such as “red”, and shade, such as “500”. “red 50” is the lightest shade of red (pink!), while “red 900” is the darkest. In addition, most hues come with “accent” shades, prefixed with an A.</blockquote>

<p>A disadvantage is that the cascade will change if you ever have to add an intermediate color with a brightness variant. For example, if you have to add a color between <code>gray-10</code> and <code>gray-20</code>, then you might replace <code>gray-20</code> and then have to adjust the following color values (<code>gray-30</code>, gray-40, and so on).</p>

<p>Also, any solution comes with potential maintenance issues. For example, we would have to ensure that all color definitions have all possible variants in order to avoid a scenario where we have <code>gray-20</code> but not <code>red-20</code>.</p>

<p>One approach to solving problems is <a href="https://material.io/design/color/the-color-system.html#color-usage-and-palettes">Material Design’s color system</a>. One of the values of this guide is that it doesn’t contain details of technical implementation, but rather focuses on concepts containing only important information.</p>

<div class="partners__lead-place"></div>

<h2 id="illustrating-solutions">Illustrating Solutions</h2>

<p>Let’s look at an implementation from top to bottom.</p>

<h3 id="fluent-ui-react-northstar-fluentui-react-northstar-0-63-1">Fluent UI React Northstar (<code>@fluentui/react-northstar@0.63.1</code>)</h3>

<h4 id="color-scheme">Color Scheme</h4>

<p>Let’s consider the <a href="https://github.com/microsoft/fluentui/tree/dab45a2afe609709735b9b6e604a1af40d50e809/packages/fluentui/react-northstar/src/themes/teams">“Teams” theme</a>.</p>

<p>Fluent UI React Northstar has a two-dimensional color scheme model.</p>














<figure class="
  
  
  ">
  
    <a href="https://files.smashing.media/articles/color-mechanics-ui-kits/1-color-schemes.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="479"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/color-mechanics-ui-kits/1-color-schemes.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/color-mechanics-ui-kits/1-color-schemes.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/color-mechanics-ui-kits/1-color-schemes.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/color-mechanics-ui-kits/1-color-schemes.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/color-mechanics-ui-kits/1-color-schemes.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/color-mechanics-ui-kits/1-color-schemes.png"
			
			sizes="100vw"
			alt="Color schemes"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      <a href='https://fluentsite.z22.web.core.windows.net/0.63.1/color-schemes'>Color schemes</a>. (<a href='https://files.smashing.media/articles/color-mechanics-ui-kits/1-color-schemes.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>“Brand” is the color scheme. “Light theme,” “HC theme,” and “Dark theme” will also be color schemes in this article.</p>

<p><strong>Grouping Approach</strong></p>

<p>Color scheme object keys are visual properties combined with states.</p>

<div class="break-out">
<pre><code class="language-css">export const colorScheme: ColorSchemeMapping<ColorScheme, TeamsColorNames> = {
  amethyst: createColorScheme({
    background: colors.amethyst[600],
    backgroundHover: colors.amethyst[700],
    backgroundHover1: colors.amethyst[500],
    backgroundActive: colors.amethyst[700],
  }),
};
</code></pre>
</div>

<p><strong>Note</strong>: <a href="https://github.com/microsoft/fluentui/blob/dab45a2afe609709735b9b6e604a1af40d50e809/packages/fluentui/react-northstar/src/themes/teams/colors.ts#L214">Check out the source code</a>.</p>

<p>In the <a href="https://github.com/microsoft/fluentui/blob/dab45a2afe609709735b9b6e604a1af40d50e809/packages/fluentui/react-northstar/src/themes/teams/index.tsx#L13"><code>siteVariables</code></a> key of the theme configuration, the colors palette is located in the <a href="https://github.com/microsoft/fluentui/blob/dab45a2afe609709735b9b6e604a1af40d50e809/packages/fluentui/react-northstar/src/themes/teams/siteVariables.ts#L8"><code>colors</code> key</a>, and the color scheme is in the <a href="https://github.com/microsoft/fluentui/blob/dab45a2afe609709735b9b6e604a1af40d50e809/packages/fluentui/react-northstar/src/themes/teams/siteVariables.ts#L8"><code>colorScheme</code></a> key. They are explicitly separated.</p>

<h4 id="color-palette">Color Palette</h4>

<p>A color palette is an object. Interestingly, some color values are defined with transparency, and the palette contains colors named according to their function.</p>

<pre><code class="language-css">export const colors: ColorPalette&lt;TeamsTransparentColors&gt; = {
  ...contextualAndNaturalColors,
  ...primitiveColors,
  ...transparentColors,
};
</code></pre>

<p><strong>Note</strong>: <a href="https://github.com/microsoft/fluentui/blob/dab45a2afe609709735b9b6e604a1af40d50e809/packages/fluentui/react-northstar/src/themes/teams/colors.ts#L173">Check out the source code</a>.</p>

<blockquote>“Colors in Teams color palette have the following categorization.<br /><br /><strong>Primitive colors</strong><br /><br />This part of the palette contains colors that, semantically, cannot have any tints. This group is represented by two colors, black and white &mdash; as there is nothing blacker than black and nothing whiter than white.<br /><br />[...]<br /><br /><strong>Natural colors</strong><br /><br />This part of the palette includes colors from those that are the most commonly used among popular frameworks (blue, green, gray, orange, pink, purple, teal, red, yellow). Each color includes at least ten gradients; this allows us to satisfy the most common needs.<br /><br />This decision is experienced from Material UI and allows us to define more variants than by using semantical naming (lightest, lighter, etc.). However, there is no requirement for a client to define all the gradient values for each color &mdash; it is just enough to define those that are actually used in the app.<br /><br />[...]<br /><br /><strong>Contextual colors</strong><br /><br />This part of the palette may include brand color as well as danger, success, info colors, and so on.”<br /><br />&mdash; “<a href="https://fluentsite.z22.web.core.windows.net/0.63.1/colors#color-palette">Colors</a>”, Fluent UI documentation</blockquote>

<p>The value in the object’s key by color name may be an object containing keys such as a color variant or just a color string literal of a specific color model.</p>

<pre><code class="language-css">export const naturalColors: TeamsNaturalColors = {
  orange: {
    50: '#F9ECEA', // darkOrange[50]
    100: '#EFDBD3', // app orange14
    200: '#EDC2A7', // old message highlight border
    300: '#E97548', // orange[900]
    400: '#CC4A31', // app orange04 darkOrange[400]
    500: '#BD432C', // app orange03
    600: '#A33D2A', // app orange02
    700: '#833122', // app orange01 darkOrange[900]
    800: '#664134', // app orange14 dark
    900: '#51332C', // app orange16 dark
  },
}
</code></pre>

<p><strong>Note</strong>: <a href="https://github.com/microsoft/fluentui/blob/dab45a2afe609709735b9b6e604a1af40d50e809/packages/fluentui/react-northstar/src/themes/teams/colors.ts#L54">Check out the source code</a>.</p>

<pre><code class="language-css">export const primitiveColors: PrimitiveColors = {
  black: ‘#000’,
  white: ‘#fff’,
};
</code></pre>

<p><strong>Note</strong>: <a href="https://github.com/microsoft/fluentui/blob/dab45a2afe609709735b9b6e604a1af40d50e809/packages/fluentui/react-northstar/src/themes/teams/colors.ts#L121">Check out the source code</a>.</p>

<h3 id="material-ui-mui-material-5-10-4">Material UI (<code>@mui/material@5.10.4</code>)</h3>

<h4 id="color-scheme-1">Color Scheme</h4>

<p>Material UI provides only dark and light color schemes as default schemes.</p>

<p><strong>Grouping Approach</strong></p>

<p>The <code>palette</code> key of the theme configuration contains the color scheme used in this article.</p>














<figure class="
  
  
  ">
  
    <a href="https://mui.com/material-ui/customization/default-theme/">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="672"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/color-mechanics-ui-kits/2-screen-default-scheme-explorer.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://files.smashing.media/articles/color-mechanics-ui-kits/2-screen-default-scheme-explorer.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://files.smashing.media/articles/color-mechanics-ui-kits/2-screen-default-scheme-explorer.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://files.smashing.media/articles/color-mechanics-ui-kits/2-screen-default-scheme-explorer.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://files.smashing.media/articles/color-mechanics-ui-kits/2-screen-default-scheme-explorer.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://files.smashing.media/articles/color-mechanics-ui-kits/2-screen-default-scheme-explorer.png"
			
			sizes="100vw"
			alt="Screen of default scheme explorer"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      <a href='https://mui.com/material-ui/customization/default-theme/'>Screen of default scheme explorer</a>. (<a href='https://files.smashing.media/articles/color-mechanics-ui-kits/2-screen-default-scheme-explorer.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Keys linked to the colors of the color scheme have been chosen according to the following groups:</p>

<ol>
  <li><strong>The functional purpose of the color</strong>:
    <ul>
      <li><code>primary</code></li>
      <li><code>primaryDark</code></li>
      <li><code>text</code></li>
      <li><code>gray</code></li>
      <li><code>error</code></li>
      <li><code>success</code></li>
      <li><code>warning</code></li>
      <li><code>secondary</code></li>
      <li><code>info</code></li>
      <li><code>action</code></li>
      <li><code>divider</code></li>
    </ul>
    <br />As the value in these object keys, they may be the following keys:
    <ul>
      <li><code>light</code></li>
      <li><code>main</code></li>
      <li><code>dark</code></li>
      <li><code>contrastText</code></li>
    </ul>
  </li>
  <li><strong>Visual property name</strong><br />For example, <code>background</code>.</li>
  <li><strong>Colors grouped in a category</strong>:<br />
<pre><code class="language-css">{
  common: {
    black: "#1D1D1D"
    white: "#fff"
  }
}
</code></pre>
</li></ol>

<p>At the same time, the values in <code>theme.palette</code> contain other stuff:</p>

<ul>
  <li>The current color scheme mode:<br />

<pre><code class="language-css">{
  mode: 'dark',
}</code></pre>
</li>
<li>Utilities such as <code>getContrastText</code>,</li>
<li>...and more.</li>
</ul>

<h4 id="color-palette-1">Color Palette</h4>

<p>Each color is an object. Keys are a color variant. The prefix <code>A</code> denotes the accent color.</p>

<pre><code class="language-css">const blue = {
  50: '#e3f2fd',
  100: '#bbdefb',
  200: '#90caf9',
  300: '#64b5f6',
  400: '#42a5f5',
  500: '#2196f3',
  600: '#1e88e5',
  700: '#1976d2',
  800: '#1565c0',
  900: '#0d47a1',
  A100: '#82b1ff',
  A200: '#448aff',
  A400: '#2979ff',
  A700: '#2962ff',
};

export default blue;
</code></pre>

<p><strong>Note</strong>: <a href="https://github.com/mui/material-ui/tree/512896973499adbbda057e7f3685d1b23cc02de9/packages/mui-material/src/colors">Check out the source code</a>.</p>

<h3 id="comparison">Comparison</h3>

<p>We will choose the best reference example according to the following factors:</p>

<ul>
<li>an API that corresponds with the given terminology agreed on by client;</li>
<li>implementation that corresponds with the given terminology;</li>
<li>following best practices for the designated tasks.</li>
</ul>

<h4 id="correspondence-with-given-terminology">Correspondence With Given Terminology</h4>

<p><strong>Fluent UI React Northstar</strong></p>

<p><strong><em>Pros:</em></strong></p>

<ul>
<li>The color palette and color scheme are explicitly separated.</li>
</ul>

<p><strong><em>Cons:</em></strong></p>

<ul>
<li>The color palette contains not only common color names (red, green, and so on).</li>
</ul>

<p><strong>Material UI</strong></p>

<p><strong><em>Pros:</em></strong></p>

<ul>
<li>The color scheme (the “palette” key in the theme configuration) contains not only colors.</li>
<li>The “palette” key name is confusing because if you want to use a color palette, you would import the “colors” object from the <code>@mui/material</code> package.</li>
<li>Misunderstanding is compounded by incomplete compliance with the Material UI guide:

<ul>
<li><a href="https://github.com/mui/material-ui/issues/17241">Not all “on” colors aren’t presented</a>. Presented colors are named differently.</li>
<li><a href="https://github.com/mui/material-ui/issues/21126">“Surface” color is named differently</a>.</li>
</ul></li>
</ul>

<h4 id="used-practices">Used Practices</h4>

<p>From the point of view of this factor, let’s consider only the differences.</p>

<p><strong>Fluent UI React Northstar</strong></p>

<p>Adding a postfix denoting the brightness of color was chosen as the approach to name variables. The color palette contains colors named by their function and common color names (red, green, and so on). The color scheme groups color by visual properties combined with states.</p>

<p><strong>Material UI</strong></p>

<p>Adding a suffix denoting the brightness of the color and a prefix denoting the accent color was decided on as the approach to naming variables. The color palette contains colors named by their common color names (red, green, and so on). The color scheme groups color by visual properties and function.</p>

<p>I would use the Fluent UI React Northstar as the reference for implementation because it accords with the given terminology. If the topics that were mentioned in the introduction as not being considered were to be considered, then the choice might have been different.</p>

<div class="partners__lead-place"></div>

<h2 id="conclusion">Conclusion</h2>

<p>Let’s summarize the key points:</p>

<ol>
<li>If you want to implement something, examine the best references in order to avoid reinventing the wheel, and focus instead on finding solutions to unresolved problems.</li>
<li>During the examination process, you will encounter solved tasks and terms. Make a summary of them.</li>
<li>Choose the best solutions according to your task’s requirements and limitations.</li>
<li>Choose the best reference that corresponds with the solutions that you chose.</li>
<li>Implement by following the best reference.</li>
</ol>

<p>If you want to dig into color theory, I strongly recommend the book <a href="https://programmingdesignsystems.com/color/a-short-history-of-color-theory/index.html#a-short-history-of-color-theory-xZzRFOZ"><em>Programming Design Systems</em></a>, written by Rune Skjoldborg Madsen.</p>

<p><em>I would like to thank Andrey Antropov, Daniyal Gabitov, and Oleksandr Fediashov for their suggestions for improvement and valuable additions. I would also like to thank the editors of Smashing Magazine for their assistance.</em></p>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(vf, yk, il, al)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Michelle Barker</author><title>A Guide To Modern CSS Colors With RGB, HSL, HWB, LAB And LCH</title><link>https://www.smashingmagazine.com/2021/11/guide-modern-css-colors/</link><pubDate>Wed, 17 Nov 2021 16:00:00 +0000</pubDate><guid>https://www.smashingmagazine.com/2021/11/guide-modern-css-colors/</guid><description>Did you know that your chosen color palette can have an impact on how much energy your website uses? Even a more environmentally friendly choice of colors can reduce the impact on the battery life of mobile devices. In this article, Michelle Barker shares advice on the not-so-obvious things you have to keep in mind when handling colors in CSS today.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2021/11/guide-modern-css-colors/" />
              <title>A Guide To Modern CSS Colors With RGB, HSL, HWB, LAB And LCH</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>A Guide To Modern CSS Colors With RGB, HSL, HWB, LAB And LCH</h1>
                  
                    
                    <address>Michelle Barker</address>
                  
                  <time datetime="2021-11-17T16:00:00&#43;00:00" class="op-published">2021-11-17T16:00:00+00:00</time>
                  <time datetime="2021-11-17T16:00:00&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>There’s more to color on the web than meets the eye, and it’s about to get a lot more interesting! Today, we’ll take a look at the best ways to use colors in a design system, and what we can expect from our colors in the not-too-distant future.</p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="https://www.smashingconf.com/online-workshops/">Smashing Workshops</a></strong> on <strong>front-end, design &amp; UX</strong>, with practical takeaways, live sessions, <strong>video recordings</strong> and a friendly Q&amp;A. With Brad Frost, Stéph Walter and <a href="https://smashingconf.com/online-workshops/workshops">so many others</a>.</p>
<a data-instant href="smashing-workshops" class="btn btn--green btn--large" style="">Jump to the workshops&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="smashing-workshops" class="feature-panel-image-link">
<div class="feature-panel-image">
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="/images/smashing-cat/cat-scubadiving-panel.svg"
    alt="Feature Panel"
    width="257"
    height="355"
/>

</div>
</a>
</div>
</aside>
</div>

<h2 id="well-known-color-values">Well-Known Color Values</h2>

<p>There are many different ways to define colors in CSS. <a href="https://css-tricks.com/snippets/css/named-colors-and-hex-equivalents/">CSS named colors</a> are one of the simplest ways to color an element:</p>

<pre><code class="language-css">.my-element {
  background-color: red;
}
</code></pre>

<p>These are very limited, and rarely fit the designs we are building! We could also use color hex (hexadecimal) values. This code gives our element a red background color:</p>

<pre><code class="language-css">.my-element {
  background-color: #ff0000;
}
</code></pre>

<p>Unless you’re a color expert, hex values are very difficult to read. It’s unlikely you would be able to guess the color of an element by reading the hex value. When building a website we might be given a hex color value by a designer, but if they asked us to make it, say 20% darker, we would have a hard time doing that by adjusting the hex value, without a visual guide or color picker.</p>

<h3 id="rgb">RGB</h3>

<p>RGB (red, green, blue) notation is an alternative way of writing colors, giving us access to the same range of colors as hex values, in a much more readable form. We have an <code>rgb()</code> function in CSS for this. Colors on the web are additive, meaning the higher the proportion of red, green and blue, the lighter the resulting color will be. If we only use the red channel, the result is red:</p>

<pre><code class="language-css">.my-element {
  background-color: rgb(255, 0, 0);
}
</code></pre>

<p>Setting the red, green and blue channels to the highest value will result in white:</p>

<pre><code class="language-css">.my-element {
  background-color: rgb(255, 255, 255);
}
</code></pre>

<p>We can also add an alpha channel (for transparency), by using the <code>rgba()</code> function:</p>

<pre><code class="language-css">.my-element {
  background-color: rgba(255, 0, 0, 0.5); // transparency of 50%
}

.my-element {
  background-color: rgba(255, 0, 0, 1); // fully opaque
}
</code></pre>

<p><code>rgb()</code> and <code>rgba()</code> allow us to “mix” colors in our code to some extent, but the results can be somewhat unpredictable.</p>

<h3 id="hsl">HSL</h3>

<p>More recently, we have been able to use HSL (hue, saturation, lightness) values, with the <code>hsl()</code> and <code>hsla()</code> color functions. As a developer, these are far more intuitive when it comes to adjusting color values. For example, we can get darker and lighter variants of the same color by adjusting the <code>lightness</code> parameter:</p>

<pre><code class="language-css">.my-element {
  background-color: hsl(0deg, 100%, 20%); // dark red
}

.my-element {
  background-color: hsl(0deg, 100%, 50%); // medium red
}

.my-element {
  background-color: hsl(0deg, 100%, 80%); // light red
}
</code></pre>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a6d3545f-7d8b-497a-99be-6f4bb8704b64/1-modern-css-color.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a6d3545f-7d8b-497a-99be-6f4bb8704b64/1-modern-css-color.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a6d3545f-7d8b-497a-99be-6f4bb8704b64/1-modern-css-color.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a6d3545f-7d8b-497a-99be-6f4bb8704b64/1-modern-css-color.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a6d3545f-7d8b-497a-99be-6f4bb8704b64/1-modern-css-color.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a6d3545f-7d8b-497a-99be-6f4bb8704b64/1-modern-css-color.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a6d3545f-7d8b-497a-99be-6f4bb8704b64/1-modern-css-color.png"
			
			sizes="100vw"
			alt="Three color swatches resulting from the previous code, ranging from dark to light red"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a6d3545f-7d8b-497a-99be-6f4bb8704b64/1-modern-css-color.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>The <code>hue</code> parameter represents the position on a color wheel, and can be any value between <code>0</code> and <code>360deg</code>. The function also accepts turn units (e.g. <code>0.5turn</code>), and unitless values.</p>

<p>The following are all valid:</p>

<pre><code class="language-css">.my-element {
  background-color: hsl(180deg, 50%, 50%);
}

.my-element {
  background-color: hsl(0.5turn, 50%, 50%);
}

.my-element {
  background-color: hsl(180, 50%, 50%);
}
</code></pre>

<p><strong>Tip</strong>: Holding down <kbd>SHIFT</kbd> and clicking the color swatch in the inspector in Chrome and Firefox dev tools will toggle the color value between hex, RGB and HSL!</p>

<p><code>hsl()</code> and <code>hsla()</code> lend themselves well to manipulation with custom properties, as we’ll see shortly.</p>

<h3 id="currentcolor"><code>currentColor</code></h3>

<p>The <code>currentColor</code> keyword is worth a mention as another way of setting a color on an element that’s been around for a while. It effectively allows us to use the current text color of an element as a variable. It’s pretty limited when compared with custom properties, but it’s often used for setting the fill color of SVG icons, to ensure they match the text color of their parent. <a href="https://css-tricks.com/cascading-svg-fill-color/">Read about it here</a>.</p>

<h2 id="modern-color-syntax">Modern Color Syntax</h2>

<p>The <a href="https://www.w3.org/TR/css-color-4">CSS Color Module Level 4</a> provides us with a more convenient syntax for our color functions, which is <a href="https://caniuse.com">widely supported in browsers</a>. We no longer need the values to be comma-separated, and the <code>rgb()</code> and <code>hsl()</code> functions can take an optional alpha parameter, separated with a forward slash:</p>

<pre><code class="language-css">.my-element {
  /* optional alpha value gives us 50% opacity */
  background-color: hsl(0 100% 50% / 0.5);
}

.my-element {
  /* With no alpha value the background is fully opaque*/
  background-color: hsl(0 100% 50%);
}
</code></pre>

<h2 id="new-css-color-functions">New CSS Color Functions</h2>

<h3 id="hwb">HWB</h3>

<p>HWB stands for hue, whiteness and blackness. Like HSL, the hue can be anywhere within a range of 0 to 360. The other two arguments control how much white or black is mixed into that hue, up to 100% (which would result in a totally white or totally black color). If equal amounts of white and black are mixed in, the color becomes increasingly gray. We can think of this as being similar to mixing paint. It could be especially useful for creating monochrome color palettes.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/536ab898-2bb4-4c42-a9f1-e46bf1da7f63/2-modern-css-color.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/536ab898-2bb4-4c42-a9f1-e46bf1da7f63/2-modern-css-color.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/536ab898-2bb4-4c42-a9f1-e46bf1da7f63/2-modern-css-color.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/536ab898-2bb4-4c42-a9f1-e46bf1da7f63/2-modern-css-color.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/536ab898-2bb4-4c42-a9f1-e46bf1da7f63/2-modern-css-color.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/536ab898-2bb4-4c42-a9f1-e46bf1da7f63/2-modern-css-color.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/536ab898-2bb4-4c42-a9f1-e46bf1da7f63/2-modern-css-color.png"
			
			sizes="100vw"
			alt="Five color swatches resulting from HWB colors with different amounts of white/black"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/536ab898-2bb4-4c42-a9f1-e46bf1da7f63/2-modern-css-color.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Try it out with <a href="https://codepen.io/smashingmag/pen/xxLmOgV">this demo</a> (works in Safari only):</p>

<figure class="break-out">
	<p data-height="480"
	data-theme-id="light"
	data-slug-hash="xxLmOgV"
	data-user="smashingmag"
	data-default-tab="result"
	class="codepen">See the Pen [HWB color (Safari only)](https://codepen.io/smashingmag/pen/xxLmOgV) by <a href="https://codepen.io/michellebarker">Michelle Barker</a>.</p>
	<figcaption>See the Pen <a href="https://codepen.io/smashingmag/pen/xxLmOgV">HWB color (Safari only)</a> by <a href="https://codepen.io/michellebarker">Michelle Barker</a>.</figcaption>
</figure>

<h3 id="lab">LAB</h3>

<p>LAB and LCH are defined in the <a href="https://www.w3.org/TR/css-color-4/#specifying-lab-lch">specification</a> as <strong>device-independent colors</strong>. LAB is a color space that can be accessed in software like Photoshop and is recommended if you want a color to look the same on-screen as, say, printed on a t-shirt. It uses three axes: lightness, followed by the <em>a-axis</em> (green to red) and <em>b-axis</em> (blue to yellow).</p>

<p>Lightness is expressed as a percentage, much like HSL, but can in fact exceed 100% when used with the <code>lab()</code> color function. Extra-bright whites can use a percentage of up to 400%. Values for the <em>a</em> and <em>b</em> axes can range from positive to negative. Two negative values will result in a color towards the green/blue end of the spectrum, while two positive values can give a more orange/red hue.</p>

<pre><code class="language-css">.my-element {
  background-color: lab(80% 100 50); // reddish pink
}

.my-element {
  background-color: lab(80% -80 -100); // blue/turquoise
}
</code></pre>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/da33544f-aab5-4fc3-81d9-d3e5f75442d4/3-modern-css-color.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/da33544f-aab5-4fc3-81d9-d3e5f75442d4/3-modern-css-color.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/da33544f-aab5-4fc3-81d9-d3e5f75442d4/3-modern-css-color.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/da33544f-aab5-4fc3-81d9-d3e5f75442d4/3-modern-css-color.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/da33544f-aab5-4fc3-81d9-d3e5f75442d4/3-modern-css-color.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/da33544f-aab5-4fc3-81d9-d3e5f75442d4/3-modern-css-color.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/da33544f-aab5-4fc3-81d9-d3e5f75442d4/3-modern-css-color.png"
			
			sizes="100vw"
			alt="Red/pink color swatch with positive a/b values, blue/turquoise color swatch with negative a/b values"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/da33544f-aab5-4fc3-81d9-d3e5f75442d4/3-modern-css-color.png'>Large preview</a>)
    </figcaption>
  
</figure>

<figure class="break-out">
	<p data-height="480"
	data-theme-id="light"
	data-slug-hash="JjywKNK"
	data-user="smashingmag"
	data-default-tab="result"
	class="codepen">See the Pen [LAB Color (Safari only)](https://codepen.io/smashingmag/pen/JjywKNK) by <a href="https://codepen.io/michellebarker">Michelle Barker</a>.</p>
	<figcaption>See the Pen <a href="https://codepen.io/smashingmag/pen/JjywKNK">LAB Color (Safari only)</a> by <a href="https://codepen.io/michellebarker">Michelle Barker</a>.</figcaption>
</figure>

<h3 id="lch">LCH</h3>

<p>LCH stands for lightness, chroma, and hue. As with LAB, <em>lightness</em> can be a percentage that exceeds 100%. Similar to HSL, <em>hue</em> can be a range between 0 and 360. Chroma represents the <em>amount</em> of color, and we can think of it as being similar to saturation in HSL. But chroma can exceed 100 — in fact, it’s theoretically unbounded. Example usage:</p>

<pre><code class="language-css">.my-element {
  background-color: lch(80% 100 50);
}

.my-element {
  background-color: lch(80% 240 50); // this color would be outside of the displayable range of today’s browsers
}
</code></pre>

<p>However, there is a limit on how many colors browsers and monitors today can display (more on that shortly), so values above 230 are unlikely to make a difference — the Chroma is reduced until it is within range.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/71cf899c-c146-484e-bb1a-5a26e9e7c55d/4-modern-css-color.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/71cf899c-c146-484e-bb1a-5a26e9e7c55d/4-modern-css-color.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/71cf899c-c146-484e-bb1a-5a26e9e7c55d/4-modern-css-color.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/71cf899c-c146-484e-bb1a-5a26e9e7c55d/4-modern-css-color.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/71cf899c-c146-484e-bb1a-5a26e9e7c55d/4-modern-css-color.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/71cf899c-c146-484e-bb1a-5a26e9e7c55d/4-modern-css-color.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/71cf899c-c146-484e-bb1a-5a26e9e7c55d/4-modern-css-color.png"
			
			sizes="100vw"
			alt="Four LCH color swatches with red hue, varying chroma levels"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      The final color on the right is outside the displayable range (gamut), so no difference is perceived. (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/71cf899c-c146-484e-bb1a-5a26e9e7c55d/4-modern-css-color.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Why do we need LAB and LCH when we have HSL? One reason is that using LAB or LCH, gives us access to a much larger range of colors. LCH and LAB are designed to give us access to the entire spectrum of human vision. Furthermore, HSL and RGB have a few shortcomings: they are not perceptually uniform and, in HSL, increasing or decreasing the lightness has quite a different effect depending on the hue.</p>

<p>In <a href="https://codepen.io/smashingmag/pen/yLoGJXd">this demo</a>, we can see a stark contrast between LCH and HSL by hitting the grayscale toggle. For the HSL hue and saturation strips, there are clear differences in the perceptual lightness of each square, even though the “lightness” component of the HSL function is the same! Meanwhile, the chroma and hue strips on the LCH side have an almost-uniform perceptual lightness.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4253d9b2-46d7-4b10-9e1a-b5f3ac6cea1c/5-modern-css-color.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4253d9b2-46d7-4b10-9e1a-b5f3ac6cea1c/5-modern-css-color.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4253d9b2-46d7-4b10-9e1a-b5f3ac6cea1c/5-modern-css-color.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4253d9b2-46d7-4b10-9e1a-b5f3ac6cea1c/5-modern-css-color.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4253d9b2-46d7-4b10-9e1a-b5f3ac6cea1c/5-modern-css-color.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4253d9b2-46d7-4b10-9e1a-b5f3ac6cea1c/5-modern-css-color.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4253d9b2-46d7-4b10-9e1a-b5f3ac6cea1c/5-modern-css-color.png"
			
			sizes="100vw"
			alt="LCH and HSL color swatches compared side-by-side"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      By applying a grayscale filter we can see that the LCH colors (left) have an almost-uniform lightness when we adjust the chroma and hue, compared to when we adjust the hue and saturation of the HSL colors (right), where there are visible differences in lightness. (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4253d9b2-46d7-4b10-9e1a-b5f3ac6cea1c/5-modern-css-color.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>We can also see a big difference when using LCH color for gradients. Both these gradients start and end with the same color (with LCH values converted to the HSL equivalents using <a href="http://colormine.org/convert/lch-to-hsl">this converter</a>). But the LCH gradient goes through vibrant shades of blue and purple in the middle, whereas the HSL gradient looks muddier and washed-out by comparison.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72ba74de-3574-4301-ab9c-03b37c52acf6/6-modern-css-color.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72ba74de-3574-4301-ab9c-03b37c52acf6/6-modern-css-color.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72ba74de-3574-4301-ab9c-03b37c52acf6/6-modern-css-color.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72ba74de-3574-4301-ab9c-03b37c52acf6/6-modern-css-color.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72ba74de-3574-4301-ab9c-03b37c52acf6/6-modern-css-color.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72ba74de-3574-4301-ab9c-03b37c52acf6/6-modern-css-color.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72ba74de-3574-4301-ab9c-03b37c52acf6/6-modern-css-color.png"
			
			sizes="100vw"
			alt="LCH and HSL blue to pink gradient strips"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72ba74de-3574-4301-ab9c-03b37c52acf6/6-modern-css-color.png'>Large preview</a>)
    </figcaption>
  
</figure>

<ul>
<li><a href="https://codepen.io/smashingmag/pen/VwzqjzW">See the demo →</a></li>
</ul>

<p>LAB and LCH, while perhaps being syntactically a little less intuitive, behave in a way that makes more sense to the human eye. In her article, <a href="https://lea.verou.me/2020/04/lch-colors-in-css-what-why-and-how/">LCH color in CSS: what, why, and how?</a>, Lea Verou explains in detail the advantages of LCH color. She also built this <a href="https://css.land/lch/">LCH color picker</a>.</p>

<p>As with other color functions, <code>hwb()</code>, <code>lab()</code> and <code>lch()</code> can also take an optional alpha parameter.</p>

<pre><code class="language-css">.my-element {
  background-color: lch(80% 240 50 / 0.5); // Resulting color has 50% opacity
}
</code></pre>

<div class="partners__lead-place"></div>

<h2 id="browser-support-and-color-spaces">Browser Support And Color Spaces</h2>

<p><code>hwb()</code>, <code>lab()</code> and <code>lch()</code> are currently only supported in Safari. It’s possible to start using them straight away by providing a fallback for non-supporting browsers. Browsers that don’t support the color function will simple ignore the second rule:</p>

<pre><code class="language-css">.my-element {
  background-color: lch(55% 102 360);

  /* LCH color converted to RGB using Lea Verou’s tool: https://css.land/lch/ */
  background-color: rgb(98.38% 0% 53.33%);
}
</code></pre>

<p>If other styles depend on newer color functions being supported, we could use a feature query:</p>

<pre><code class="language-css">.my-element {
  display: none;
}

/* Only display this element if the browser supports lch() */
@supports (background-color: lch(55% 102 360)) {
  .my-element {
    display: block;
    background-color: lch(55% 102 360);
  }
}
</code></pre>

<p>It’s worth noting, as Lea explains in her article, that although modern screens are capable of displaying colors beyond RGB, most browsers currently only support colors within the sRGB color space. In the <a href="https://codepen.io/smashingmag/pen/KKvbMXY">LAB color demo</a> you might notice that moving the sliders beyond a certain point doesn’t actually affect the color, even in Safari where <code>lab()</code> and <code>lch()</code> are supported. Using values outside of the sRGB range will only have an effect when hardware and browsers advance sufficiently.</p>

<p>Safari now supports the <code>color()</code> function, which enables us to display colors in the P3 space, but these are limited to RGB colors for now, and don’t yet give us all the advantages of LAB and LCH.</p>

<pre><code class="language-css">.my-element {
  background: rgb(98.38% 0% 53.33%); // bright pink
  background: color(display-p3 0.947 0 0.5295); // equivalent in P3 color space
}
</code></pre>

<p><strong>Recommended Reading</strong>: <em>“<a href="https://webkit.org/blog/10042/wide-gamut-color-in-css-with-display-p3/">Wide Gamut Color in CSS with Display-P3</a>” by Nikita Vasilyev</em></p>

<h2 id="accessibility">Accessibility</h2>

<p>Once they are widely supported, perhaps LAB and LCH can help us choose more accessible color combinations. Foreground text should have the same contrast ratio with background colors with different hue or chroma values, as long as their lightness value remains the same. That’s certainly not the case at the moment with HSL colors.</p>

<h2 id="color-management">Color Management</h2>

<p>A wider range of color functions means we have more options when it comes to managing colors in our application. Often we require several variants of a given color in our design system, ranging from dark to light.</p>

<h3 id="custom-properties">Custom Properties</h3>

<p>CSS custom properties allow us to store values for reuse in our stylesheets. As they allow partial property values, they can be especially useful for managing and manipulating color values. HSL lends itself particularly well to custom properties, due to its intuitiveness. In the previous demo, I’m using them to adjust the hue for each segment of the color strip by calculating a <code>--hue</code> value based on the element’s index (defined in another custom property).</p>

<pre><code class="language-css">li {
  --hue: calc(var(--i) * (360 / 10));
  background: hsl(var(--hue, 0) 50% 45%);
}
</code></pre>

<p>We can also do things like calculate complementary colors (colors from opposite sides of the color wheel). Plenty has been written about this, so I won’t cover old ground here, but if you’re curious then Sara Soueidan’s article on <a href="https://www.sarasoueidan.com/blog/hex-rgb-to-hsl/">color management with HSL</a> is a great place to start.</p>

<h3 id="migrating-from-hex-rgb-to-hsl">Migrating From Hex/RGB To HSL</h3>

<p>RGB colors might serve your needs up to a point, but if you need the flexibility to be able to derive new shades from your base color palette then you might be better off switching to HSL (or LCH, once supported). I would recommend embracing custom properties for this.</p>

<p><strong>Note</strong>: <em>There are plenty of online resources for converting hex or RGB values to HSL (here’s <a href="https://www.w3docs.com/tools/color-rgb">one example</a>).</em></p>

<p>Perhaps you have colors stored as Sass variables:</p>

<pre><code class="language-css">$primary: rgb(141 66 245);
</code></pre>

<p>When converting to HSL, we can assign custom properties for the hue, saturation and lightness values. This makes it easy to create darker or lighter, more or less saturated variants of the original color.</p>

<pre><code class="language-css">:root {
  --h: 265;
  --s: 70%;
  --l: 50%;
        
  --primary: hsl(var(--h) var(--s) var(--l));
  --primaryDark: hsl(var(--h) var(--s) 35%);
  --primaryLight: hsl(var(--h) var(--s) 75%);
}
</code></pre>

<p>HSL can be incredibly useful for creating color schemes, as detailed in the article  <a href="https://web.dev/building-a-color-scheme/">Building a Color Scheme</a> by Adam Argyle. In the article he creates light, dark and dim color schemes, using a brand color as a base. I like this approach because it allows for some fine-grained control over the color variant (for example, decreasing the saturation for colors in the “dark” scheme), but still retains the big advantage of custom properties: updating the brand color in just one place will be carried through to all the color schemes, so it could potentially save us a lot of work in the future.</p>

<h3 id="sass-color-functions">Sass Color Functions</h3>

<p>When it comes to mixing and adjusting colors, Sass has provided <a href="https://sass-lang.com/documentation/modules/color">color functions</a> to enable us to do just this for many years. We can saturate or desaturate, lighten or darken, even mix two colors together. These work great in some cases, but they have some limitations: firstly, we can only use them at compile-time, not for manipulating colors live in the browser. Secondly, they are limited to RGB and HSL, so they suffer from the same issues of perceptual uniformity, as we can see in <a href="https://codepen.io/smashingmag/pen/abyPZVZ">this demo</a>, where a color is increasingly desaturated yet appears increasingly lighter when converted to grayscale.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad752292-91a6-4289-b31b-784776b86a06/7-modern-css-color.png">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad752292-91a6-4289-b31b-784776b86a06/7-modern-css-color.png 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad752292-91a6-4289-b31b-784776b86a06/7-modern-css-color.png 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad752292-91a6-4289-b31b-784776b86a06/7-modern-css-color.png 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad752292-91a6-4289-b31b-784776b86a06/7-modern-css-color.png 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad752292-91a6-4289-b31b-784776b86a06/7-modern-css-color.png 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad752292-91a6-4289-b31b-784776b86a06/7-modern-css-color.png"
			
			sizes="100vw"
			alt="Red color swatches increasingly desaturated, with grayscale filter applied to top half"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      The top strip has a grayscale filter applied. As we decrease the saturation of the main red color using Sass (bottom), we can see that the color actually becomes lighter. (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ad752292-91a6-4289-b31b-784776b86a06/7-modern-css-color.png'>Large preview</a>)
    </figcaption>
  
</figure>

<p>To ensure that the lightness remains uniform, we could use custom properties with LCH in a similar way to HSL above.</p>

<pre><code class="language-css">li {
  --hue: calc(var(--i) * (360 / 10));
  background: lch(50% 45 var(--hue, 0));
}
</code></pre>

<h2 id="color-mixing-and-manipulation">Color Mixing And Manipulation</h2>

<h3 id="color-mixing">Color Mixing</h3>

<p>One thing CSS doesn’t <em>yet</em> allow us to do is mix colors in the browser. That’s all about to change: the <a href="https://www.w3.org/TR/css-color-5/#color-mix">Level 5 CSS Color Specification</a> (working draft) contains proposals for color mixing functions that sound rather promising. The first is the <code>color-mix()</code> function, which mixes two colors much like Sass’s <code>mix()</code> function. But <code>color-mix()</code> in CSS allows us to specify a color space, and uses the LCH by default, with superior mixing as a result.</p>

<p><strong>Update</strong>: <em><code>color-mix()</code> and <code>color-contrast()</code> are now available behind a flag in Safari 15!</em></p>

<p>The colors don’t have to be LCH when passed in as arguments either, but the interpolation will use the specified color space. We can specify how much of each color to mix, similar to gradient stops:</p>

<pre><code class="language-css">.my-element {
  /* equal amounts of red and blue */
  background-color: color-mix(in lch, red, blue);
}

.my-element {
  /* 30% red, 70% blue */
  background-color: color-mix(in lch, red 30%, blue);
}
</code></pre>

<h3 id="color-contrast-and-accessibility">Color Contrast And Accessibility</h3>

<p><code>color-contrast()</code> is another proposed function, which really does have huge implications for picking accessible colors. In fact, it’s designed with accessibility in mind first and foremost. It permits the browser to pick the most appropriate value from a list, by comparing it with another color. We can even specify the desired contrast ratio to ensure our color schemes meet WCAG guidelines. Colors are evaluated from left to right, and the browser picks the first color from the list that meets the desired ratio. If no colors meet the ratio, the chosen color will be the one with the highest contrast.</p>

<pre><code class="language-css">.my-element {
  color: wheat;
  background-color: color-contrast(wheat vs bisque, darkgoldenrod, olive, sienna, darkgreen, maroon to AA);
}
</code></pre>

<p>Because this isn’t supported in any browsers right now, I’ve borrowed this example directly from the spec. when the browser evaluates the expression the resulting color will be <code>darkgreen</code>, as it is the first one that meets the AA contrast ratio when compared to <code>wheat</code>, the color of the text.</p>

<h3 id="browser-support">Browser Support</h3>

<p>The Level 5 Color Specification is currently in Working Draft, meaning no browsers yet support the <code>color-contrast()</code> and <code>color-mix()</code> functions and their syntax is subject to change. But it certainly looks like a bright future for color on the web!</p>

<h2 id="environmental-impact-of-colors">Environmental Impact Of Colors</h2>

<p>Did you know that your chosen color palette can have an impact on how much energy your website uses? On OLED screens (which account for most modern TVs and laptops), darker colors will use significantly less energy than light colors — with white using the most energy, and black the least. According to Tom Greenwood, author of <a href="https://abookapart.com/products/sustainable-web-design">Sustainable Web Design</a>, blue is also more energy-intensive than colors in the red and green areas of the spectrum. To reduce the environmental impact of your applications, consider a darker color scheme, using less blue, or enabling a dark-mode option for your users. As an added bonus, a more environmentally friendly choice of colors can also reduce the impact on the battery life of mobile devices.</p>

<h2 id="tools">Tools</h2>

<ul>
<li><a href="https://codepen.io/robdimarzo/full/xxZgKOR">Hexplorer</a>, Rob DiMarzo<br />
<em>Learn to understand hex colors with this interactive visualization.</em></li>
<li><a href="https://css.land/lch/">LCH color picker</a>, Lea Verou and Chris Lilley<br />
<em>Get LCH colors and their RGB counterparts.</em></li>
<li><a href="https://www.w3docs.com/tools/color-hwb">HWB color picker</a><br />
<em>Visualize HWB colors and convert to HSL, RGB and hex.</em></li>
<li><a href="https://github.com/5t3ph/a11y-color-tokens">Ally Color Tokens</a>, Stephanie Eckles<br />
<em>An accessible color token generator.</em></li>
</ul>

<h2 id="resources">Resources</h2>

<ul>
<li>“<a href="https://css-tricks.com/nerds-guide-color-web/">A Nerd’s Guide To Color On The Web</a>,” Sarah Drasner, CSS-Tricks</li>
<li>“<a href="https://lea.verou.me/2020/04/lch-colors-in-css-what-why-and-how/">LCH Colors In CSS: What, Why, And How?</a>,” Lea Verou</li>
<li>“<a href="https://css-tricks.com/the-best-color-functions-in-css/">The Best Color Functions In CSS?</a>,” Chris Coyier, CSS-Tricks</li>
<li>“<a href="https://web.dev/building-a-color-scheme/">Building A Color Scheme</a>,” Adam Argyle, Web.dev</li>
<li>“<a href="https://www.smashingmagazine.com/2021/07/hsl-colors-css/">Using HSL Colors In CSS</a>,” Ahmad Shaheed, Smashing Magazine</li>
<li>“<a href="https://www.sarasoueidan.com/blog/hex-rgb-to-hsl/">On Switching From Hex And RGB To HSL</a>,” Sara Soueidan</li>
<li>“<a href="https://webkit.org/blog/6682/improving-color-on-the-web/">Improving Color On The Web</a>,” Dean Jackson, Webkit Blog</li>
</ul>

<div class="partners__lead-place"></div>

<h3 id="further-reading">Further Reading</h3>

<ul>
<li><a href="https://www.smashingmagazine.com/2024/05/in-praise-of-the-basics/">In Praise Of The Basics</a></li>
<li><a href="https://www.smashingmagazine.com/2025/01/tight-mode-why-browsers-produce-different-performance-results/">Tight Mode: Why Browsers Produce Different Performance Results</a></li>
<li><a href="https://www.smashingmagazine.com/2023/04/color-mechanics-ui-kits/">Color Mechanics In UI Kits</a></li>
<li><a href="https://www.smashingmagazine.com/2025/01/lesser-known-uses-better-known-attributes/">Lesser Known Uses Of Better Known Attributes</a></li>
</ul>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(vf, il, mrn)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Ahmad Shadeed</author><title>Using HSL Colors In CSS</title><link>https://www.smashingmagazine.com/2021/07/hsl-colors-css/</link><pubDate>Mon, 05 Jul 2021 10:30:00 +0000</pubDate><guid>https://www.smashingmagazine.com/2021/07/hsl-colors-css/</guid><description>HSL colors are very powerful when we use them the right way. They can save us time and effort and even help us to explore options for how to apply color to design. In this article, Ahmad Shadeed explains what HSL is, how to use it, and shares some of the useful use-cases and examples that you can use right away in your current projects.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2021/07/hsl-colors-css/" />
              <title>Using HSL Colors In CSS</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>Using HSL Colors In CSS</h1>
                  
                    
                    <address>Ahmad Shadeed</address>
                  
                  <time datetime="2021-07-05T10:30:00&#43;00:00" class="op-published">2021-07-05T10:30:00+00:00</time>
                  <time datetime="2021-07-05T10:30:00&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>From my experience, most of the colors I see people using in CSS are hex and RGB. Recently, I’ve started seeing more usage of HSL colors, however, I still think that the full potential of HSL is overlooked. With the help of this article, I’d like to show you how HSL can truly help us work better with colors in CSS.</p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="https://www.smashingconf.com/online-workshops/">Smashing Workshops</a></strong> on <strong>front-end, design &amp; UX</strong>, with practical takeaways, live sessions, <strong>video recordings</strong> and a friendly Q&amp;A. With Brad Frost, Stéph Walter and <a href="https://smashingconf.com/online-workshops/workshops">so many others</a>.</p>
<a data-instant href="smashing-workshops" class="btn btn--green btn--large" style="">Jump to the workshops&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="smashing-workshops" class="feature-panel-image-link">
<div class="feature-panel-image">
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="/images/smashing-cat/cat-scubadiving-panel.svg"
    alt="Feature Panel"
    width="257"
    height="355"
/>

</div>
</a>
</div>
</aside>
</div>

<h2 id="introduction">Introduction</h2>

<p>Usually, we use hexadecimal color codes (hex colors) which are fine, but they have a couple of issues:</p>

<ul>
<li>They are limiting;</li>
<li>They’re hard to understand from reading them.</li>
</ul>

<p>By “limited”, I mean that it’s not easy to alter the color without opening a color wheel and picking a color yourself. Adding on that, it’s not easy to guess what color is from looking at the hex code.</p>

<p>Consider the following figure:</p>














<figure class="
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/75579961-c7de-40d7-83d1-835c5d43b1f4/1-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="308"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/75579961-c7de-40d7-83d1-835c5d43b1f4/1-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/75579961-c7de-40d7-83d1-835c5d43b1f4/1-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/75579961-c7de-40d7-83d1-835c5d43b1f4/1-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/75579961-c7de-40d7-83d1-835c5d43b1f4/1-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/75579961-c7de-40d7-83d1-835c5d43b1f4/1-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/75579961-c7de-40d7-83d1-835c5d43b1f4/1-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 1"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/75579961-c7de-40d7-83d1-835c5d43b1f4/1-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<p>I picked a hex color for a sky blue, and a darker one. Notice that the hex colors are not related to each other. It’s hard to tell that they are both blue but with different shades.</p>

<p>In a real-life scenario, you might need to create a lighter or darker shade of a color to quickly test or validate something. With hex colors, this isn’t possible until you open the color picker.</p>

<p>Thankfully, HSL colors can help us in solving this specific problem, and it opens a lot of possibilities for us.</p>

<h2 id="what-is-hsl">What Is HSL?</h2>

<p>HSL stands for hue, saturation, and lightness. It’s based on the RGB color wheel. Each color has an angle and a percentage value for the saturation and lightness values.</p>














<figure class="
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a90c72b5-56f2-4147-94c7-e4245a5e3dfb/2-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="484"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a90c72b5-56f2-4147-94c7-e4245a5e3dfb/2-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a90c72b5-56f2-4147-94c7-e4245a5e3dfb/2-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a90c72b5-56f2-4147-94c7-e4245a5e3dfb/2-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a90c72b5-56f2-4147-94c7-e4245a5e3dfb/2-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a90c72b5-56f2-4147-94c7-e4245a5e3dfb/2-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a90c72b5-56f2-4147-94c7-e4245a5e3dfb/2-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 2"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a90c72b5-56f2-4147-94c7-e4245a5e3dfb/2-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Let’s take an example of the sky blue color that we discussed previously. First, we pick the color like we usually do from a color picker, and we make sure to get the HSL value for it.</p>

<p><strong>Note</strong>: <em>I’m using Sketch app, but you use whatever design tool you want.</em></p>

<p>Consider the following figure:</p>














<figure class="
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8aba4b2c-fb5e-4ab1-87d1-9b5e099e597a/3-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="413"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8aba4b2c-fb5e-4ab1-87d1-9b5e099e597a/3-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8aba4b2c-fb5e-4ab1-87d1-9b5e099e597a/3-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8aba4b2c-fb5e-4ab1-87d1-9b5e099e597a/3-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8aba4b2c-fb5e-4ab1-87d1-9b5e099e597a/3-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8aba4b2c-fb5e-4ab1-87d1-9b5e099e597a/3-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8aba4b2c-fb5e-4ab1-87d1-9b5e099e597a/3-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 3"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8aba4b2c-fb5e-4ab1-87d1-9b5e099e597a/3-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Notice that the HSL values in there. The first one is the angle, which represents the angle of the color we have. In this case, it’s sky blue. Once we have the angle, we can start tweaking the saturation and brightness as per our needs.</p>














<figure class="
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0b65afa0-15a9-494b-aab6-9ecf5b2adede/4-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="484"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0b65afa0-15a9-494b-aab6-9ecf5b2adede/4-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0b65afa0-15a9-494b-aab6-9ecf5b2adede/4-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0b65afa0-15a9-494b-aab6-9ecf5b2adede/4-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0b65afa0-15a9-494b-aab6-9ecf5b2adede/4-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0b65afa0-15a9-494b-aab6-9ecf5b2adede/4-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0b65afa0-15a9-494b-aab6-9ecf5b2adede/4-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 4"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0b65afa0-15a9-494b-aab6-9ecf5b2adede/4-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<h3 id="saturation">Saturation</h3>

<p><strong>Saturation</strong> controls how saturated the color should be. <code>0%</code> is completely unsaturated, while <code>100%</code> is fully saturated.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a318a69f-beac-4eee-950a-45809577a787/5-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="265"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a318a69f-beac-4eee-950a-45809577a787/5-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a318a69f-beac-4eee-950a-45809577a787/5-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a318a69f-beac-4eee-950a-45809577a787/5-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a318a69f-beac-4eee-950a-45809577a787/5-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a318a69f-beac-4eee-950a-45809577a787/5-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a318a69f-beac-4eee-950a-45809577a787/5-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 5"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a318a69f-beac-4eee-950a-45809577a787/5-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<h3 id="lightness">Lightness</h3>

<p>As for <strong>lightness</strong>, it controls how light or dark the color is. <code>0%</code> is is black, and <code>100%</code> is white.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ec6dcc48-6d9a-40f6-920e-4cf8db57eec8/6-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="265"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ec6dcc48-6d9a-40f6-920e-4cf8db57eec8/6-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ec6dcc48-6d9a-40f6-920e-4cf8db57eec8/6-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ec6dcc48-6d9a-40f6-920e-4cf8db57eec8/6-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ec6dcc48-6d9a-40f6-920e-4cf8db57eec8/6-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ec6dcc48-6d9a-40f6-920e-4cf8db57eec8/6-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ec6dcc48-6d9a-40f6-920e-4cf8db57eec8/6-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 6"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ec6dcc48-6d9a-40f6-920e-4cf8db57eec8/6-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Consider the following figure:</p>














<figure class="
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0227ec0a-78eb-4f0a-b1d0-8b87c0711e19/7-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="440"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0227ec0a-78eb-4f0a-b1d0-8b87c0711e19/7-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0227ec0a-78eb-4f0a-b1d0-8b87c0711e19/7-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0227ec0a-78eb-4f0a-b1d0-8b87c0711e19/7-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0227ec0a-78eb-4f0a-b1d0-8b87c0711e19/7-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0227ec0a-78eb-4f0a-b1d0-8b87c0711e19/7-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0227ec0a-78eb-4f0a-b1d0-8b87c0711e19/7-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 7"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0227ec0a-78eb-4f0a-b1d0-8b87c0711e19/7-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<p>With that, we have three values that are representing color, angle, saturation, and brightness. Here is how we can use the color in CSS:</p>

<pre><code class="language-css">.element {
    background-color: hsl(196, 73%, 62%);
}
</code></pre>

<p>By modifying the color <strong>angle</strong>, we can get colors that are similar in saturation and lightness to the base one. This is very useful when working on new brand colors as it can create a consistent set of secondary brand colors.</p>

<p>Consider the following figure:</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/26543b08-b7d6-435d-ac6e-a8a92fc56f61/8-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="413"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/26543b08-b7d6-435d-ac6e-a8a92fc56f61/8-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/26543b08-b7d6-435d-ac6e-a8a92fc56f61/8-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/26543b08-b7d6-435d-ac6e-a8a92fc56f61/8-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/26543b08-b7d6-435d-ac6e-a8a92fc56f61/8-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/26543b08-b7d6-435d-ac6e-a8a92fc56f61/8-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/26543b08-b7d6-435d-ac6e-a8a92fc56f61/8-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 8"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/26543b08-b7d6-435d-ac6e-a8a92fc56f61/8-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Do you feel that the three colors are related to each other in terms of how the color is saturated, and how it’s dark or light it is? That has been achieved by only changing the color angle. This is what great about HSL colors. It’s more human-friendly to read and edit than any other color type.</p>

<h2 id="use-cases-for-hsl-colors">Use Cases For HSL Colors</h2>

<h4 id="changing-colors-on-hover">Changing Colors On Hover</h4>

<p>When a color in a specific component needs to appear darker on hover, HSL colors can be perfect for this. It can be helpful for components like buttons and cards.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d9413f42-9ed9-4d8b-baec-3c50d73be073/9-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="434"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d9413f42-9ed9-4d8b-baec-3c50d73be073/9-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d9413f42-9ed9-4d8b-baec-3c50d73be073/9-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d9413f42-9ed9-4d8b-baec-3c50d73be073/9-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d9413f42-9ed9-4d8b-baec-3c50d73be073/9-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d9413f42-9ed9-4d8b-baec-3c50d73be073/9-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d9413f42-9ed9-4d8b-baec-3c50d73be073/9-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 9"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d9413f42-9ed9-4d8b-baec-3c50d73be073/9-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<div class="break-out">

 <pre><code class="language-css">:root {
  --primary-h: 221;
  --primary-s: 72%;
  --primary-l: 62%;
}

.button {
  background-color: hsl(var(--primary-h), var(--primary-s), var(--primary-l));
}

.button:hover {
  --primary-l: 54%;
}
</code></pre>

</div>

<p>Notice how I combined CSS variables with HSL colors. On hover, I only need to alter the lightness value. Remember, the higher the value, the lighter. For a darker shade, we need to reduce the value.</p>

<div class="partners__lead-place"></div>

<h4 id="a-combination-of-tinted-colors">A Combination Of Tinted Colors</h4>

<p>HSL can be handy when we have a design that uses the same color but with different shades. Consider the following design:</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/43eafd84-5139-4830-a5de-9821753578f7/10-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="370"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/43eafd84-5139-4830-a5de-9821753578f7/10-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/43eafd84-5139-4830-a5de-9821753578f7/10-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/43eafd84-5139-4830-a5de-9821753578f7/10-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/43eafd84-5139-4830-a5de-9821753578f7/10-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/43eafd84-5139-4830-a5de-9821753578f7/10-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/43eafd84-5139-4830-a5de-9821753578f7/10-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 10"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/43eafd84-5139-4830-a5de-9821753578f7/10-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<p>The main header navigation has the primary color, while the secondary navigation has a lighter shade. With HSL, we can get the lighter shade easily by altering <strong>the lightness</strong> value.</p>

<p>This can be extremely useful while having a UI with multiple themes. I created two themes and switching from one to another only requires me to edit the hue degree.</p>

<p>First theme:</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/98bde5c3-ccc2-4f5c-bf6c-8f2fb25c9c73/11-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="415"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/98bde5c3-ccc2-4f5c-bf6c-8f2fb25c9c73/11-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/98bde5c3-ccc2-4f5c-bf6c-8f2fb25c9c73/11-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/98bde5c3-ccc2-4f5c-bf6c-8f2fb25c9c73/11-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/98bde5c3-ccc2-4f5c-bf6c-8f2fb25c9c73/11-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/98bde5c3-ccc2-4f5c-bf6c-8f2fb25c9c73/11-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/98bde5c3-ccc2-4f5c-bf6c-8f2fb25c9c73/11-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 11"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/98bde5c3-ccc2-4f5c-bf6c-8f2fb25c9c73/11-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Second theme:</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94168ed9-c6ae-4068-a7d9-76511ac659ae/12-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="414"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94168ed9-c6ae-4068-a7d9-76511ac659ae/12-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94168ed9-c6ae-4068-a7d9-76511ac659ae/12-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94168ed9-c6ae-4068-a7d9-76511ac659ae/12-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94168ed9-c6ae-4068-a7d9-76511ac659ae/12-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94168ed9-c6ae-4068-a7d9-76511ac659ae/12-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94168ed9-c6ae-4068-a7d9-76511ac659ae/12-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 12"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94168ed9-c6ae-4068-a7d9-76511ac659ae/12-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<h4 id="color-palettes">Color Palettes</h4>

<p>By altering the lightness, we can create a set of shades for a color that can be used throughout the UI where possible.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64d4a97f-17a0-48c8-9688-cd26aa3ba555/13-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="255"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64d4a97f-17a0-48c8-9688-cd26aa3ba555/13-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64d4a97f-17a0-48c8-9688-cd26aa3ba555/13-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64d4a97f-17a0-48c8-9688-cd26aa3ba555/13-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64d4a97f-17a0-48c8-9688-cd26aa3ba555/13-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64d4a97f-17a0-48c8-9688-cd26aa3ba555/13-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64d4a97f-17a0-48c8-9688-cd26aa3ba555/13-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 13"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/64d4a97f-17a0-48c8-9688-cd26aa3ba555/13-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<p>This is useful for design systems where designers provide developers with the shades for each color of the brand.</p>

<p>Here is an interactive demo that shows that. The input slider only changes the hue value, and the rest of the shades change based on that.</p>

<figure class="break-out">
	<p data-height="480"
	data-theme-id="light"
	data-slug-hash="gOWawpX"
	data-user="smashingmag"
	data-default-tab="result"
	class="codepen">See the Pen [Testing HSL Colors (22 Jun 2021)](https://codepen.io/smashingmag/pen/gOWawpX) by <a href="https://codepen.io/shadeed">Ahmad Shadeed </a>.</p>
	<figcaption>See the Pen <a href="https://codepen.io/smashingmag/pen/gOWawpX">Testing HSL Colors (22 Jun 2021)</a> by <a href="https://codepen.io/shadeed">Ahmad Shadeed </a>.</figcaption>
</figure>

<h4 id="custom-white-color">Custom White Color</h4>

<p>Oftentimes, we need to color a text with white color to make the text stand out. This white color is boring, and we can replace it with a very light shade of the color we have.</p>

<p>Consider the following example:</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/05b6fe9a-9894-47da-a66b-b42c59377e1b/14-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="340"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/05b6fe9a-9894-47da-a66b-b42c59377e1b/14-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/05b6fe9a-9894-47da-a66b-b42c59377e1b/14-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/05b6fe9a-9894-47da-a66b-b42c59377e1b/14-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/05b6fe9a-9894-47da-a66b-b42c59377e1b/14-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/05b6fe9a-9894-47da-a66b-b42c59377e1b/14-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/05b6fe9a-9894-47da-a66b-b42c59377e1b/14-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 14"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/05b6fe9a-9894-47da-a66b-b42c59377e1b/14-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<p>Notice how the white on the right is too much. We can replace this with a custom white that is derived from a very light shade of the color we have. In my opinion, it’s much better.</p>

<h4 id="variations-of-a-button">Variations Of A Button</h4>

<p>Another useful use case for HSL colors is when we have primary and secondary options that are from the same color but with different shades. In this example, the secondary button has a very light tint of the main color. HSL colors are perfect for that.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7ef5df9f-c2ed-4630-a1aa-3f2e28926b77/15-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="269"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7ef5df9f-c2ed-4630-a1aa-3f2e28926b77/15-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7ef5df9f-c2ed-4630-a1aa-3f2e28926b77/15-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7ef5df9f-c2ed-4630-a1aa-3f2e28926b77/15-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7ef5df9f-c2ed-4630-a1aa-3f2e28926b77/15-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7ef5df9f-c2ed-4630-a1aa-3f2e28926b77/15-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7ef5df9f-c2ed-4630-a1aa-3f2e28926b77/15-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 15"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7ef5df9f-c2ed-4630-a1aa-3f2e28926b77/15-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<div class="break-out">

 <pre><code class="language-css">:root {
  --primary-h: 221;
  --primary-s: 72%;
  --primary-l: 62%;
}

.button {
  background-color: hsl(var(--primary-h), var(--primary-s), var(--primary-l));
}

.button--secondary {
    --primary-l: 90%;
    color: #222;
}

.button--ghost {
    --primary-l: 90%;
    background-color: transparent;
    border: 3px solid hsl(var(--primary-h), var(--primary-s), var(--primary-l)); 
}
</code></pre>

</div>

<p>Tweaking the primary button variations where fast and can be extended more for broader usage. Changing the <code>hue</code> value will change all the buttons’ themes.</p>

<h4 id="dynamic-washed-out-effects">Dynamic Washed-Out Effects</h4>

<p>In some cases, we might need a gradient to have a very light shade of the other color stop. With HSL, we can use the same color but with a different lightness value for the second one.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d29ca549-5749-4383-aa02-68b95b878f55/16-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="338"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d29ca549-5749-4383-aa02-68b95b878f55/16-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d29ca549-5749-4383-aa02-68b95b878f55/16-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d29ca549-5749-4383-aa02-68b95b878f55/16-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d29ca549-5749-4383-aa02-68b95b878f55/16-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d29ca549-5749-4383-aa02-68b95b878f55/16-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d29ca549-5749-4383-aa02-68b95b878f55/16-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 16"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d29ca549-5749-4383-aa02-68b95b878f55/16-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<div class="break-out">

 <pre><code class="language-css">.section {
  background: linear-gradient(to left, hsl(var(--primary-h), var(--primary-s), var(--primary-l)), hsl(var(--primary-h), var(--primary-s), 95%));
}

.section-2 {
  --primary-h: 167;
}
</code></pre>

</div>

<p>The gradient starts from the right with a solid color and then fades out to the lighter shade. This can be used for a decorative hero section, for example.</p>














<figure class="
  
    break-out article__image
  
  
  ">
  
    <a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b0cd8e2-617b-4f82-8d69-84c76fc8be71/17-hsl-colors-css.jpg">
    
    <img
      loading="lazy"
      decoding="async"
      fetchpriority="low"
			width="800"
			height="305"
			
			srcset="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b0cd8e2-617b-4f82-8d69-84c76fc8be71/17-hsl-colors-css.jpg 400w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_800/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b0cd8e2-617b-4f82-8d69-84c76fc8be71/17-hsl-colors-css.jpg 800w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1200/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b0cd8e2-617b-4f82-8d69-84c76fc8be71/17-hsl-colors-css.jpg 1200w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_1600/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b0cd8e2-617b-4f82-8d69-84c76fc8be71/17-hsl-colors-css.jpg 1600w,
			        https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_2000/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b0cd8e2-617b-4f82-8d69-84c76fc8be71/17-hsl-colors-css.jpg 2000w"
			src="https://res.cloudinary.com/indysigner/image/fetch/f_auto,q_80/w_400/https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b0cd8e2-617b-4f82-8d69-84c76fc8be71/17-hsl-colors-css.jpg"
			
			sizes="100vw"
			alt="Figure 17"
		/>
    
    </a>
  

  
    <figcaption class="op-vertical-bottom">
      (<a href='https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b0cd8e2-617b-4f82-8d69-84c76fc8be71/17-hsl-colors-css.jpg'>Large preview</a>)
    </figcaption>
  
</figure>

<p>That’s all with the use cases. I hope that you learned something new and useful.</p>

<h2 id="conclusion">Conclusion</h2>

<p>HSL colors are very powerful when we use them the right way. They can save us time and effort and even help us to explore options for how to apply color to design.</p>

<div class="partners__lead-place"></div>

<h3 id="further-reading">Further Reading</h3>

<ul>
<li><a href="https://www.smashingmagazine.com/2024/09/sticky-headers-full-height-elements-tricky-combination/">Sticky Headers And Full-Height Elements: A Tricky Combination</a></li>
<li><a href="https://www.smashingmagazine.com/2017/01/underestimated-power-color-mobile-app-design/">The Underestimated Power Of Color In Mobile App Design</a></li>
<li><a href="https://www.smashingmagazine.com/2024/09/timeless-power-of-spreadsheets/">The Timeless Power Of Spreadsheets</a></li>
<li><a href="https://www.smashingmagazine.com/2024/08/history-future-regular-expressions-javascript/">Regexes Got Good: The History And Future Of Regular Expressions In JavaScript</a></li>
</ul>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(vf, il, mrn)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Tom Graham &amp; André Gonçalves</author><title>Stop Designing For Only 85% Of Users: Nailing Accessibility In Design</title><link>https://www.smashingmagazine.com/2017/10/nailing-accessibility-design/</link><pubDate>Mon, 23 Oct 2017 20:35:34 +0000</pubDate><guid>https://www.smashingmagazine.com/2017/10/nailing-accessibility-design/</guid><description>The visual interface is an obvious place to begin digging into accessibility. In this article, Tom Graham &amp;amp; André Gonçalves will discuss some of the most common visual impairments, focusing on color-blindness to explain how you can make small changes to your workflow and products to ensure you’re not alienating users.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2017/10/nailing-accessibility-design/" />
              <title>Stop Designing For Only 85% Of Users: Nailing Accessibility In Design</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>Stop Designing For Only 85% Of Users: Nailing Accessibility In Design</h1>
                  
                    
                    <address>Tom Graham &amp; André Gonçalves</address>
                  
                  <time datetime="2017-10-23T20:35:34&#43;00:00" class="op-published">2017-10-23T20:35:34+00:00</time>
                  <time datetime="2017-10-23T20:35:34&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>The <a href="https://www.who.int/mediacentre/factsheets/fs282/en/">World Health Organization (WHO) identifies 4%</a> of the global population as being visually impaired, 4% as having low vision and 0.6% as being blind. That’s a total of <strong>over half a billion people who cannot use your product</strong> if it isn’t appropriately accessible. We’ve reached something of a watershed moment for accessibility in 2017. This is thanks, in part, to litigation — over 240 US businesses have been sued over website accessibility since 2015 (<em>Wall Street Journal</em>, <a href="https://www.wsj.com/articles/companies-face-lawsuits-over-website-accessibility-for-blind-users-1478005201">paywall</a>) — while diversity and inclusion, broadly, have become a priority in many of the biggest organizations. Your company wants to make sure it is serving the widest possible audience. <strong>As a designer, you care about users</strong> — call it empathy in design or call it being a human.</p></p>

<p>The visual interface is an obvious place to begin digging into accessibility. In this article, we’ll discuss some of the most common visual impairments, focusing on color-blindness to explain how you can make small changes to your workflow and products to ensure you’re not alienating users.</p>

<div class="c-felix-the-cat">
<h4 class="h3">Improving Color Accessibility</h4>
<p>Designing for color-blind people can be easily forgotten because most designers aren’t color-blind. There are a number of principles that you can use to make your design easy to use for everyone, including people who are color-blind. <a href="https://www.smashingmagazine.com/2016/06/improving-color-accessibility-for-color-blind-users/" class="btn btn--medium btn--blue">Read a related article →</a></p>
</div>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="https://www.smashingconf.com/online-workshops/">Smashing Workshops</a></strong> on <strong>front-end, design &amp; UX</strong>, with practical takeaways, live sessions, <strong>video recordings</strong> and a friendly Q&amp;A. With Brad Frost, Stéph Walter and <a href="https://smashingconf.com/online-workshops/workshops">so many others</a>.</p>
<a data-instant href="smashing-workshops" class="btn btn--green btn--large" style="">Jump to the workshops&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="smashing-workshops" class="feature-panel-image-link">
<div class="feature-panel-image">
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="/images/smashing-cat/cat-scubadiving-panel.svg"
    alt="Feature Panel"
    width="257"
    height="355"
/>

</div>
</a>
</div>
</aside>
</div>

<h2 id="accessibility-affects-all-users">Accessibility Affects All Users</h2>

<p>It isn’t just the 8.6% of the population with visual impairments who benefit from accessibility. Good design is good design. Many websites and apps are overly complicated, and everyone finds at least some interfaces difficult to use: when we’re tired, when we’re awkwardly trying to check something while walking down a street, when we’re squinting at a screen in the dark, or when we’ve got a shopping basket in one hand and our phone in the other.</p>

<p>Even the bulk of the population with standard eyesight experience color in different ways. So, accessibility isn’t just about those suffering from impaired vision; <strong>everyone has their own constraints</strong>, physical and mental, and we can help significantly simply by being more thoughtful when we work. While designing for accessibility will sometimes mean making an accommodation, keeping best practices and accessibility in mind as you work will often mean you create a product that nails both.</p></p>

<h2 id="how-do-visual-impairments-change-the-experience">How Do Visual Impairments Change The Experience?</h2>

<p>To create a properly accessible product, we first need to understand how someone with a visual impairment sees things.</p>

<p><a href="https://www.who.int/mediacentre/factsheets/fs282/en/">According to the WHO</a>, refractive errors (<a href="https://www.aoa.org/patients-and-public/eye-and-vision-problems/glossary-of-eye-and-vision-conditions/myopia?sso=y">nearsightedness</a>, <a href="https://www.aoa.org/patients-and-public/eye-and-vision-problems/glossary-of-eye-and-vision-conditions/hyperopia?sso=y">farsightedness</a>, <a href="https://www.aoa.org/patients-and-public/eye-and-vision-problems/glossary-of-eye-and-vision-conditions/astigmatism?sso=y">astigmatism</a> and <a href="https://www.aoa.org/patients-and-public/eye-and-vision-problems/glossary-of-eye-and-vision-conditions/presbyopia?sso=y">presbyopia</a>) account for 43% of visual impairments, <a href="https://www.aoa.org/patients-and-public/eye-and-vision-problems/glossary-of-eye-and-vision-conditions/cataract/cataract-faqs?sso=y">cataracts</a> for 33% and <a href="https://www.aoa.org/patients-and-public/eye-and-vision-problems/glossary-of-eye-and-vision-conditions/glaucoma?sso=y">glaucoma</a> for 2%. Color-blindness alone affects approximately 4.5% of the population and can vastly impact the way a user experiences design.</p>

<p>Let’s look at a simulation of how this manifests:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/92fba16b-73a2-44a2-b678-09b6ffbb483a/fueled-smashing-1-preview-opt.gif"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/92fba16b-73a2-44a2-b678-09b6ffbb483a/fueled-smashing-1-preview-opt.gif" width="638" height="1136" alt="Red-green contrast in an app offers poor accessibility." /></a><figcaption>A red-green UI translates poorly under certain color-blindness conditions.
</figcaption></figure>

<p>There are three main types of color-blindness:</p>

<ul>
<li><strong>Monochromacy (total color-blindness)</strong><br />
While uncommon, people with this condition cannot see color at all. So, for example, bright or pastel interfaces with subtle gradients that rely on hues to differentiate features will be very difficult for the user to navigate. Action buttons might be hard to find.</li>
<li><strong>Dichromacy (two-color vision)</strong><br />
For people with dichromacy, what is intended to be a broad color palette might appear to be made up of different shades of the same hue. If the app uses colors to denote different labels or channels, the user won’t necessarily be able to benefit from that design feature.</li>
<li><strong>Anomalous trichromacy (deficient color vision)</strong><br />
With deficient color vision, one of the three cones in the eye malfunction to varying degrees of severity. This ranges from near-normal color vision to two-color vision in severe cases. Users with anomalous trichromacy might find your logo or design to be less compelling if color is a major factor — especially problematic if you’re relying on the same fonts and icons for your buttons.</li>
</ul>

<p>The key point is that you cannot assume users will all see the same thing. So, how do we use design to optimize the experience for everyone?</p>

<h2 id="color-as-a-tool-but-not-a-magic-key">Color As A Tool But Not A Magic Key</h2>

<p>Color not only plays a large role in determining how an interface looks, but also helps in systematizing content, defining hierarchy and informing interface behaviors and flows. It’s a powerful design tool, but to use it efficiently, <strong>you need to understand its capabilities and limitations</strong>. Some key rules that we’ll discuss below are:</p>

<ul>
<li>keeping color-blindness in mind when picking and implementing color palettes, as we will demonstrate below;</li>
<li>never relying on color alone for anything important — clarify color information with icons and, ideally, text;</li>
<li>ensuring text links stand out from the surrounding content.</li>
</ul>

<p>Because the most common difficulty that visually impaired users have is identifying particular hues of color, try to rely more on brightness contrast to differentiate elements and to make them legible.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d1c4d3aa-07dc-42d2-8ab7-9cb88a35b16a/fueled-smashing-2-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a76f1b98-3161-4d52-9aab-239a7b7489f0/fueled-smashing-2-800w-opt.png" width="800" height="460" alt="" /></a><figcaption>A dark color and light color will provide high contrast for users. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d1c4d3aa-07dc-42d2-8ab7-9cb88a35b16a/fueled-smashing-2-preview-opt.png">View large version</a>)
</figcaption></figure>

<p>The color wheel below gives you an easy guide to finding high-contrast colors. A dark color from the hues in the lower half set against a light color from the upper half will provide strong contrast. Avoid relying on the contrast between light colors from the bottom half and dark colors from the top half.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b7cfc483-7e89-4c24-8d86-4f4073eb5026/fueled-smashing-3-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f529b26c-9d35-4d97-bdf2-06358897dd39/fueled-smashing-3-800w-opt.png" width="800" height="460" alt="A color wheel showing different color combinations." /></a><figcaption>A bright and a dark color will provide strong contrast, while two dull colors will blend. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b7cfc483-7e89-4c24-8d86-4f4073eb5026/fueled-smashing-3-preview-opt.png">View large version</a>)
</figcaption></figure>

<p>Avoid contrasting hues from adjoining parts of the circle if those colors do not contrast in lightness.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/42b8f813-c31b-4a05-9658-08707d3f5eae/fueled-smashing-4-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9a408f06-6c19-4153-b930-8ddbd12d95e4/fueled-smashing-4-800w-opt.png" width="800" height="460" alt="A color wheel showing different color combinations." /></a><figcaption>Complementary colors will be highly effective, whereas adjacent colors in the color wheel will contrast less. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/42b8f813-c31b-4a05-9658-08707d3f5eae/fueled-smashing-4-preview-opt.png">View large version</a>)
</figcaption></figure>

<p>Don’t rely on color alone to convey a message. Nike’s search bar is an example of how a lack of descriptions of the colors could be misleading. Adding color names to the swatches would remove the need to repeatedly hover to confirm you have selected the right model.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/58e4a980-3eef-4687-b3db-d8fd565a7a4b/fueled-smashing-5-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9b15b4b0-0264-4b2d-b742-2961d4405256/fueled-smashing-5-800w-opt.png" width="800" height="416" alt="Product pages for Nike sneakers featuring color swatches." /></a><figcaption>Color swatches can be confusing for customers shopping online. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/58e4a980-3eef-4687-b3db-d8fd565a7a4b/fueled-smashing-5-preview-opt.png">View large version</a>)
</figcaption></figure>

<p>Amazon does a better job of this by adding the color’s name on top of each thumbnail when the user hovers over it.</p>

<p>Avoid using color as the only indication of what to do or of the information you are trying to get across. Instead, use color only as a hint to the user.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c70c29d4-7cd2-4e98-bf00-202ddac5328b/fueled-smashing-6-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c70c29d4-7cd2-4e98-bf00-202ddac5328b/fueled-smashing-6-preview-opt.png" width="800" height="" alt="A product page for a pink shoe." /></a><figcaption>(<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c70c29d4-7cd2-4e98-bf00-202ddac5328b/fueled-smashing-6-preview-opt.png">View large version</a>)
</figcaption></figure>

<p>The broader the color palette you design, the greater the opportunity to confuse hues, so limit your color palette. The 15-color palette below provides good discrimination for common color-blindness types. Individuals with tritanopia cannot distinguish between hue pairings marked with the bullet (●) as well as pairings marked with the triangle (◥) in the graphic below.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e21f81cb-a68b-4c3a-908a-15c23d3ac92b/fueled-smashing-7-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e21f81cb-a68b-4c3a-908a-15c23d3ac92b/fueled-smashing-7-preview-opt.png" width="600" height="529" alt="A 15-color palette showing shades that are often confused." /></a><figcaption>Certain colors are indistinguishable to people with color-blindness.
</figcaption></figure>

<p>Use texture and patterns to emphasize contrast. For example, it might be difficult for color-blind users to interpret graphs and charts. In this case, use contrasting patterns and, where possible, embed text instead. (Of course, the question of whether to code the bars in different colors will depend on the data series you are showing.)</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bef3209c-231c-4459-bc1b-edddef3152e1/fueled-smashing-8-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/062c1120-2808-46c5-82f4-8051fe016254/fueled-smashing-8-800w-opt.png" width="800" height="460" alt="The bar chart on the right has texture as well as color." /></a><figcaption>Textures can better differentiate colors. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bef3209c-231c-4459-bc1b-edddef3152e1/fueled-smashing-8-preview-opt.png">View large version</a>)
</figcaption></figure>

<p>When creating buttons that call the user&rsquo;s attention and require their direct interaction, avoid using color combos that are easily confused by color-blind users (red and green, or blue and yellow).<p></p>

<p>Also, make sure that these elements contain clear and visible text or iconography that makes the goal clear.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6f7badef-19fe-4027-81e4-46edeafbcd74/fueled-smashing-9-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/13eb88ee-7713-43fa-a7b7-5cfc4c740218/fueled-smashing-9-800w-opt.png" width="800" height="108" alt="A red-green signup screen is not as effective as a single green signup button." /></a><figcaption>Action buttons in particular should not mislead users through confusing color combinations. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6f7badef-19fe-4027-81e4-46edeafbcd74/fueled-smashing-9-preview-opt.png">View large version</a>)
</figcaption></figure>

<h2 id="creating-accessible-ui-design">Creating Accessible UI Design</h2>

<p>Stripping color out of your design can also be a good test of its functionality. If it’s completely reliant on color, there are likely bigger issues with the logic. For example, minimal interfaces can be very poor for accessibility if stripped of visual features, but stark minimal design can be very clear when using shapes, color and contrast to draw attention to key elements.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b9f9e4f3-dcbd-4890-ad8d-3696d5704684/fueled-smashing-10-preview-opt.gif"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b9f9e4f3-dcbd-4890-ad8d-3696d5704684/fueled-smashing-10-preview-opt.gif" width="672" height="739" alt="A design of a user interface shows bold button callouts." /></a><figcaption>Stripping an interface of its color attributes can reveal design flaws.
</figcaption></figure>

<p>Use subtle drop shadows to create contrast while keeping true to a brand’s colors and identity.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d6f83df5-bb33-45ee-99fe-f54d1ba73006/fueled-smashing-11-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cb151ba6-6649-452c-bf1a-413714c72964/fueled-smashing-11-800w-opt.png" width="800" height="458" alt="Three panes showing a reset-password screen." /></a><figcaption>Drop shadows offer an alternative that is in keeping with brand colors. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d6f83df5-bb33-45ee-99fe-f54d1ba73006/fueled-smashing-11-preview-opt.png">View large version</a>)
</figcaption></figure>

<p>Divert effort from developing fancy, impractical UIs into decorating functional UIs — adding things like hover (for non-touch devices), tap, active and error states, as well as icons to accompany color and text — some of which can be done by using more standard components or conventional design patterns.</p></p>

<p>As an example of an impractical UI, the interface below becomes a cloud of text bubbles when viewed in monochrome.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f8acc549-80de-40e6-bde4-cc9cb39abd06/fueled-smashing-12-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f8acc549-80de-40e6-bde4-cc9cb39abd06/fueled-smashing-12-preview-opt.png" width="800" height="247" alt="Two views of a calendar app, one with color and one in greyscale." /></a><figcaption>Beware a heavy reliance on red text to act as a callout. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f8acc549-80de-40e6-bde4-cc9cb39abd06/fueled-smashing-12-preview-opt.png">View large version</a>)
</figcaption></figure>

<p>For website content, the W3C’s <a href="https://www.w3.org/TR/WCAG20/">Web Content Accessibility Guidelines 2.0</a> (WCAG 2.0) detail a number of recommendations for making the web more accessible. Level A is the minimum requirement, Level AA asks for audio and video captions, and Level AAA is the rating indicating the highest level of accessibility.</p></p>

<p>Many components are simple: using <code>alt</code> text for images, or retaining form information after an authenticated session has expired. One of the most important but basic recommendations made by the WCAG 2.0 has to do with contrast, especially concerning the contrast ratio between text and its background.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/32da9305-cbda-4d03-8cf6-a5d455135e29/fueled-smashing-13-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/32da9305-cbda-4d03-8cf6-a5d455135e29/fueled-smashing-13-preview-opt.png" width="802" height="539" alt="The WCAG 2.0 guidelines offer recommendations on font size and contrast ratios." /></a><figcaption>High ratios between boldness and a font’s x-height help the user, as recommended for Level AAA of web accessibility.
</figcaption></figure>

<h2 id="but-dribbble-won-t-like-it">“But Dribbble Won’t Like It!”</h2>

<p>As designers, we want to make the most creative solutions possible, right?</p>

<p>Well, of course, catering for accessibility does add some constraints to your designs, but you already design within a framework of many constraints, all of which are key parts of a functional product. This is just one of those constraints.</p>

<p>Accessibility isn’t just about people with visual impairments; <strong>everyone benefits from accessible content</strong>. Design imagines a better world and has an underpinning of function, whether or not the designer has loftier aesthetic goals. Designing for accessibility not only is largely straightforward, but it’s important for you, your bosses, your clients and your users. With the fundamentals of accessibility on hand, along with our list of best practices, you should be able to keep even your Dribbble shots widely accessible.</p>

<h2 id="helpful-tools-for-designers">Helpful Tools For Designers</h2>

<p>Understanding how others see your designs is key to providing the best experience for everyone. Luckily, there are some easy ways to stay on top of the WCAG 2.0 guidelines to ensure your designs are accessible.</p>

<h3 id="sketch">Sketch</h3>

<p><a href="https://www.getstark.co">Stark</a> is an excellent Sketch plugin that provides a windowed simulation of the various types of color-blindness. It also provides contrast ratios between two selected layers.</p>

<p>Use Sketch’s built-in and nested symbols system to create a sticker sheet of your UI elements, to make it easy to check all variants and states <em>in situ</em>; it can be easy to forget about certain scenarios.</p>

<div class="partners__lead-place"></div>

<h3 id="photoshop">Photoshop</h3>

<p>Photoshop has built-in color-blindness-checking utilities via the color profiles feature.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bec266c2-6936-4b9e-881a-63fd2a2dfc7c/fueled-smashing-14-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bec266c2-6936-4b9e-881a-63fd2a2dfc7c/fueled-smashing-14-preview-opt.png" width="623" height="1001" alt="Photoshop proof setup for simulating color-blindness." /></a><figcaption>Use Photoshop’s proof settings to simulate color-blindness.
</figcaption></figure>

<h3 id="web">Web</h3>

<ul>
<li><a href="https://contrast-finder.tanaguru.com/result.html?foreground=%23AE0000&background=%23212121&ratio=4.5&isBackgroundTested=false&algo=Rgb&distanceSort=asc">Tanaguru</a><br>
Give this contrast-finder tool a color pairing, and it will calculate the contrast ratio to generate similar colors that would improve accessibility.</li>

<li><a href="https://www.toptal.com/designers/colorfilter">Colorblind Web Page Filter</a><br>
This tool will simulate different types of color-blindness on a web page.</li>

<li><a href="https://uxpro.cc/toolbox/nocoffee/">NoCoffee</a><br>
This “vision simulator” add-on identifies problems on a web page such as low acuity, low contrast and color reliance.</li>
</ul>

<h3 id="ios">iOS</h3>

<p>The <a href="https://itunes.apple.com/us/app/colorblindness-app/id882336196?mt=8">Colorblindness App</a> was developed by Felipe Elioenay and is one of our favorites. The user hovers their phone camera over everyday objects, and the app describes the color of that object on screen with a super-simple interface.</p>

<h3 id="miscellaneous">Miscellaneous</h3>

<p><a href="https://colororacle.org/">Color Oracle</a> is a useful macOS utility app that previews your current screen in the various types of color-blindness.</p>

<h2 id="hard-coding-an-accessible-experience-tips-for-developers">Hard-Coding An Accessible Experience: Tips For Developers</h2>

<p>Good design and a good user experience go a very long way toward making a website more accessible, but sometimes we need to go a step further and consider development.</p>

<h3 id="semantic-html">Semantic HTML</h3>

<p>Assistive technology such as screen-reader software is sometimes necessary to write semantic, standards-compliant HTML in order to improve accessibility.</p>

<p>HTML5 elements are semantic HTML; they provide meaning to the structure of the page. A blind person using a screen reader needs to be able to skip through to different sections of the page, rather than reading the whole page from start to finish. Using heading levels appropriately (<code>h1</code> through <code>h6</code>) makes this a lot easier. The user can listen to all of the section headings and then <strong>decide which part of the page they are interested in</strong>.</p>

<p>Keeping the content and presentation layers separated is also incredibly important. HTML is for content and structure, and CSS is for presentation and layout.</p>

<h3 id="images">Images</h3>

<p>For a user with a visual impairment, images will need <code>alt</code> tags that explain what the image shows, as well as captions and labels to fill in missing context. When you're inputting this information, describe the function of the graphics. “Go to Portfolio” is more useful than “Photo of a briefcase.”</p>

<h3 id="video-and-audio">Video And Audio</h3>

<p>Using HTML5 <code>video</code> and <code>audio</code> tags lets the browser know what content is there and, by default, uses the system’s playback UI, which is likely already both familiar and accessible to the user.</p>

<h3 id="forms">Forms</h3>

<p>Forms can cause problems for people using screen readers if you don’t ensure they can access all of the information they need to fill out the form.<p>

<p>Those using a screen reader need to know what is supposed to be entered in each field, because they’re unable to see the label next to the field. There’s already a solution to this one: the <code>label</code> element, which associates label text with a form field.</p>

<p>New in HTML5 is the ability to specify the data type of an input field. By marking expected data types, the browser will provide the best input type for that data type (for example, a number pad for a numeric figure, or a date-picker for a date).</p>

<h3 id="ios-and-android">iOS And Android</h3>

<p>Apple has long been supportive of accessibility, with features like Display Zoom, but over the past few years it’s taken it up a notch by orchestrating iOS features such as Dynamic Type, Auto-Layout, and UIStackView, which come together to form the foundation for a highly responsive UI &mdash; and all developers can easily take advantage.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/84e60fe5-fd1e-4610-9221-fd8dba25a7e4/fueled-smashing-15-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0f3831f4-b72c-434d-8cd5-c75ed196573e/fueled-smashing-15-800w-opt.png" width="800" height="467" alt="Two views of a calendar app, one with Dynamic Type enabled." /></a><figcaption>Apple introduced Dynamic Type at the latest Worldwide Developer Conference. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/84e60fe5-fd1e-4610-9221-fd8dba25a7e4/fueled-smashing-15-preview-opt.png">View large version</a>)
</figcaption></figure>

<p>At the 2017 Worldwide Developer Conference, Apple urged third-party developers to support Dynamic Type if they weren’t already, having added support for custom fonts to adhere to the user’s Dynamic Type size preference in iOS 11.</p></p>

<p>Android has its own responsive layout and dynamic type solution. You can specify measurements in <code>dp</code> (density-independent pixel) and <code>sp</code> (scaleable pixels) for type to automatically adjust based on the user’s settings.</p>

<h2 id="design-best-practices-and-accessibility-toolkit">Design Best Practices And Accessibility Toolkit</h2>

<ul>
<li>Color contrast is a powerful design tool and a pillar of AAA design.</li>

<li>Don’t just rely on colors and icons. Text labels ensure users know what they’re choosing.</li>

<li>Filled icons are clearer than thin-line icons (Apple agrees). If you must, then thick strokes are easier to detect than thin strokes.</li>

<li>Contrasting patterns give a sense of texture and help users to differentiate between elements.</li>

<li>Provide enough white space around click and tap targets for users to locate and hit them.</li>

<li>Recognizable icon silhouettes outperform circles with symbols inside.</li>

<li>Precise language, such as verbs on button tiles, let the user know they can “continue,” rather than presenting them with a suite of “yes” and “no” options.</li>

<li>Fonts with small x-heights are easier to read (Brandon Grotesque is a good one), but otherwise avoid decorative fonts (sorry, Lobster).</li>

<li>Ensure text links stand out by using a clear callout, such as an underline.</li>

<li>Make sure your JavaScript and CSS techniques don’t block highlighting, which many users do to increase contrast.</li>

<li>Familiarity and consistency gives users a head start. Know when to use established design patterns, common interactions and native components.</li>

<li>Icons and buttons need to be tappable, but they don’t have to be obnoxiously large. Add a low-contrast container or white space around them to create visual balance and suitable tap targets.</li>

<li><a href="https://www.randoma11y.com">Random A11Y</a> is a crowd-sourced effort to generate high-contrast color palettes that aren’t ugly.</li>
</ul>

<h3 id="references">References</h3>

<ul>
<li>“<a href="https://en.wikipedia.org/wiki/Visual_impairment">Visual Impairment</a>,” Wikipedia</li>

<li>“<a href="https://en.wikipedia.org/wiki/Color_blindness">Color Blindness</a>,” Wikipedia</li>

<li>“<a href="https://www.colour-blindness.com/general/prevalence/">Prevalence</a>,” Colour Blindness</li>

<li>“<a href="https://designshack.net/articles/accessibility/tips-for-designing-for-colorblind-users/">Tips for Designing for Colorblind Users</a>,” Design Shack</li>

<li>“<a href="https://understandinggraphics.com/design/designing-for-color-blindness/">Designing for Color Blindness</a>,” Understanding Graphics</li>

<li>“<a href="https://uxplanet.org/accessible-interface-design-3c59ee3ec730">Accessible Interface Design</a>,” UX Planet</li>

<li>“<a href="https://webdesign.tutsplus.com/articles/designing-for-and-as-a-color-blind-person--webdesign-3408">Designing for and as a Color-Blind Person</a>,” Envato Tuts+</li>

<li>“<a href="https://www.smashingmagazine.com/2016/06/improving-ux-for-color-blind-users/">Improving UX for Color-Blind Users</a>,” Smashing Magazine</li>

<li><a href="https://wearecolorblind.com">We Are Colorblind</a></li>

<li>“<a href="https://www.templatemonster.com/blog/designing-colorblind-friendly-website/">Designing Colorblind-Friendly Websites</a>,” Template Monster</li>

<li>“<a href="https://medium.com/theuxblog/how-to-design-for-color-blindness-a6f083b08e12">How to Design for Color Blindness</a>,” Usabilla</li>

<li>“<a href="https://www.godaddy.com/garage/webpro/design/website-design-blind/">Website Design for Color Blind</a>,” Go Daddy</li>

<li>“<a href="https://usabilitygeek.com/10-free-screen-reader-blind-visually-impaired-users/">10 Free Screen Readers for Visually Impaired Users</a>,” Usability Geek</li>

<li>“<a href="https://mashable.com/archive/design-for-visually-impaired">Design for Visually Impaired</a>,” Mashable</li>

<li>“<a href="https://www.hobo-web.co.uk/design-website-for-blind/">Design Website for Blind Users</a>,” Hobo Web</li>

<li>“<a href="https://webdesign.tutsplus.com/articles/accessibility-basics-designing-for-visual-impairment--cms-27634">Accessibility Basics</a>,” Envato Tuts+</li>

<li>“<a href="https://econsultancy.com/blog/67625-making-your-html-accessible-for-the-visually-impaired/">Making Your HTML Accessible for the Visually Impaired</a>,” EConsultancy</li>

<li>“<a href="https://www.afb.org/consulting/afb-accessibility-resources/afbs-commitment-web-accessibility">Creating Accessible Websites</a>,” AFB</li>

<li>“<a href="https://www.colourblindawareness.org/colour-blindness/types-of-colour-blindness/">Types of Colour Blindness</a>,” Colour Blind Awareness</li>
</ul>

<div class="partners__lead-place"></div>

<h3 id="further-reading">Further Reading</h3>

<ul>
<li><a href="https://www.smashingmagazine.com/2021/11/guide-modern-css-colors/">A Guide To Modern CSS Colors With RGB, HSL, HWB, LAB And LCH</a></li>
<li><a href="https://www.smashingmagazine.com/2023/04/color-mechanics-ui-kits/">Color Mechanics In UI Kits</a></li>
<li><a href="https://www.smashingmagazine.com/2023/10/ux-research-learn-from-lt-columbo/">Everything I Know About UX Research I First Learned From Lt. Columbo</a></li>
<li><a href="https://www.smashingmagazine.com/2023/08/css-accessibility-inclusion-user-choice/">CSS And Accessibility: Inclusion Through User Choice</a></li>
</ul>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(da, vf, yk, al, il, mrn)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Marc Edwards</author><title>Taming Advanced Color Palettes In Photoshop, Sketch And Affinity Designer</title><link>https://www.smashingmagazine.com/2017/07/advanced-color-palettes-photoshop-sketch-affinity-designer/</link><pubDate>Mon, 17 Jul 2017 20:26:47 +0000</pubDate><guid>https://www.smashingmagazine.com/2017/07/advanced-color-palettes-photoshop-sketch-affinity-designer/</guid><description>Creating large, harmonious and uniform color palettes can be a challenge. Good intentions and confident plans can be abandoned when things get a little unwieldy. But you can equip yourself with some tools to manage the complexity. With the right techniques, large color palettes can be created, refined and refactored at will. Large color palettes can be tamed.
Meet Smashing Workshops on front-end, design &amp;amp; UX, with practical takeaways, live sessions, video recordings and a friendly Q&amp;amp;A.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2017/07/advanced-color-palettes-photoshop-sketch-affinity-designer/" />
              <title>Taming Advanced Color Palettes In Photoshop, Sketch And Affinity Designer</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>Taming Advanced Color Palettes In Photoshop, Sketch And Affinity Designer</h1>
                  
                    
                    <address>Marc Edwards</address>
                  
                  <time datetime="2017-07-17T20:26:47&#43;00:00" class="op-published">2017-07-17T20:26:47+00:00</time>
                  <time datetime="2017-07-17T20:26:47&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>Creating large, harmonious and uniform color palettes can be a challenge. Good intentions and confident plans can be abandoned when things get a little unwieldy.
But you can equip yourself with some tools to manage the complexity. With the right techniques, large color palettes can be created, refined and refactored at will. Large color palettes can be tamed.</p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="https://www.smashingconf.com/online-workshops/">Smashing Workshops</a></strong> on <strong>front-end, design &amp; UX</strong>, with practical takeaways, live sessions, <strong>video recordings</strong> and a friendly Q&amp;A. With Brad Frost, Stéph Walter and <a href="https://smashingconf.com/online-workshops/workshops">so many others</a>.</p>
<a data-instant href="smashing-workshops" class="btn btn--green btn--large" style="">Jump to the workshops&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="smashing-workshops" class="feature-panel-image-link">
<div class="feature-panel-image">
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="/images/smashing-cat/cat-scubadiving-panel.svg"
    alt="Feature Panel"
    width="257"
    height="355"
/>

</div>
</a>
</div>
</aside>
</div>

<h2 id="creating-color-palettes-using-adjustment-layers">Creating Color Palettes Using Adjustment Layers</h2>

<p>Quite a few techniques can be used to create large color palettes from a few base colors. Automatically generating color variations helps to keep colors uniform and easy to manage, while providing a large menu of possibilities.</p>

<p>One of the simplest ways to do this is by stacking partially transparent objects on top of base color swatches, altering portions of the swatch to create the variations. <a href="https://www.smashingmagazine.com/2013/04/repurposing-photoshop/">Photoshop</a> and Affinity Designer’s adjustment layers can also be used for this purpose, and they offer more control. Adjustment layers modify the color of layers below, which means base colors can be edited, and additional variations are created automatically.</p>

<p>In a recent project, I used 14 base colors with 4 variations on each to create a palette of 56 resulting colors.</p>

<figure><img title="Theme colors used for iStat Menus" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d3068a56-4b4c-48b3-ad60-15c0aac2a640/istatmenus-themes-800w-opt.png" width="800" /></figure>

<p>Instructions for Photoshop, <a href="https://www.smashingmagazine.com/sketch-handbook/">Sketch</a> and Affinity Designer are included below, but other tools can be used. It is also worth noting that design tools have different capabilities and use different rendering engines, and the results generated can vary slightly.</p>

<h3 id="base-colors">Base Colors</h3>

<p>To get started, choose some base colors by drawing large blocks of solid color next to each other. The colors don’t need to be final — rough approximations will do. Place them in a horizontal row.</p>

<figure><img title="Photoshop with base colors" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a0ca62f4-4f35-459f-bf70-5fbcefdf66d6/photoshop-1-800w-opt.png" alt="Photoshop with base colors" width="800" /><figcaption>Photoshop with base colors</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b77f08ff-c8f8-4238-af27-5b4750a746dd/sketch-1-800w-opt.png" alt="Sketch with base colors" width="800" /><figcaption>Sketch with base colors</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/baead52b-c991-44f0-a152-f48aa5be89eb/affinity-designer-1-800w-opt.png" alt="Affinity Designer with base colors" width="800" /><figcaption>Affinity Designer with base colors</figcaption></figure>

<p>With the base colors in place, it is now possible to create an adjustment layer with a mask running horizontally across all of the colors (either a vector or bitmap mask will do). I’ve used two levels of adjustment layers here — one to lighten the top third of the blocks and another to darken the bottom third.</p>

<p>Sketch doesn’t have adjustment layers, but using white and black blocks with a layer opacity around 20% will do the trick.</p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/fea45de3-dd4b-4d0f-8a6e-a841de110f6b/photoshop-2-800w-opt.png" alt="Photoshop with adjustment layers" width="800" /><figcaption>Photoshop with adjustment layers</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/49e27140-5e88-4900-a814-efa2e7686bc9/sketch-2-800w-opt.png" alt="Sketch with white and black layers" width="800" /><figcaption>Sketch with white and black layers</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ffb531e1-ae8d-46cd-862c-fdd4b6a99280/affinity-designer-2-800w-opt.png" alt="Affinity Designer with adjustment layers" width="800" /><figcaption>Affinity Designer with adjustment layers</figcaption></figure>

<p>I’ve used levels adjustment layers as an example, but hue/saturation, vibrance, curves and other adjustment layer types can be just as effective, depending on your needs.</p>

<h3 id="blending-modes">Blending Modes</h3>

<p>The technique also works well with <a href="https://www.smashingmagazine.com/2016/05/web-image-effects-performance-showdown/#background-blend-mode">blending modes</a>. Here are some yellow blocks to split the base colors into vertical thirds. They’re both using the overlay blend mode, with 40% and 80% opacity, respectively.</p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5aa03498-08d9-4ce3-bae0-9aafa67f3028/photoshop-3-800w-opt.png" alt="Photoshop with blending modes" width="800" /><figcaption>Photoshop with blending modes</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6a2a1426-38f0-4006-9fad-504a2fbae0b7/sketch-3-800w-opt.png" alt="Sketch with blending modes " width="800" /><figcaption>Sketch with blending modes</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/25c32c09-bdcb-47c0-8011-ff4377f5fd1c/affinity-designer-3-800w-opt.png" alt="Affinity Designer with blending modes " width="800" /><figcaption>Affinity Designer with blending modes</figcaption></figure>

<p>The result is a nice shift, providing stronger and brighter colors that relate to the original colors.</p>

<h3 id="fine-tuning">Fine Tuning</h3>

<p>Because the adjustment layers and layers with blending modes alter the layers underneath, everything can be tweaked in real time. They’re dynamic. They can be edited now or at any point in the future, and all of the variations will be created automatically.</p>

<h2 id="creating-color-palettes-using-gradients">Creating Color Palettes Using Gradients</h2>

<p>Gradients can also be used to create sets of related colors. In their simplest form, linear gradients provide a smooth blend from one color to another. Given that we’re interested in a palette with a fixed number of colors, rather than a continuous gradation, that’s not quite what we’re after. It is possible to sample colors at various points along the gradient to build a palette, but that would require manual work, and we’re after an automated solution. Yes, it could probably be scripted in Photoshop, Affinity Designer, and Sketch, but other techniques are easier than scripting.
Posterizing a gradient <em>will</em> split it into a fixed number of steps (posterizing limits the number of colors used). Both Photoshop and Affinity Designer include the ability to posterize, via posterize adjustment layers. A posterize adjustment layer can be placed above the gradient to split it into steps of flat color.</p>

<p>To limit the scope of the posterize adjustment layer, the enclosing group’s blend mode should be set to “Normal,” rather than “Pass-Through” (both Photoshop and Affinity Designer can do this). Setting a group’s blend mode to normal means the contents of the group will be posterized, but everything outside the group will not — the group and its contents are composited to a single buffer, and blending is contained. This is a handy technique in situations where you’d like to stop the posterize adjustment layer or other adjustment layers from affecting other parts of the document.</p>

<p>A few gradients with carefully chosen colors can be used to construct a large and maintainable color palette, and the results can be combined with other adjustment layers (as previously discussed) to automate the creation even more.</p>

<p>However, posterizing a gradient might not produce the results you’re after, depending on the colors chosen. In the example below, the black and white gradient is split nicely into flat areas, but the color example doesn’t have nice even steps using values from the original gradient. Not at all what we want.</p>

<figure><img title="Posterized gradients in Photoshop" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4623b349-1dc5-42f0-ab32-c756fd53fb41/gradient-posterised-800w-opt.png" alt="Posterized gradients in Photoshop" width="800" /><figcaption>Posterized gradients in Photoshop</figcaption></figure>

<p>If you’re following along and are seeing fuzzy edges in your posterized gradients, they are due to gradient dithering. The fuzzy edges are an unfortunate side effect of a feature that normally increases the quality of gradients. Gradient dithering is a good thing, but a bit of a distraction in this particular scenario. If you’d like to disable gradient dithering in Affinity Designer, you can do so by unchecking “Dither gradients” under the “Performance” section in “Preferences” (it’s a global setting). Disabling gradient dithering isn’t essential, though.</p>

<p>Gradient dithering can be disabled per layer in Photoshop, from the gradient fill window or panel. In the example above, the Photoshop gradient also has smoothness set to 0%, which uses linear interpolation between color stops on the gradient — it means the blocks created by the posterization will be even sizes. Affinity Designer, Illustrator, Sketch and other tools use linear interpolation between color stops by default, and they have no options for other interpolations, so you only have to worry about this setting in Photoshop.</p>

<p>The color gradients currently don’t look very good and are not what we’re after. That’s OK, though — we’re not done yet. By introducing a second adjustment layer, a gradient map, it is possible to get evenly stepped, nicely blended colors, using the exact colors specified for the end points.</p>

<p>But first, a quick lesson (or refresher) on how gradient maps work.</p>

<h2 id="gradient-maps">Gradient Maps</h2>

<p>I love gradient maps. I <em>really</em> love gradient maps. You should, too, because they’re incredibly flexible, accurate and easy to work with. They’re also surprisingly unknown to most designers. Photoshop and Affinity Designer’s gradient map adjustment layers read the pixels below, mapping the grayscale intensity to a corresponding color along a gradient.</p>

<p>Imagine a grayscale photo. Being grayscale, it can only contain black pixels, white pixels or pixels that are shades of gray. Now, imagine that instead of being shades of gray from black to white, the lightest parts of the image are yellow and the darkest parts are red, with a smooth blend of oranges in between. That’s a gradient map.</p>

<figure><img title="A photo, a grayscale photo, and gradient map" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/132b6c7d-88ce-47e4-9097-e2d69ce93e52/gradient-map-800w-opt.png" alt="A photo, a grayscale photo, and gradient map" width="800" /><figcaption>A photo, a grayscale photo and gradient map</figcaption></figure>

<p>Gradient maps use brightness to assign corresponding colors taken from a gradient of your choice. In the example above, it was a gradient from yellow to red, but gradients can contain many points, too.</p>

<figure><img title="A gradient map in Photoshop" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6bd76636-cdc4-4092-8e39-0dc509138cf8/photoshop-gradient-map-800w-opt.png" alt="A gradient map in Photoshop" width="800" /><figcaption>A gradient map in Photoshop</figcaption></figure>

<p>The color and position of the points in the gradient map gradient can be used to control contrast and brightness, as well as color. Gradient maps have been around since Photoshop 4 (that’s version 4.0, released in 1996, not the slightly more recent CS4), so they’re far from new, but I feel like they’re one of the most powerful features in Photoshop for working with colors.</p>

<p>Gradient maps can be added via the adjustment layer icon in the “layers” panel in Photoshop and Affinity Designer.</p>

<h3 id="accurate-and-absolute">Accurate And Absolute</h3>

<p>Most adjustment layers in Photoshop and Affinity Designer are relative — make the image brighter or more blue or higher contrast or less saturated. Gradient maps deal in absolutes. You get to set the exact colors that are used. And being absolute, gradient maps can’t push colors outside the normal range (0 to 255 for 8-bit), so accidental clipping won’t occur.</p>

<p>Gradient maps also enable you to create effects that would take several other adjustment layers to achieve, lowering the chance of rounding errors, which typically manifest as gradient banding. They offer more control and more precision. Effects that would require more layers can be constructed with a single layer, which produces higher-quality results, with less chance of banding.</p>

<p>Being an adjustment layer, gradient maps can be applied to many things at once and can be contained within clipping groups, which is incredibly handy — it’s possible to build a complex composition of gradients and effects, then color them with a single gradient map adjustment layer. As a bonus, working this way also lets you easily replicate the same color treatment to different elements in your document or different documents.</p>

<p>If you’re an iOS or macOS developer, Core Image contains a filter named CIColorMap, which does the same thing, so you can use gradient maps in your apps, if you’d like.</p>

<p>There is no pre-made filter for Android. However, RenderScript, Vulkan or OpenGL could be used to achieve the same effect.</p>

<p>The same is true of the web — a single gradient map filter does not exist, but <a href="https://codepen.io/vkjgr/pen/GgpMRz">two SVG feColorMatrix filters can be combined</a>, and <a href="https://github.com/awgreenblatt/gradientmaps">other strategies</a> can be used to get identical or similar effects.</p>

<p>Given that what they do it quite simple, gradient maps are fairly performant, too. They are a per-pixel effect, and typically they do require a repaint when content underneath changes, but it’s not an expensive repaint.</p>

<div class="partners__lead-place"></div>

<h2 id="creating-color-palettes-using-gradient-maps">Creating Color Palettes Using Gradient Maps</h2>

<p>We now know that black and white gradients can be nicely posterized, but color gradients often can not. We also know that gradient maps can be used to map grayscale to colors referenced in a linear gradient. Combining the two methods means we can create a black and white gradient, posterize it, then convert the nicely stepped grayscale gradient to any colors we choose.</p>

<figure><img title="A gradient, a posterized gradient and a posterized gradient with a gradient map applied" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4ef633b5-a30a-4601-95b5-6a4cfad4307a/photoshop-posterise-gradient-map-800w-opt.png" alt="A gradient, a posterized gradient and a posterized gradient with a gradient map applied" width="800" /><figcaption>A gradient, a posterized gradient and a posterized gradient with a gradient map applied</figcaption></figure>

<p>The example below uses two colors we’ve chosen (one at each end of the gradient map’s gradient), and the additional four colors in between are automatically generated.</p>

<figure><img title="A posterized gradient with a gradient map applied in Photoshop" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8fa76383-c7d6-454f-a7c0-fdafd015613f/gradient-posterised-2-800w-opt.png" alt="A posterized gradient with a gradient map applied in Photoshop" width="800" /><figcaption>A posterized gradient with a gradient map applied in Photoshop</figcaption></figure>

<p>It is also possible to add some other adjustment or overlay layers on top, to create more variations. Adding another five overlay layers at varying opacities (as we’ve done in the past) gives us 36 colors in total. And those 36 colors aren’t static — editing the gradient ends will instantly provide the intermediate colors for our generated palette.</p>

<figure><img title="Overlay layers added to provide more variations" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7aa4f33d-8721-4c0e-a993-f8a77076b707/gradient-posterised-3-800w-opt.png" alt="Overlay layers added to provide more variations" width="800" /><figcaption>Overlay layers added to provide more variations</figcaption></figure>

<p>If you’re not happy with the gradient interpolation, a curves adjustment layer or other adjustment layers can be placed under the gradient map. This will alter the colors while they’re still grayscale, ensuring that only values present in the gradient map are used.</p>

<h2 id="color-blindness-testing">Color-Blindness Testing</h2>

<p>It’s a great idea to test your color palette for color-blindness compatibility, while everything is still easy to change. Photoshop has built-in color blindness preview modes that can be enabled via “View” → “Proof Setup.” The <a href="https://www.getstark.co">Stark plugin</a> adds color-blindness previewing to Sketch.</p>

<p>Affinity Designer does not include a way to view the canvas as someone with a color blindness would see it, but <a href="https://michelf.ca/projects/sim-daltonism/">Sim Daltonism</a> can be used to preview a portion of your screen, which means it can be used with any design tool.</p>

<p>It’s also a good idea to be aware of the <a href="https://www.smashingmagazine.com/2014/10/color-contrast-tips-and-tools-for-accessibility/">Color Contrast</a> when creating color palettes.</p>

<h2 id="replacing-colors-using-layer-tags">Replacing Colors Using Layer Tags</h2>

<p>Most design tools, including Photoshop and Sketch, have the ability to filter the layers list, letting you search for a layer by name. At the time of writing this article, Affinity Designer can’t filter its layer list, but hopefully the feature will be added soon.</p>

<p>One of my favorite uses of search is for tagging — applying something to layers for easy recall at a later date. Appending hashtags to layer names works well for this purpose — adding “#red” to a layer name is preferable to just “red,” because searching for the latter would match layer names that contain “red,” like “colored.” The hash symbol makes it less likely to get false positive matches, and it also makes it obvious which parts of the layer name you’re using for tagging.</p>

<p>If your color palette document needs to contain many duplicates of a base color, then layer tagging can help you update them all quickly. It’s just a matter of updating one of the layers, copying the style of that layer, searching for the tag, selecting the layers, then pasting the style. It’s not fully automated, but it’s quicker than updating the layers one by one.</p>

<h3 id="photoshop-layer-colors">Photoshop Layer Colors</h3>

<p>Photoshop also has the ability to set a color for each layer in the Layers panel. These colors only appear in the layers panel, and may only be one of the seven predefined variations, but this can still be helpful for organization and filtering. I often use red for deprecated or incorrect layers, and purple for labels (non-artwork layers).</p>

<p>Another favorite is searching by layer effect — really helpful if you’re hunting for all instances of a particular overlay or drop shadow. Or you could search for all disabled layers, to quickly clean up a messy document.</p>

<h2 id="replacing-colors-using-symbols-and-smart-objects">Replacing Colors Using Symbols And Smart Objects</h2>

<p>In Sketch and Affinity Designer, symbols replicate changes from one instance of an object or group to the other instances. In both Sketch and Affinity Designer, symbols can also be resized. For our specific use, this means symbols can be used as the base blocks of color in a color palette, even if the blocks need to be different sizes at different places in the document. Changes will always be in sync. It’s a good way to construct our color palettes, but probably not an ideal way to keep colors in sync in other design documents.</p>

<p>Photoshop doesn’t have symbols, but smart objects can be used in some situations to mimic the same capability.</p>

<h3 id="creating-a-symbol-in-sketch">Creating A Symbol In Sketch</h3>

<p>To create a symbol in Sketch, select the layer or group you’d like to convert into a symbol, and click “Create Symbol” in the toolbar at the top of the window. By default, Sketch’s symbols are added to a separate page, but they can live anywhere in your document. With the symbol created, you can now use “Insert” → “Symbol” to create an instance, anywhere in your document.</p>

<h3 id="creating-a-symbol-in-affinity-designer">Creating A Symbol In Affinity Designer</h3>

<p>To create a symbol in Affinity Designer, select the layer or group you’d like to convert into a symbol, and click “Create” in the “Symbols” panel. The Symbols panel can be opened via the “View” → “Studio” → “Symbols” menu command. To create more instances of the symbol, drag it to the new layer icon in the layers panel, or press <code>⌘ J</code>.</p>

<p>Affinity Designer’s global colors are another way to replicate color changes across an entire document. Global colors can be added and used via the swatches panel.</p>

<h3 id="creating-a-smart-object-in-photoshop">Creating A Smart Object In Photoshop</h3>

<p>To create a smart object in Photoshop, select the layer or group you’d like to convert into a smart object, and choose the “Layer” → “Smart Objects” → “Convert to Smart Object” menu command, or right-click the items in the layers panel and choose “Convert to Smart Object.” To create more instances of the smart object, drag it to the new layer icon in the layers panel, or press <code>⌘ J</code>.</p>

<h2 id="saving-and-transferring-color-palettes">Saving And Transferring Color Palettes</h2>

<p>Once you have a palette worked out, what’s the best way to use it in your designs? What’s the best way to share it with friends and colleagues?</p>

<p>My preferred solution is a simple one — save the palette as an image. Images can be placed alongside your artwork and sampled in almost every design tool. Images can adhere to color management needs. Images can be easily replaced to update the palette. Images can contain labels and other text that describes how the colors should be used. Popular image file formats should be able to be opened in the future, but some other format for storing colors might not be. Best of all, saving images from your favorite design tool is easy.</p>

<p>To share a color palette, create a document containing some large blocks of color, as in our previous examples. If you’d like, include labels and other information to assist those using the palette. Then, export an image using a lossless format, such as PNG. Ensure you use the “PNG-24” setting in Photoshop and Affinity Designer. Sketch’s PNG exports all use “PNG-24,” so no settings need to be changed or checked.</p>

<p>With your color palette image saved, you can drag it into other documents and sample the colors as needed.</p>

<h3 id="the-macos-color-picker-and-images">The macOS Color Picker And Images</h3>

<p>The built-in color picker in macOS can even sample colors from an image. To do so, switch to the image tab and drag a file to the big area in the middle to load it in.</p>

<figure><img title="The macOS color picker" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d0fcced6-3468-4991-bd1f-d6b450cc3413/macos-color-picker-800w-opt.png" alt="The macOS color picker" width="800" /><figcaption>The macOS color picker</figcaption></figure>

<p>You can now sample colors from the image by clicking. macOS’ color picker stores the images used, so you can load in a lot of swatches and switch between them at any time.</p>

<h3 id="other-swatch-formats">Other Swatch Formats</h3>

<p>A variety of swatch file formats can be used to transfer color palettes between teams and tools. Photoshop’s <code>.aco</code> can be used by Photoshop and many other tools.</p>

<p>Adobe Swatch Exchange files (<code>.ase</code>) can be read by Photoshop and Illustrator, as well as Affinity Designer. Affinity Designer’s own <code>.afpalette</code> swatches can be used to transfer palettes between designers using Affinity Designer.</p>

<p>For Sketch users, the <a href="https://github.com/andrewfiorillo/ase-to-sketchpalette">.ase to .sketchpalette</a> utility and the <a href="https://github.com/andrewfiorillo/sketch-palettes">Sketch Palettes</a> plugin can be used to import Adobe Swatch Exchange files and to share palettes between designers using Sketch.</p>

<p>Adobe’s “Library” panel also lets teams share color palettes, with the added advantage of the palettes being kept in sync via Creative Cloud.</p>

<h2 id="night-shift-f-lux-and-dynamic-display-warmth">Night Shift, f.lux And Dynamic Display Warmth</h2>

<p>When creating color palettes, be mindful of features and apps that could alter the appearance of colors. Features such as Night Shift and True Tone on iOS, and apps such f.lux on macOS and Windows, can subtly or drastically change the color temperature and color accuracy of a device’s display — what you see is different from the typical standard sRGB calibration used on the web and for most native apps.</p>

<p>According to f.lux’s developer, it “makes the color of your computer’s display adapt to the time of day, warm at night and like sunlight during the day.” Apple states that Night Shift “uses your iOS device’s clock and geolocation to determine when it’s sunset in your location, then it automatically shifts the colors in your display to the warmer end of the spectrum” and True Tone “uses advanced four-channel ambient light sensors to automatically adapt the color and intensity of the display to match the light in your environment”.</p>

<p>f.lux, Night Shift, and True Tone can alter display warmth and might do so in an unpredictable fashion, so it’s best to disable them and other similar features while picking colors.</p>

<p>In fact, even the seemingly innocuous “Automatically adjust brightness” in macOS’ System Preferences can alter how colors are displayed — macOS El Capitan and Sierra combined the existing ambient light compensation into the “Automatically adjust brightness” feature. It’s subtle but definitely another thing to watch out for, or disable altogether.</p>

<h2 id="other-resources">Other Resources</h2>

<p>While researching and writing this article, I created a set of documents for Photoshop, Sketch and Affinity Designer, demonstrating the techniques discussed. The templates are available for free as open source under the BSD license.</p>

<ul>
<li><a href="https://smashingmagazine.com/provide/Color-Creator-master.zip">Color Creator</a> (ZIP), templates</li>
<li>“<a href="https://github.com/bjango/Color-Creator">Color Creator Templates</a>,” GitHub</li>
<li><a href="https://smashingmagazine.com/provide/Smashing-Mag-Colors.zip">PSD file</a> (ZIP) of the Color Palette with Blending Modes</li>
<li><a href="https://smashingmagazine.com/provide/Smashing-Mag-ColorsSketch.zip">Sketch document</a> (ZIP) of the Color Palette with Blending Modes</li>
</ul>

<figure><img title="Sketch Color Creator template in use" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5c5d2280-683d-4f90-9e2b-2405b984fd1f/sketch-color-creator.gif" alt="Sketch Color Creator template in use" /><figcaption>Sketch Color Creator template in use</figcaption></figure>

<p>There are an almost infinite number of approaches that can be taken to create color palettes, but hopefully this article has given you some useful tips and techniques. Do you have other techniques you use to create large color palettes? Please let us know in the comment section below.</p>

<div class="partners__lead-place"></div>

<h3 id="further-reading">Further Reading</h3>

<ul>
<li><a href="https://www.smashingmagazine.com/2024/01/css-border-image-property/">The Complex But Awesome CSS border-image Property</a></li>
<li><a href="https://www.smashingmagazine.com/2024/01/top-frontend-tools-2023/">Top Front-End Tools Of 2023</a></li>
<li><a href="https://www.smashingmagazine.com/2019/05/mid-century-modern-illustration-cover-book-illustrator-indesign/">Mid-Century Modern Illustration: Creating A Cover Book With Illustrator And InDesign</a></li>
<li><a href="https://www.smashingmagazine.com/2023/04/color-mechanics-ui-kits/">Color Mechanics In UI Kits</a></li>
</ul>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(vf, al, il, mrn)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Nick Babich</author><title>The Underestimated Power Of Color In Mobile App Design</title><link>https://www.smashingmagazine.com/2017/01/underestimated-power-color-mobile-app-design/</link><pubDate>Wed, 25 Jan 2017 23:01:56 +0000</pubDate><guid>https://www.smashingmagazine.com/2017/01/underestimated-power-color-mobile-app-design/</guid><description>The human to computer interaction is heavily based on interacting with graphical UI elements, and color plays a critical role in this interaction. When designing a new app, it’s often difficult to decide on a color scheme that works well, as there are an infinite number of possible color combinations out there. In this article, Nick Babich will go over the most important points related to color in apps. He’ll cover traditional color scheme patterns, custom color combinations that aren’t based strictly on any one pattern, and he’ll also learn how to choose colors and contrasts for your app that support usability. If you’d like to hone your own color usage skills, you can download and test Adobe XD for free, and get started right away.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2017/01/underestimated-power-color-mobile-app-design/" />
              <title>The Underestimated Power Of Color In Mobile App Design</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>The Underestimated Power Of Color In Mobile App Design</h1>
                  
                    
                    <address>Nick Babich</address>
                  
                  <time datetime="2017-01-25T23:01:56&#43;00:00" class="op-published">2017-01-25T23:01:56+00:00</time>
                  <time datetime="2017-01-25T23:01:56&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>Color is arguably the second most important aspect of your app, after functionality. The human to computer interaction is heavily based on interacting with graphical UI elements, and color plays a critical role in this interaction. It helps users see and interpret your app&rsquo;s content, interact with the correct elements, and understand actions. Every app has a color scheme, and it uses the primary colors for its main areas.</p>

<p>When designing a new app, it&rsquo;s often difficult to decide on a color scheme that works well, as there are an infinite number of possible color combinations out there. In this article, we&rsquo;ll go over the most important points related to color in apps. We&rsquo;ll cover traditional color scheme patterns (monochrome, analogous, complementary), custom color combinations that aren&rsquo;t based strictly on any one pattern, and we&rsquo;ll also learn how to choose colors and contrasts for your app that support usability. If you&rsquo;d like to hone your own color usage skills, you can download and test <a href="https://helpx.adobe.com/xd/get-started.html">Adobe XD</a> <strong>for free</strong>, and get started right away.</p></p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="https://www.smashingconf.com/online-workshops/">Smashing Workshops</a></strong> on <strong>front-end, design &amp; UX</strong>, with practical takeaways, live sessions, <strong>video recordings</strong> and a friendly Q&amp;A. With Brad Frost, Stéph Walter and <a href="https://smashingconf.com/online-workshops/workshops">so many others</a>.</p>
<a data-instant href="smashing-workshops" class="btn btn--green btn--large" style="">Jump to the workshops&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="smashing-workshops" class="feature-panel-image-link">
<div class="feature-panel-image">
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="/images/smashing-cat/cat-scubadiving-panel.svg"
    alt="Feature Panel"
    width="257"
    height="355"
/>

</div>
</a>
</div>
</aside>
</div>

<h2 id="how-to-select-an-effective-color-scheme">How To Select An Effective Color Scheme</h2>

<p>When creating a color scheme there are many factors to consider, including brand colors and color associations for your region.</p>

<h3 id="how-many-colors"><strong>How Many Colors?</strong></h3>

<p>Keeping your color combinations simple will help you improve the <a href="https://www.smashingmagazine.com/2010/10/what-is-user-experience-design-overview-tools-and-resources/">user experience</a>. A simple color scheme isn&rsquo;t overwhelming to the eye and makes your content easier to understand. Conversely, having too many colors in too many places is an easy way to mess up a design.</p>

<p>A <a href="https://www.dgp.toronto.edu/~donovan/color/colorcomp.pdf">University of Toronto study</a> on how people used <a href="https://color.adobe.com/create/color-wheel/">Adobe Color CC</a> revealed that most people <em>preferred</em> simple color combinations that relied on only two to three colors.</p></p>

<h3 id="how-to-create-a-scheme"><strong>How To Create A Scheme</strong></h3>

<p>So, how do you choose those two or three colors? The color wheel can help.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/df9b5610-8d06-4823-a37f-adedf8218538/1-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4e573ddb-03ef-427c-a74c-ae318b232adb/1-preview-opt.png" /></a><figcaption>The twelve-spoke color wheel is an important tool in creating color schemes. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/df9b5610-8d06-4823-a37f-adedf8218538/1-large-opt.png">Large preview</a>)</figcaption></figure>

<p>There are a number of predefined color scheme standards that make creating new schemes easier, especially for beginners.</p></p>

<h3 id="monochromatic"><strong>Monochromatic</strong></h3>

<p>Monochromatic schemes are the simplest color schemes to create, as each color is taken from the same base color. Monochromatic colors go well together, producing a soothing effect.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/23aae260-599f-44fb-87cc-5587c2bae13d/2-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b5ce3296-0109-40bb-b0b5-ecfcc5ed8ee7/2-preview-opt-1.png" /></a><figcaption>Monochromatic colors are a single color, and its tints, shades, and tones. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/23aae260-599f-44fb-87cc-5587c2bae13d/2-large-opt.png">Large preview</a>)</figcaption></figure>

<p>The monochromatic scheme is very easy on the eyes, especially with blue or green hues.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a001cdad-85cc-4233-aea5-4f9fce0c04af/3-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2877c7dc-212c-49fe-98ff-04913aba225a/3-preview-opt.png" /></a><figcaption>Image credit: <a href="https://color.adobe.com/">Adobe Color CC</a>. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a001cdad-85cc-4233-aea5-4f9fce0c04af/3-large-opt.png">Large preview</a>)</figcaption></figure>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c89ac9e2-6881-4de2-be97-d613268fff2e/4-preview-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c89ac9e2-6881-4de2-be97-d613268fff2e/4-preview-opt.jpg" /></a><figcaption>Image credit: <a href="https://twitter.com/louis_saville">Louis Saville</a></figcaption></figure>

<p>As you can see, the scheme looks clean and elegant.</p></p>

<h3 id="analogous"><strong>Analogous</strong></h3>

<p>Analogous color schemes are created from related colors that don&rsquo;t stand out from one another; one color is used as a dominant color while others are used to enrich the scheme.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f10699b4-c926-4d8d-8990-3455e44caa85/5-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c266ea86-ecf8-41c3-981c-bc89075abd02/5-preview-opt-1.png" /></a><figcaption>Analogous schemes are created by using three colors that are next to each other on the 12-spoke color wheel. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f10699b4-c926-4d8d-8990-3455e44caa85/5-large-opt.png">Large preview</a>)</figcaption></figure>

<p>While this scheme is relatively easy to pull off, the trick is in deciding which vibrancy of color to use, as it will be exaggerated. For example, Clear, a <a href="https://www.theverge.com/2012/2/15/2799318/clear-for-ios-hands-on-video">gesture-driven</a> to-do app, uses the analogous colors to visually prioritize current set of tasks.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c75b6ce9-86a0-468e-96db-d065b675eebf/6-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6d6c7ab6-eb55-4cec-8392-286422319b38/6-preview-opt-1.png" /></a><figcaption>Image credit: <a href="https://color.adobe.com/">Adobe Color CC</a>. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c75b6ce9-86a0-468e-96db-d065b675eebf/6-large-opt.png">Large preview</a>)</figcaption></figure>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3c854187-4f6c-48f6-a825-71057c52e656/7-preview-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3c854187-4f6c-48f6-a825-71057c52e656/7-preview-opt.jpg" /></a><figcaption>The default color scheme in Clear is reminiscent of a heat map, where the hotter items are displayed in bright red.</figcaption></figure>

<p>While <a href="https://www.calm.com/">Calm</a>, a meditation app, uses the analogous colors blue and green to help users feel relaxed and peaceful.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2096fae-3f2f-4945-b6ad-b81af9d70ddf/8-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/94782bee-45c6-40c8-b559-23045e35fd52/8-preview-opt.png" /></a><figcaption>Image credit: <a href="https://color.adobe.com/">Adobe Color CC</a>. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2096fae-3f2f-4945-b6ad-b81af9d70ddf/8-large-opt.png">Large preview</a>)</figcaption></figure>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/32c49b24-7786-410e-a52c-9b8c1474fc2b/9-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/32c49b24-7786-410e-a52c-9b8c1474fc2b/9-preview-opt.png" /></a><figcaption><a href="https://www.calm.com/">Calm </a>uses analogous colors to establish an overall mood.</figcaption></figure>

<h3 id="complementary"><strong>Complementary</strong></h3>

<p>Colors aren&rsquo;t always at odds with each other; complementary colors are opposite colors.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a037aa6e-4302-4e09-a6b5-5727e861f3a7/10-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/671ce859-7ff5-4056-956b-7d5f2e1c2279/10-preview-opt.png" /></a><figcaption>Complementary colors are opposite of each other on the color wheel. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a037aa6e-4302-4e09-a6b5-5727e861f3a7/10-large-opt.png">Large preview</a>)</figcaption></figure>

<p>They contrast strongly, and they can be used to attract the viewer&rsquo;s attention. When using a complementary scheme, it is important to choose a dominant color and use its complementary color for accents. For example, when the human eye sees an object full of different hues of greens, a <em>bit</em> of red is going to stand out very well.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d619f73c-8cdf-4cb7-8165-40a0f59059ca/11-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d619f73c-8cdf-4cb7-8165-40a0f59059ca/11-preview-opt.png" /></a><figcaption>Using complementary colors is the easiest way to make something to stand out.</figcaption></figure>

<p>However, you have to use complementary colors carefully to keep your content from being visually jarring.</p></p>

<div class="partners__lead-place"></div>

<h3 id="custom-color-scheme"><strong>Custom Color Scheme</strong></h3>

<p>Creating your own color schemes is not as complicated as many people think. Adding a bright accent color into an otherwise neutral palette is one of the easiest color schemes to create, and it&rsquo;s also one of the most visually striking.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ec584a05-0858-4035-a1e7-6b0bba7978ba/12-large-opt-1.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cfb38ea4-bf07-4026-9df8-7b60a8b101df/12-preview-opt-1.png" /></a><figcaption>Adding one color to a grayscale design draws the eye simply and effectively. Image credit: <a href="https://color.adobe.com/">Adobe Color CC</a>. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ec584a05-0858-4035-a1e7-6b0bba7978ba/12-large-opt-1.png">Large preview</a>)</figcaption></figure>

<p>White canvases and cool gray copy, splashed with accents of blue, make up the Dropbox color scheme.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e4f9b725-32e4-4598-9fe3-17f18cbb5bbb/13-large-opt-1.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f119eff3-f968-4c95-8135-14bbd5a8261b/13-preview-opt-1.png" /></a><figcaption>Image credit: <a href="https://blogs.dropbox.com/">Dropbox</a> (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e4f9b725-32e4-4598-9fe3-17f18cbb5bbb/13-large-opt-1.png">Large preview</a>)</figcaption></figure>

<h3 id="adobe-color-cc-makes-your-life-easier">Adobe Color CC Makes Your Life Easier</h3>

<p>Adobe <a href="https://color.adobe.com/">Color CC</a>, previously known as Kuler, makes color selection extremely easy. Every color on the palette can be individually modified or chosen as the base color with a few simple clicks.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/310eb2d1-013f-4876-82dd-105ab3aa07b7/14-large-opt-1.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/fb485e4e-724b-4d12-bbe7-31db8779fd93/14-preview-opt-1.png" /></a><figcaption>Under each color, the export codes are provided (including hexadecimal). (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/310eb2d1-013f-4876-82dd-105ab3aa07b7/14-large-opt-1.png">Large preview</a>)</figcaption></figure>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/30cefed5-700b-47a1-8d17-106507863dc0/15-preview-opt-1.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/30cefed5-700b-47a1-8d17-106507863dc0/15-preview-opt-1.png" /></a></figure>

<p>Palettes can be saved and added directly to a library. In addition, there are a number of great color schemes created by the community available on the site.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2a186dbe-955d-4259-ace7-93454bfa8b0c/16-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2c9750fc-7d2b-4537-a167-40b494253f2d/16-preview-opt-1.png" /></a><figcaption><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2a186dbe-955d-4259-ace7-93454bfa8b0c/16-large-opt.png">Large preview</a></figcaption></figure>

<p>Check it out, so you don&rsquo;t need to start from scratch.</p></p>

<h2 id="the-impact-of-color-contrast">The Impact Of Color Contrast</h2>

<p>Typically, a colored object or area on a UI is not displayed in isolation, but is adjacent to or superimposed on another colored object or area. This creates contrast effects. Contrast is how one color stands apart from another. Properly used, it reduces eyestrain and focuses user attention by clearly dividing elements on a screen.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b79f2773-51c7-4a4e-b169-e3164fa48ff2/17-large-opt-1.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cf2cfb2c-1e54-4063-b715-867386433ea3/17-preview-opt-1.png" /></a><figcaption>High contrast is when colors easily stand apart from each other. Low contrast is when they don't. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b79f2773-51c7-4a4e-b169-e3164fa48ff2/17-large-opt-1.png">Large preview</a>)</figcaption></figure>

<h3 id="contrast-and-text-readability"><strong>Contrast And Text Readability</strong></h3>

<p>Color contrast is one area where color theory is crucial to the usability of a design. Designers often like to use low contrast techniques because low contrast makes things look beautiful and harmonious. However, beautiful isn&rsquo;t always the best for readability. When you&rsquo;re using colors in text, be aware that placing two colors with low-value contrast next to each other can make your copy very difficult to read. This is especially true on mobile screens, where users are often on devices outdoors or in bright places that cause screen glare.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f9d28a9f-2a20-4de6-9f43-f1b503b31b29/18-preview-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f9d28a9f-2a20-4de6-9f43-f1b503b31b29/18-preview-opt.jpg" /></a><figcaption>These lines of text are difficult to read against their background colors.</figcaption></figure>

<p>Make sure you have a fair amount of contrast between elements. It&rsquo;s really not that hard — all you need to do is to check the <em>contrast ratio</em>. Contrast ratios represent how different a color is from another color (commonly written as 1:1 or 21:1). The higher the difference between the two numbers in the ratio, the greater the difference in relative luminance between the colors. The <a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html">W3C</a> <a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html">recommends</a> the following contrast ratios for body text and image text:</p>

<ul>
<li>Small text should have a contrast ratio of at least 4.5:1 against its background.</li>
<li>Large text (at 14 pt bold/18 pt regular and up) should have a contrast ratio of at least 3:1 against its background.</li>
</ul>

<p>This guideline also helps users with low vision, color blindness, or worsening vision see and read the text on your screen.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ece232db-d234-4ef8-aa71-627ee56e989e/19-preview-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ece232db-d234-4ef8-aa71-627ee56e989e/19-preview-opt.jpg" /></a><figcaption>These lines of text follow the color contrast ratio recommendations and are legible against their background colors.</figcaption></figure>

<p>Icons or other critical elements should also use the above-recommended contrast ratios.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/abb5b8a2-9f42-4383-8a2d-fba3894f383b/20-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/86a0f85c-9b30-4c26-ba99-d3893e268d6f/20-preview-opt.png" /></a><figcaption>Left: Icons don't follow the color contrast ratio recommendations. Right: Icons follow the color contrast ratio recommendations and are legible against their backgrounds. Image credit: <a href="https://material.google.com/">Material Design</a>. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/abb5b8a2-9f42-4383-8a2d-fba3894f383b/20-large-opt.png">Large preview</a>)</figcaption></figure>

<p>There are several free tools available to give you meaningful feedback about the levels of contrast in your chosen palette. One of them is <a href="https://webaim.org/resources/contrastchecker/">WebAIM&rsquo;s Color Contrast Checker</a> which let you test colors you have already chosen.</p></p>

<h3 id="contrast-and-user-s-attention">Contrast And User&rsquo;s Attention</h3>

<p>Along with establishing readable text, contrast can also draw the user&rsquo;s attention towards specific elements on a screen. Generally, high-contrast is the best choice for important content or key elements. So, if you want users to see or click something, make it stand out! For example, users are much more likely to click a call-to-action button that strongly contrasts with its background.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5dfec1ae-9f78-4715-b8d9-981c0bfa50d4/21-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5dfec1ae-9f78-4715-b8d9-981c0bfa50d4/21-preview-opt.png" /></a><figcaption>Contrast makes the area look different than the rest of the screen.</figcaption></figure>

<h2 id="designing-for-color-blindness">Designing For Color Blindness</h2>

<p>Have you thought about your app appears to users who have visual impairments?</p>

<p>When people talk about <a href="https://en.wikipedia.org/wiki/Color_blindness#Dichromacy">color blindness</a>, they usually refer to the inability of perceiving certain colors. Approximately 8% of men and 0.5% of women are affected by some form of color blindness. Red and green colors are a common problematic combination.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7c20c125-0804-4902-ad1c-fa49a0303589/22-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6928444a-ed9b-4cbc-86f3-02956a3a34f7/22-preview-opt.png" /></a><figcaption>Colors, as seen with normal vision, and same colors, as seen with red-green color deficiency (Deuteranopia and Protanopia) (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7c20c125-0804-4902-ad1c-fa49a0303589/22-large-opt.png">Large preview</a>)</figcaption></figure>

<p>Since colorblindness takes different forms (including red-green, blue-yellow, and monochromatic), it&rsquo;s important to use multiple visual cues to communicate important states in your app. Never rely on a color solely to indicates system status. Instead, use elements such as strokes, indicators, patterns, texture, or text to describe actions and content.</p></p>

<figcaption>Avocode lets you visually compare revisions of designs.</figcaption>

<p>Also, <a href="https://www.adobe.com/products/photoshop.html">Photoshop</a> has really useful tools to help, and can simulate color blindness. This feature allows the designer to see what the app&rsquo;s screen will look like to people with different types of color blindness.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/263cdf4b-3f17-4cfb-862b-030b75bec75a/24-preview-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0234939a-4a1f-4cd6-a41c-9efb1bdefe0a/24-large-opt.png" /></a><figcaption>Airbnb app login screen Image credit: <a href="https://ru.pinterest.com/pin/396457573423276783/">Pinterest</a>. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/263cdf4b-3f17-4cfb-862b-030b75bec75a/24-preview-opt.png">Large preview</a>)</figcaption></figure>

<h2 id="conclusion">Conclusion</h2>

<p>We&rsquo;ve barely covered the fundamentals of how color theory can enhance your app UI design. Honing your color usage skills is an ongoing endeavor. If you want to learn how to create beautiful, functional color schemes, all it takes is practice, determination, and lots of user testing.</p></p>

<blockquote>"This article is part of the UX design series sponsored by Adobe. The newly introduced Experience Design app is made for a fast and fluid UX design process, creating interactive navigation prototypes, as well as testing and sharing them — all in one place.<br /><br />You can check out more inspiring projects created with Adobe XD on Behance, and also visit the Adobe XD blog to stay updated and informed. Adobe XD is being updated with new features frequently, and since it's in public Beta, you can download and test it for free."</blockquote>

<div class="partners__lead-place"></div>

<h3 id="further-reading">Further Reading</h3>

<ul>
<li><a href="https://www.smashingmagazine.com/2017/01/how-functional-animation-helps-improve-user-experience/">How Functional Animation Helps Improve User Experience</a></li>
<li><a href="https://www.smashingmagazine.com/2016/10/in-app-gestures-and-mobile-app-user-experience/">In-App Gestures And Mobile App User Experience</a></li>
<li><a href="https://www.smashingmagazine.com/2016/12/best-practices-for-animated-progress-indicators/">Best Practices For Animated Progress Indicators</a></li>
<li><a href="https://www.smashingmagazine.com/2016/08/experience-design-essentials-animated-microinteractions-in-mobile-apps/">Animated Microinteractions In Mobile Apps</a></li>
</ul>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(ms, aa, il, mrn)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Adam Silver</author><title>Improving The Color Accessibility For Color-Blind Users</title><link>https://www.smashingmagazine.com/2016/06/improving-color-accessibility-for-color-blind-users/</link><pubDate>Tue, 21 Jun 2016 20:59:19 +0000</pubDate><guid>https://www.smashingmagazine.com/2016/06/improving-color-accessibility-for-color-blind-users/</guid><description>Websites aren’t just meant to look good – they are meant to be easy to use for everyone, including people who are color-blind. There are many types of color blindness but it comes down to not seeing color clearly, getting colors mixed up, or not being able to differentiate between certain colors. In this article, Adam Silver will cover the majority of problems color-blind people experience when using websites, by providing 13 tips to improve their experience - something which can often benefit people with normal vision too.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2016/06/improving-color-accessibility-for-color-blind-users/" />
              <title>Improving The Color Accessibility For Color-Blind Users</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>Improving The Color Accessibility For Color-Blind Users</h1>
                  
                    
                    <address>Adam Silver</address>
                  
                  <time datetime="2016-06-21T20:59:19&#43;00:00" class="op-published">2016-06-21T20:59:19+00:00</time>
                  <time datetime="2016-06-21T20:59:19&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>According to Colour Blind Awareness <a href="https://www.colourblindawareness.org/colour-blindness/">4.5% of the population are color-blind</a>. If your audience is mostly male this increases to 8%. Designing for color-blind people can be easily forgotten because most designers <em>aren&rsquo;t</em> color-blind. In this article I provide 13 tips to improve the experience for color-blind people – something which can often benefit people with normal vision too.</p></p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="https://www.smashingconf.com/online-workshops/">Smashing Workshops</a></strong> on <strong>front-end, design &amp; UX</strong>, with practical takeaways, live sessions, <strong>video recordings</strong> and a friendly Q&amp;A. With Brad Frost, Stéph Walter and <a href="https://smashingconf.com/online-workshops/workshops">so many others</a>.</p>
<a data-instant href="smashing-workshops" class="btn btn--green btn--large" style="">Jump to the workshops&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="smashing-workshops" class="feature-panel-image-link">
<div class="feature-panel-image">
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="/images/smashing-cat/cat-scubadiving-panel.svg"
    alt="Feature Panel"
    width="257"
    height="355"
/>

</div>
</a>
</div>
</aside>
</div>

<h2 id="what-is-color-blindness">What Is Color Blindness?</h2>

<p>There are <a href="https://www.colourblindawareness.org/colour-blindness/types-of-colour-blindness/">many types</a> of color blindness but it comes down to not seeing color clearly, getting colors mixed up, or not being able to differentiate between certain colors.</p>

<p>These problems can also be exacerbated by the environments in which people use websites. This could include low-quality monitors, bad lighting, screen glare, tiny mobile screens and sitting far away from a huge television screen.</p>

<p>Relying <em>solely</em> on color for readability and affordance makes a website difficult to use, which ultimately affects readership and sales.</p>

<p>While the following tips aren&rsquo;t exhaustive, they do cover the majority of problems color-blind people experience when using websites.</p></p>

<h2 id="1-text-readability">1. Text Readability</h2>

<p>To ensure text is readable it should pass accessibility guidelines based on the combination of text color, background color and text size as follows:</p>

<blockquote>“WCAG 2.0 level AA requires a contrast ratio of 4.5:1 for normal text and 3:1 for large text (14 point and bold or larger, or 18 point or larger).”
<cite>— <a href="https://webaim.org/resources/contrastchecker/">WebAim color contrast checker</a></cite></blockquote>

<p>Here are a few examples of color and size combinations that do and do not pass:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/953497cc-9050-4e19-9097-c61d720d94ac/text-contrast-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9381379e-d394-49eb-82b2-bfb0cad5d726/text-contrast-preview-opt.png" alt="Contrast is based on color and size" /></a><figcaption>This illustrates how contrast is based on the combination of color and size. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/953497cc-9050-4e19-9097-c61d720d94ac/text-contrast-large-opt.png">View large version</a>)</figcaption></figure>

<h2 id="2-text-overlaid-on-background-images">2. Text Overlaid On Background Images</h2>

<p>Text overlaid on imagery is tricky because some or all of the image may not have sufficient contrast in relation to the text.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bff596ba-f297-4da6-82ce-56f7e2101415/text-overlay-bad-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4fe4b838-9280-4d04-86e1-218cd19d8a6f/text-overlay-bad-preview-opt.jpg" alt="Description of the image." /></a><figcaption>Text overlaid on an image without a mask. (Image credit: <a href="https://unsplash.com/photos/N_Y88TWmGwA">Jay Wennington</a>) (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bff596ba-f297-4da6-82ce-56f7e2101415/text-overlay-bad-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Reducing the background opacity increases the contrast, making the text easier to read.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6f5aff0d-2d00-4a57-9dbd-7a1c91a1fcaa/text-overlay-good-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72b5f770-2629-46d7-bee6-10eb337384d8/text-overlay-good-preview-opt.jpg" alt="Description of the image." /></a><figcaption>Text overlaid on an image with a mask. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6f5aff0d-2d00-4a57-9dbd-7a1c91a1fcaa/text-overlay-good-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Alternatively, you can style the text itself to have a solid color or a drop shadow, or anything else that matches your brand guidelines.</p></p>

<h2 id="3-color-filters-pickers-and-swatches">3. Color Filters, Pickers And Swatches</h2>

<p>The screenshot below shows the <a href="https://www.amazon.co.uk/s/ref=nb_sb_noss?url=search-alias%3Daps&amp;field-keywords=t+shirts">color filter on Amazon</a> as seen by someone with and without protanopia (red–green color blindness). Without descriptive text it is impossible to differentiate between many of the options available.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b5c96fe9-f002-4ac8-97a5-819303798fa7/amazon-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5aaebaac-2890-4ea4-87dc-dcbcaa59ec7d/amazon-preview-opt.jpg" alt="Amazon color picker" /></a><figcaption>Color filter without labels as seen by someone with protanopia is impossible to use. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b5c96fe9-f002-4ac8-97a5-819303798fa7/amazon-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Amazon shows descriptive text when the user hovers, but hover isn&rsquo;t available on mobile.</p></p>

<p><a href="https://www.gap.co.uk/">Gap</a> solves this problem by adding a text label beside each color as shown below:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c875bb39-83b4-4a77-ae33-519f49882075/gap-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1f435241-5f86-463f-b536-7f154823c417/gap-preview-opt.jpg" alt="Amazon color picker" /></a><figcaption>Color filter with labels as seen by someone with protanopia is easy to use. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c875bb39-83b4-4a77-ae33-519f49882075/gap-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>This happens to be beneficial for people with normal vision too. For example, black and navy are difficult colors to differentiate on screen. A text label takes the guesswork out of it.</p></p>

<h2 id="4-photographs-without-useful-descriptions">4. Photographs Without Useful Descriptions</h2>

<p>The screenshot below shows a <a href="https://www.superdry.com/mens/t-shirts/details/55971/pt-classics-vintage-logo-t-shirt">SuperDry T-shirt</a> for sale on its website. It is described as “Leaf Jaspe” which is ambiguous as leaves can come in an assortment of colors (green, yellow, brown. etc.).</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e74ed5c2-fb54-4200-bc4f-4a1a0cbb686d/superdry-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/43431209-d5c6-4547-b3b3-5a8fec5d46c5/superdry-preview-opt.jpg" alt="Description of the image." /></a><figcaption>It's hard for color-blind people to know what color this SuperDry T-shirt is. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e74ed5c2-fb54-4200-bc4f-4a1a0cbb686d/superdry-large-opt.jpg">View large version</a>)</figcaption></figure>

<p><em>Jaspe</em> (or rather “jaspé”) means randomly mottled or variegated, so using this in addition to the specific color would be useful: “Gray Green Leaf Jaspe.”</p>

<h2 id="5-link-recognition">5. Link Recognition</h2>

<p>Links should be easy to spot without relying on color. The screenshot below simulates the vision of somebody with achromatopsia (can&rsquo;t see color) viewing the <a href="https://gds.blog.gov.uk/">UK Government Digital Service (GDS) website</a>. Many of the links are hard to see. For example, did you notice that “GDS team, User research” (located under the heading) are links?</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/761e145a-554c-4175-b6dc-5bf47b5c541c/gds-screenshot-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2ac4862a-2858-463e-8949-9826e3803d91/gds-screenshot-preview-opt.jpg" alt="GDS" /></a><figcaption>GDS blog as seen by someone with achromatopsia. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/761e145a-554c-4175-b6dc-5bf47b5c541c/gds-screenshot-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>To find a link, users are left having to hover with their mouse waiting for the cursor to change to a pointer. On mobile, they are left to tap on text hoping it will make a page request.</p>

<p>The links above with icons are easier to see. For those without, it would be a good idea to add an underline, which is exactly what GDS does within the body of its articles:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b251c9e-7a7b-458a-85b1-d51dcbecec14/gds2-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/520f1a23-c387-4861-9e33-4a74174131eb/gds2-preview-opt.jpg" alt="GDS" /></a><figcaption>Underlined links are easy to see by someone with achromatopsia. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b251c9e-7a7b-458a-85b1-d51dcbecec14/gds2-large-opt.jpg">View large version</a>)</figcaption></figure>

<h2 id="6-color-combinations">6. Color Combinations</h2>

<p>In the physical world you can&rsquo;t always control which colors appear next to one another: a red apple may have dropped and nestled itself into some green grass. However, we <em>can</em> control the colors we use to design our website. The following color combinations should be avoided where possible:</p>

<ul>
<li>green/red</li>
<li>green/brown</li>
<li>blue/purple</li>
<li>green/blue</li>
<li>light green/yellow</li>
<li>blue/grey</li>
<li>green/grey</li>
<li>green/black</li>
</ul>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c52cb6d8-19a7-4f33-be5e-beba6ddc0c28/combinations-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cf3100b7-1a97-40b7-b4d6-c508fbbca75d/combinations-preview-opt.png" alt="Colour combinations as seen with Protanopia" /></a><figcaption>Colour combinations as seen with Protanopia. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c52cb6d8-19a7-4f33-be5e-beba6ddc0c28/combinations-large-opt.png">View large version</a>)</figcaption></figure>

<div class="partners__lead-place"></div>

<h2 id="7-form-placeholders">7. Form Placeholders</h2>

<p>Using a placeholder <em>without</em> a label is problematic because placeholder text usually lacks sufficient contrast. <a href="https://appleid.apple.com/account">Apple</a> has this problem with their registration form, as shown below:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b3805e27-cb22-4f08-aa19-d803f5e10d84/apple-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bb39cc3a-ce2c-498c-8017-938708cf9594/apple-preview-opt.jpg" alt="Apple registration form" width="350" /></a><figcaption>Apple's registration form uses a placeholder without a label. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b3805e27-cb22-4f08-aa19-d803f5e10d84/apple-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Increasing the contrast is not advisable because it will then be hard to tell the difference between placeholder text and user input.</p>

<p>It&rsquo;s better to use labels – a <a href="https://www.christianheilmann.com/2015/12/04/a-quick-reminder-on-how-and-why-to-use-labels-in-forms-to-make-them-more-accessible/">good practice</a> anyway – with sufficient contrast, which is exactly what <a href="https://www.made.com">Made.com</a> does as shown below:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/24e48a07-9441-4e1b-8db5-7e785801c5b5/label-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7f3dd191-7706-43b1-a9ad-be8ed050ec9f/label-preview-opt.jpg" alt="Labels" width="300" /></a><figcaption>Made.com uses labels with good contrast. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/24e48a07-9441-4e1b-8db5-7e785801c5b5/label-large-opt.jpg">View large version</a>)</figcaption></figure>

<h2 id="8-primary-buttons">8. Primary Buttons</h2>

<p>Often, primary buttons use color alone to present themselves as such, and <a href="https://www.argos.co.uk">Argos</a> does just this on its login screen:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/17867c4f-30b7-474a-b52e-8b8f0b7ca2c9/argos-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/66e26377-7366-4c73-a82b-a92ba1d767e5/argos-preview-opt.jpg" alt="Argos login screen" /></a><figcaption>The Argos login screen relies on color to emphasize the primary button. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/17867c4f-30b7-474a-b52e-8b8f0b7ca2c9/argos-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Instead, consider using size, placement, boldness, contrast, borders, icons and anything else that will help – within the bounds of your brand guidelines. As an example, <a href="https://kidly.co.uk">Kidly</a> uses size, color and iconography:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4ba853c3-5141-41f7-9f76-e92d52cdcc29/kidly-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d572dd01-c746-4638-805d-d2aed50c78c3/kidly-preview-opt.jpg" alt="Kidly Basket buttons" /></a><figcaption>Kidly uses size, color and iconography to emphasize the primary button. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4ba853c3-5141-41f7-9f76-e92d52cdcc29/kidly-large-opt.jpg">View large version</a>)</figcaption></figure>

<h2 id="9-alert-messaging">9. Alert Messaging</h2>

<p>Success and error messages are often colored green and red respectively. Most color-blind people don&rsquo;t suffer from achromatism, and so will naturally associate different colors with different messages. However, using prefix text such as &ldquo;Success&rdquo; or, my preference, an icon makes it quick and easy to read as shown below:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5771c905-89f9-4809-832d-f659d93b627b/messaging-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8722ee5d-206d-4d1a-ade0-70dfc710e773/messaging-preview-opt.jpg" alt="Messaging with icons and text" /></a><figcaption>Alert messaging with text prefixes and icons. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5771c905-89f9-4809-832d-f659d93b627b/messaging-large-opt.jpg">View large version</a>)</figcaption></figure>

<h2 id="10-required-form-fields">10. Required Form Fields</h2>

<p>Denoting required fields with color is a problem because some people may not be able to see the differences.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/29cf1183-eb8a-4960-8056-30819b5786ca/required-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5e58f768-4612-4a1a-ad46-73a783af7369/required-preview-opt.jpg" alt="Messaging with icons and text" /></a><figcaption>Denoting required fields by color. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5771c905-89f9-4809-832d-f659d93b627b/messaging-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Instead, you could consider:</p>

<ul>
<li>Marking required fields with an asterisk.</li>
<li>Even better, marking required fields with “required.”</li>
<li>Where possible, remove optional fields altogether.</p></li>
</ul>

<h2 id="11-graphs">11. Graphs</h2>

<p>Color is often used to signify different segments of a graph. The image below demonstrates how people with different vision would see this. The color-blind-friendly graph is on the right.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f75f08d4-3827-4e19-b282-3a7ccd923564/graphs-normal-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1f321b3d-81c1-41b8-8d87-c74355a69878/graphs-normal-preview-opt.png" alt="Graphs as seen with normal visions" /></a><figcaption>Graphs viewed with normal vision (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f75f08d4-3827-4e19-b282-3a7ccd923564/graphs-normal-large-opt.png">View large version</a>)</figcaption></figure>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/efbd1cae-ec9a-4618-9481-33c46ca48d6e/graphs-protan-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/66ce2cd1-3389-414f-a9d9-90b69c00605c/graphs-protan-preview-opt.png" alt="Graphs as seen with Protanopia" /></a><figcaption>Graphs viewed with protanopia (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/efbd1cae-ec9a-4618-9481-33c46ca48d6e/graphs-protan-large-opt.png">View large version</a>)</figcaption></figure>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0a2f5504-5dd9-41eb-a32a-f28f4841f013/graphs-achrom-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6793b5f5-8d31-4dca-8780-a5b760835616/graphs-achrom-preview-opt.png" alt="Graphs as seen with normal visions" /></a><figcaption>Graphs viewed with achromatopsia (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0a2f5504-5dd9-41eb-a32a-f28f4841f013/graphs-achrom-large-opt.png">View large version</a>)</figcaption></figure>

<p>Using patterns and, where possible, placing text within each segment makes graphs easy to understand. When text doesn&rsquo;t fit – as is often the case with a small pie chart segment – using a key will suffice.</p></p>

<h2 id="12-zoom">12. Zoom</h2>

<p>One accessibility feature that browsers have, is enabling someone to zoom in as much as they need. This improves readability&ndash;which is especially helpful on a mobile device.</p>

<p>Unfortunately, zoom can be disabled using the <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Viewport_meta_tag">Viewport Meta Tag</a>, which is problematic. For example, text size may be too small to read in relation to the color contrast—but zooming in effectively increases the font size, making it easier to read. So don&rsquo;t disable zoom on your website.</p></p>

<h2 id="13-relative-font-size">13. Relative Font Size</h2>

<p>Similarly to the previous point, browsers provide the ability to increase text size (instead of zooming the entire page as a whole), in order to improve readability. However, some browsers disable this functionality when the font-size is specified in absolute units such as pixels. Using a relative font size unit, such as ems, ensures that all browsers afford this capability.</p></p>

<h2 id="tooling">Tooling</h2>

<p>There are lots of tools available to help you design for color-blind people:</p>

<ol>
<li>Check My Colours: if you have an existing website, you can just enter a URL and receive feedback of what needs to be improved.</li>
<li><a href="https://webaim.org/resources/contrastchecker/">WebAim&rsquo;s color contrast checker</a>: provide two colors to see if they pass accessibility guidelines.</li>
<li><a href="https://chrome.google.com/webstore/detail/lets-get-color-blind/bkdgdianpkfahpkmphgehigalpighjck">I Want To See Like The Color Blind</a>: apply color blindness filters to your web page right within Chrome.</li>
<li><a href="https://colororacle.org/">Color Oracle</a>: a color blindness simulator for Windows, Mac and Linux, showing you what people with common color vision impairments will see.</p></li>
</ol>

<h2 id="conclusion">Conclusion</h2>

<p>The tips in this article are not exhaustive, and they are not necessarily applicable to every situation. However, they do cover the majority of problems color-blind people experience when using websites.</p>

<p>It&rsquo;s more important to take away the principles, so that you can integrate them into your own design process. Ultimately, websites aren&rsquo;t just meant to look good – they are meant to be easy to use for everyone, including people who are color-blind.</p></p>

<div class="partners__lead-place"></div>

<h3 id="further-reading">Further Reading</h3>

<ul>
<li><a href="https://www.smashingmagazine.com/2015/03/web-accessibility-with-accessibility-api/">Accessibility APIs: A Key To Web Accessibility</a></li>
<li><a href="https://www.smashingmagazine.com/2015/05/client-rendered-accessibility/">Notes On Client-Rendered Accessibility</a></li>
<li><a href="https://www.smashingmagazine.com/2015/12/making-accessibility-simpler/">Making Accessibility Simpler, With Ally.js</a></li>
<li><a href="https://www.smashingmagazine.com/2017/01/underestimated-power-color-mobile-app-design/"><span class="headline">The Underestimated Power Of Color In Mobile App Design</span></a></li>
</ul>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(cc, og, il, mrn)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Adam Silver</author><title>Accessibility: Improving The UX For Color-Blind Users</title><link>https://www.smashingmagazine.com/2016/06/improving-ux-for-color-blind-users/</link><pubDate>Tue, 21 Jun 2016 20:59:19 +0000</pubDate><guid>https://www.smashingmagazine.com/2016/06/improving-ux-for-color-blind-users/</guid><description>Websites aren’t just meant to look good – they are meant to be easy to use for everyone, including people who are color-blind. There are many types of color blindness but it comes down to not seeing color clearly, getting colors mixed up, or not being able to differentiate between certain colors. In this article, Adam Silver will cover the majority of problems color-blind people experience when using websites, by providing 13 tips to improve their experience - something which can often benefit people with normal vision too.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2016/06/improving-ux-for-color-blind-users/" />
              <title>Accessibility: Improving The UX For Color-Blind Users</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>Accessibility: Improving The UX For Color-Blind Users</h1>
                  
                    
                    <address>Adam Silver</address>
                  
                  <time datetime="2016-06-21T20:59:19&#43;00:00" class="op-published">2016-06-21T20:59:19+00:00</time>
                  <time datetime="2016-06-21T20:59:19&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>According to Colour Blind Awareness <a href="https://www.colourblindawareness.org/colour-blindness/">4.5% of the population are color-blind</a>. If your audience is mostly male this increases to 8%. Designing for color-blind people can be easily forgotten because most designers <em>aren&rsquo;t</em> color-blind. In this article I provide 13 tips to improve the experience for color-blind people – something which can often benefit people with normal vision too.</p></p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="https://www.smashingconf.com/online-workshops/">Smashing Workshops</a></strong> on <strong>front-end, design &amp; UX</strong>, with practical takeaways, live sessions, <strong>video recordings</strong> and a friendly Q&amp;A. With Brad Frost, Stéph Walter and <a href="https://smashingconf.com/online-workshops/workshops">so many others</a>.</p>
<a data-instant href="smashing-workshops" class="btn btn--green btn--large" style="">Jump to the workshops&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="smashing-workshops" class="feature-panel-image-link">
<div class="feature-panel-image">
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="/images/smashing-cat/cat-scubadiving-panel.svg"
    alt="Feature Panel"
    width="257"
    height="355"
/>

</div>
</a>
</div>
</aside>
</div>

<h2 id="what-is-color-blindness">What Is Color Blindness?</h2>

<p>There are <a href="https://www.colourblindawareness.org/colour-blindness/types-of-colour-blindness/">many types</a> of color blindness but it comes down to not seeing color clearly, getting colors mixed up, or not being able to differentiate between certain colors.</p>

<p>These problems can also be exacerbated by the environments in which people use websites. This could include low-quality monitors, bad lighting, screen glare, tiny mobile screens and sitting far away from a huge television screen.</p>

<p>Relying <em>solely</em> on color for readability and affordance makes a website difficult to use, which ultimately affects readership and sales.</p>

<p>While the following tips aren&rsquo;t exhaustive, they do cover the majority of problems color-blind people experience when using websites.</p></p>

<h2 id="1-text-readability">1. Text Readability</h2>

<p>To ensure text is readable it should pass accessibility guidelines based on the combination of text color, background color and text size as follows:</p>

<blockquote>“WCAG 2.0 level AA requires a contrast ratio of 4.5:1 for normal text and 3:1 for large text (14 point and bold or larger, or 18 point or larger).”
<cite>— <a href="https://webaim.org/resources/contrastchecker/">WebAim color contrast checker</a></cite></blockquote>

<p>Here are a few examples of color and size combinations that do and do not pass:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/953497cc-9050-4e19-9097-c61d720d94ac/text-contrast-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9381379e-d394-49eb-82b2-bfb0cad5d726/text-contrast-preview-opt.png" alt="Contrast is based on color and size" /></a><figcaption>This illustrates how contrast is based on the combination of color and size. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/953497cc-9050-4e19-9097-c61d720d94ac/text-contrast-large-opt.png">View large version</a>)</figcaption></figure>

<h2 id="2-text-overlaid-on-background-images">2. Text Overlaid On Background Images</h2>

<p>Text overlaid on imagery is tricky because some or all of the image may not have sufficient contrast in relation to the text.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bff596ba-f297-4da6-82ce-56f7e2101415/text-overlay-bad-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4fe4b838-9280-4d04-86e1-218cd19d8a6f/text-overlay-bad-preview-opt.jpg" alt="Description of the image." /></a><figcaption>Text overlaid on an image without a mask. (Image credit: <a href="https://unsplash.com/photos/N_Y88TWmGwA">Jay Wennington</a>) (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bff596ba-f297-4da6-82ce-56f7e2101415/text-overlay-bad-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Reducing the background opacity increases the contrast, making the text easier to read.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6f5aff0d-2d00-4a57-9dbd-7a1c91a1fcaa/text-overlay-good-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/72b5f770-2629-46d7-bee6-10eb337384d8/text-overlay-good-preview-opt.jpg" alt="Description of the image." /></a><figcaption>Text overlaid on an image with a mask. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6f5aff0d-2d00-4a57-9dbd-7a1c91a1fcaa/text-overlay-good-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Alternatively, you can style the text itself to have a solid color or a drop shadow, or anything else that matches your brand guidelines.</p></p>

<h2 id="3-color-filters-pickers-and-swatches">3. Color Filters, Pickers And Swatches</h2>

<p>The screenshot below shows the <a href="https://www.amazon.co.uk/s/ref=nb_sb_noss?url=search-alias%3Daps&amp;field-keywords=t+shirts">color filter on Amazon</a> as seen by someone with and without protanopia (red–green color blindness). Without descriptive text it is impossible to differentiate between many of the options available.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b5c96fe9-f002-4ac8-97a5-819303798fa7/amazon-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5aaebaac-2890-4ea4-87dc-dcbcaa59ec7d/amazon-preview-opt.jpg" alt="Amazon color picker" /></a><figcaption>Color filter without labels as seen by someone with protanopia is impossible to use. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b5c96fe9-f002-4ac8-97a5-819303798fa7/amazon-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Amazon shows descriptive text when the user hovers, but hover isn&rsquo;t available on mobile.</p></p>

<p><a href="https://www.gap.co.uk/">Gap</a> solves this problem by adding a text label beside each color as shown below:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c875bb39-83b4-4a77-ae33-519f49882075/gap-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1f435241-5f86-463f-b536-7f154823c417/gap-preview-opt.jpg" alt="Amazon color picker" /></a><figcaption>Color filter with labels as seen by someone with protanopia is easy to use. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c875bb39-83b4-4a77-ae33-519f49882075/gap-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>This happens to be beneficial for people with normal vision too. For example, black and navy are difficult colors to differentiate on screen. A text label takes the guesswork out of it.</p></p>

<h2 id="4-photographs-without-useful-descriptions">4. Photographs Without Useful Descriptions</h2>

<p>The screenshot below shows a <a href="https://www.superdry.com/mens/t-shirts/details/55971/pt-classics-vintage-logo-t-shirt">SuperDry T-shirt</a> for sale on its website. It is described as “Leaf Jaspe” which is ambiguous as leaves can come in an assortment of colors (green, yellow, brown. etc.).</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e74ed5c2-fb54-4200-bc4f-4a1a0cbb686d/superdry-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/43431209-d5c6-4547-b3b3-5a8fec5d46c5/superdry-preview-opt.jpg" alt="Description of the image." /></a><figcaption>It's hard for color-blind people to know what color this SuperDry T-shirt is. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e74ed5c2-fb54-4200-bc4f-4a1a0cbb686d/superdry-large-opt.jpg">View large version</a>)</figcaption></figure>

<p><em>Jaspe</em> (or rather “jaspé”) means randomly mottled or variegated, so using this in addition to the specific color would be useful: “Gray Green Leaf Jaspe.”</p>

<h2 id="5-link-recognition">5. Link Recognition</h2>

<p>Links should be easy to spot without relying on color. The screenshot below simulates the vision of somebody with achromatopsia (can&rsquo;t see color) viewing the <a href="https://gds.blog.gov.uk/">UK Government Digital Service (GDS) website</a>. Many of the links are hard to see. For example, did you notice that “GDS team, User research” (located under the heading) are links?</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/761e145a-554c-4175-b6dc-5bf47b5c541c/gds-screenshot-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2ac4862a-2858-463e-8949-9826e3803d91/gds-screenshot-preview-opt.jpg" alt="GDS" /></a><figcaption>GDS blog as seen by someone with achromatopsia. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/761e145a-554c-4175-b6dc-5bf47b5c541c/gds-screenshot-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>To find a link, users are left having to hover with their mouse waiting for the cursor to change to a pointer. On mobile, they are left to tap on text hoping it will make a page request.</p>

<p>The links above with icons are easier to see. For those without, it would be a good idea to add an underline, which is exactly what GDS does within the body of its articles:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b251c9e-7a7b-458a-85b1-d51dcbecec14/gds2-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/520f1a23-c387-4861-9e33-4a74174131eb/gds2-preview-opt.jpg" alt="GDS" /></a><figcaption>Underlined links are easy to see by someone with achromatopsia. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b251c9e-7a7b-458a-85b1-d51dcbecec14/gds2-large-opt.jpg">View large version</a>)</figcaption></figure>

<h2 id="6-color-combinations">6. Color Combinations</h2>

<p>In the physical world you can&rsquo;t always control which colors appear next to one another: a red apple may have dropped and nestled itself into some green grass. However, we <em>can</em> control the colors we use to design our website. The following color combinations should be avoided where possible:</p>

<ul>
<li>green/red</li>
<li>green/brown</li>
<li>blue/purple</li>
<li>green/blue</li>
<li>light green/yellow</li>
<li>blue/grey</li>
<li>green/grey</li>
<li>green/black</li>
</ul>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c52cb6d8-19a7-4f33-be5e-beba6ddc0c28/combinations-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cf3100b7-1a97-40b7-b4d6-c508fbbca75d/combinations-preview-opt.png" alt="Colour combinations as seen with Protanopia" /></a><figcaption>Colour combinations as seen with Protanopia. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c52cb6d8-19a7-4f33-be5e-beba6ddc0c28/combinations-large-opt.png">View large version</a>)</figcaption></figure>

<div class="partners__lead-place"></div>

<h2 id="7-form-placeholders">7. Form Placeholders</h2>

<p>Using a placeholder <em>without</em> a label is problematic because placeholder text usually lacks sufficient contrast. <a href="https://appleid.apple.com/account">Apple</a> has this problem with their registration form, as shown below:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b3805e27-cb22-4f08-aa19-d803f5e10d84/apple-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bb39cc3a-ce2c-498c-8017-938708cf9594/apple-preview-opt.jpg" alt="Apple registration form" width="350" /></a><figcaption>Apple's registration form uses a placeholder without a label. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b3805e27-cb22-4f08-aa19-d803f5e10d84/apple-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Increasing the contrast is not advisable because it will then be hard to tell the difference between placeholder text and user input.</p>

<p>It&rsquo;s better to use labels – a <a href="https://www.christianheilmann.com/2015/12/04/a-quick-reminder-on-how-and-why-to-use-labels-in-forms-to-make-them-more-accessible/">good practice</a> anyway – with sufficient contrast, which is exactly what <a href="https://www.made.com">Made.com</a> does as shown below:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/24e48a07-9441-4e1b-8db5-7e785801c5b5/label-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7f3dd191-7706-43b1-a9ad-be8ed050ec9f/label-preview-opt.jpg" alt="Labels" width="300" /></a><figcaption>Made.com uses labels with good contrast. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/24e48a07-9441-4e1b-8db5-7e785801c5b5/label-large-opt.jpg">View large version</a>)</figcaption></figure>

<h2 id="8-primary-buttons">8. Primary Buttons</h2>

<p>Often, primary buttons use color alone to present themselves as such, and <a href="https://www.argos.co.uk">Argos</a> does just this on its login screen:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/17867c4f-30b7-474a-b52e-8b8f0b7ca2c9/argos-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/66e26377-7366-4c73-a82b-a92ba1d767e5/argos-preview-opt.jpg" alt="Argos login screen" /></a><figcaption>The Argos login screen relies on color to emphasize the primary button. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/17867c4f-30b7-474a-b52e-8b8f0b7ca2c9/argos-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Instead, consider using size, placement, boldness, contrast, borders, icons and anything else that will help – within the bounds of your brand guidelines. As an example, <a href="https://kidly.co.uk">Kidly</a> uses size, color and iconography:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4ba853c3-5141-41f7-9f76-e92d52cdcc29/kidly-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d572dd01-c746-4638-805d-d2aed50c78c3/kidly-preview-opt.jpg" alt="Kidly Basket buttons" /></a><figcaption>Kidly uses size, color and iconography to emphasize the primary button. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4ba853c3-5141-41f7-9f76-e92d52cdcc29/kidly-large-opt.jpg">View large version</a>)</figcaption></figure>

<h2 id="9-alert-messaging">9. Alert Messaging</h2>

<p>Success and error messages are often colored green and red respectively. Most color-blind people don&rsquo;t suffer from achromatism, and so will naturally associate different colors with different messages. However, using prefix text such as &ldquo;Success&rdquo; or, my preference, an icon makes it quick and easy to read as shown below:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5771c905-89f9-4809-832d-f659d93b627b/messaging-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8722ee5d-206d-4d1a-ade0-70dfc710e773/messaging-preview-opt.jpg" alt="Messaging with icons and text" /></a><figcaption>Alert messaging with text prefixes and icons. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5771c905-89f9-4809-832d-f659d93b627b/messaging-large-opt.jpg">View large version</a>)</figcaption></figure>

<h2 id="10-required-form-fields">10. Required Form Fields</h2>

<p>Denoting required fields with color is a problem because some people may not be able to see the differences.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/29cf1183-eb8a-4960-8056-30819b5786ca/required-large-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5e58f768-4612-4a1a-ad46-73a783af7369/required-preview-opt.jpg" alt="Messaging with icons and text" /></a><figcaption>Denoting required fields by color. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5771c905-89f9-4809-832d-f659d93b627b/messaging-large-opt.jpg">View large version</a>)</figcaption></figure>

<p>Instead, you could consider:</p>

<ul>
<li>Marking required fields with an asterisk.</li>
<li>Even better, marking required fields with “required.”</li>
<li>Where possible, remove optional fields altogether.</p></li>
</ul>

<h2 id="11-graphs">11. Graphs</h2>

<p>Color is often used to signify different segments of a graph. The image below demonstrates how people with different vision would see this. The color-blind-friendly graph is on the right.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f75f08d4-3827-4e19-b282-3a7ccd923564/graphs-normal-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1f321b3d-81c1-41b8-8d87-c74355a69878/graphs-normal-preview-opt.png" alt="Graphs as seen with normal visions" /></a><figcaption>Graphs viewed with normal vision (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f75f08d4-3827-4e19-b282-3a7ccd923564/graphs-normal-large-opt.png">View large version</a>)</figcaption></figure>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/efbd1cae-ec9a-4618-9481-33c46ca48d6e/graphs-protan-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/66ce2cd1-3389-414f-a9d9-90b69c00605c/graphs-protan-preview-opt.png" alt="Graphs as seen with Protanopia" /></a><figcaption>Graphs viewed with protanopia (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/efbd1cae-ec9a-4618-9481-33c46ca48d6e/graphs-protan-large-opt.png">View large version</a>)</figcaption></figure>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0a2f5504-5dd9-41eb-a32a-f28f4841f013/graphs-achrom-large-opt.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6793b5f5-8d31-4dca-8780-a5b760835616/graphs-achrom-preview-opt.png" alt="Graphs as seen with normal visions" /></a><figcaption>Graphs viewed with achromatopsia (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0a2f5504-5dd9-41eb-a32a-f28f4841f013/graphs-achrom-large-opt.png">View large version</a>)</figcaption></figure>

<p>Using patterns and, where possible, placing text within each segment makes graphs easy to understand. When text doesn&rsquo;t fit – as is often the case with a small pie chart segment – using a key will suffice.</p></p>

<h2 id="12-zoom">12. Zoom</h2>

<p>One accessibility feature that browsers have, is enabling someone to zoom in as much as they need. This improves readability&ndash;which is especially helpful on a mobile device.</p>

<p>Unfortunately, zoom can be disabled using the <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Viewport_meta_tag">Viewport Meta Tag</a>, which is problematic. For example, text size may be too small to read in relation to the color contrast—but zooming in effectively increases the font size, making it easier to read. So don&rsquo;t disable zoom on your website.</p></p>

<h2 id="13-relative-font-size">13. Relative Font Size</h2>

<p>Similarly to the previous point, browsers provide the ability to increase text size (instead of zooming the entire page as a whole), in order to improve readability. However, some browsers disable this functionality when the font-size is specified in absolute units such as pixels. Using a relative font size unit, such as ems, ensures that all browsers afford this capability.</p></p>

<h2 id="tooling">Tooling</h2>

<p>There are lots of tools available to help you design for color-blind people:</p>

<ol>
<li>Check My Colours: if you have an existing website, you can just enter a URL and receive feedback of what needs to be improved.</li>
<li><a href="https://webaim.org/resources/contrastchecker/">WebAim&rsquo;s color contrast checker</a>: provide two colors to see if they pass accessibility guidelines.</li>
<li><a href="https://chrome.google.com/webstore/detail/lets-get-color-blind/bkdgdianpkfahpkmphgehigalpighjck">I Want To See Like The Color Blind</a>: apply color blindness filters to your web page right within Chrome.</li>
<li><a href="https://colororacle.org/">Color Oracle</a>: a color blindness simulator for Windows, Mac and Linux, showing you what people with common color vision impairments will see.</p></li>
</ol>

<h2 id="conclusion">Conclusion</h2>

<p>The tips in this article are not exhaustive, and they are not necessarily applicable to every situation. However, they do cover the majority of problems color-blind people experience when using websites.</p>

<p>It&rsquo;s more important to take away the principles, so that you can integrate them into your own design process. Ultimately, websites aren&rsquo;t just meant to look good – they are meant to be easy to use for everyone, including people who are color-blind.</p></p>

<div class="partners__lead-place"></div>

<h3 id="further-reading">Further Reading</h3>

<ul>
<li><a href="https://www.smashingmagazine.com/2015/03/web-accessibility-with-accessibility-api/">Accessibility APIs: A Key To Web Accessibility</a></li>
<li><a href="https://www.smashingmagazine.com/2015/05/client-rendered-accessibility/">Notes On Client-Rendered Accessibility</a></li>
<li><a href="https://www.smashingmagazine.com/2015/12/making-accessibility-simpler/">Making Accessibility Simpler, With Ally.js</a></li>
<li><a href="https://www.smashingmagazine.com/2017/01/underestimated-power-color-mobile-app-design/"><span class="headline">The Underestimated Power Of Color In Mobile App Design</span></a></li>
</ul>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(cc, og, il, mrn)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Laura Elizabeth</author><title>A Simple Web Developer’s Color Guide</title><link>https://www.smashingmagazine.com/2016/04/web-developer-guide-color/</link><pubDate>Tue, 05 Apr 2016 14:50:21 +0000</pubDate><guid>https://www.smashingmagazine.com/2016/04/web-developer-guide-color/</guid><description>Laura Elizabeth never found color theory useful when trying to use color in her projects. Somewhat ironically, she’s been finding that the better she got at choosing and using color, the better she became in the theory behind it. In this article, Laura shares a simple color workflow that you can use in your next web project.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2016/04/web-developer-guide-color/" />
              <title>A Simple Web Developer’s Color Guide</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>A Simple Web Developer’s Color Guide</h1>
                  
                    
                    <address>Laura Elizabeth</address>
                  
                  <time datetime="2016-04-05T14:50:21&#43;00:00" class="op-published">2016-04-05T14:50:21+00:00</time>
                  <time datetime="2016-04-05T14:50:21&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>I’ve never been a fan of <a title="Color Theory for Designers, Part 1: The Meaning of Color" href="https://www.smashingmagazine.com/2010/01/color-theory-for-designers-part-1-the-meaning-of-color/">color theory</a>. I think it’s because I’ve always been a bit hopeless at it. I’d love to be able to sit there, color wheel in hand, and pick out complementary, split-complementary and triad color schemes, impressing all of my friends, family and clients in the process.</p>

<p>But the theory has always eluded me, and, truthfully, I’ve never found it useful when trying to use color in my projects. Somewhat ironically, I’ve been finding that the better I get at choosing and using color, the better I become in the theory behind it.</p>

<p>Of course, that doesn’t really help when you’re just starting out, does it? That’s why, in this article, you won’t see a single color wheel. Instead I’m going to show you a <strong>simple color workflow</strong> that you can use in your next web project.</p>

<p>You will, of course, subconsciously be learning the theory along the way. So, just for funsies (yes, I said “funsies”), I recommend coming back in a few months time and giving the theory another go.</p>

<p>Everything will make so much more sense then, I swear.</p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="/printed-books/touch-design-for-mobile-interfaces/">Touch Design for Mobile Interfaces</a></strong>, Steven Hoober’s brand-new guide on <strong>designing for mobile</strong> with proven, universal, human-centric guidelines. <strong>400 pages</strong>, jam-packed with in-depth user research and <strong>best practices</strong>.</p>
<a data-instant href="https://www.smashingmagazine.com/printed-books/touch-design-for-mobile-interfaces/" class="btn btn--green btn--large" style="">Jump to table of contents&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="https://www.smashingmagazine.com/printed-books/touch-design-for-mobile-interfaces/" class="feature-panel-image-link">
<div class="feature-panel-image"><picture><source type="image/avif" srcSet="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/14bcab88-b622-47f6-a51d-76b0aa003597/touch-design-book-shop-opt.avif" />
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b14658fc-bb2d-41a6-8d1a-70eaaf1b8ec8/touch-design-book-shop-opt.png"
    alt="Feature Panel"
    width="480"
    height="697"
/>
</picture>
</div>
</a>
</div>
</aside>
</div>

<h2 id="choosing-a-base-color">Choosing A Base Color</h2>

<p>We can see something ridiculous like 10 million colors at any given time. Think about that for a second. 10 million.</p>

<p>And out of those, we need to choose one — just one color — to be the base of our website, for our brand.</p>

<p>Everything will stem from this one color, so it’s kind of important. But don’t worry: You can’t go wrong.</p>

<h3 id="how-to-choose-a-starting-color">How To Choose A Starting Color</h3>

<p>Now, picking a color out of the blue (pun intentional) would be quite easy, but we’re not going to do that. For any project in which you’re dealing with clients, you should really try to justify as many of your choices as you can. If you don’t, it’ll be a case of your favorite color versus their favorite color. They’re the client. They’re paying you. They will win.</p>

<p>Don’t overthink it. Just make sure you have some kind of reasoning behind your color choice (and every choice, for that matter). It’ll make you look good.</p>

<h3 id="tips-on-choosing-a-starting-color">Tips On Choosing A Starting Color</h3>

<ul>
<li><strong>Use what you have.</strong><br />
If the client has a logo with an established color, that will usually be your starting color.</li>
<li><strong>Eliminate your competitors’ colors.</strong> If one of your main competitors has a strong brand color, don’t copy it if you can help it. Find your competitors’ colors to eliminate them from your own color schemes.</li>
<li><strong>Think about your target audience.</strong><br />
The colors of a website for a funeral home would likely be very different from the colors for a kids club. Think about who will be using the website and how you want them to feel (excited, serious, taken care of, etc.).</li>
<li><strong>But don’t default to stereotypes.</strong><br />
If you’re designing a website for young girls, you don’t have to use pink. Avoid clichés to gain credibility.</li>
<li><strong>Play a word game.</strong><br />
If you’re struggling, write down any words that you associate with the client’s business. This list should give you some ideas for colors. If you’re really struggling, hop on any website about color meanings and see which fits best.</li>
</ul>

<p>You should now have a base color in mind for the design. It should be something simple like red, green, blue, yellow or pink. We’ll get to the exact shade next.</p>

<p>Let’s say you choose blue. (Great choice, by the way!)</p>

<h2 id="choosing-a-nice-base-color">Choosing A (Nice) Base Color</h2>

<p>Instead of messing about with Photoshop’s color-picker to find a nice shade of blue, we’re going to steal like an artist and use other people’s design choices to help us out.</p>

<p>First, go to <a href="https://dribbble.com/colors/">Dribbble</a> and <a href="https://designspiration.net/">Designspiration</a> and click on the “Colors” link in both.</p>

<p>These should present you with similar screens:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/67f1edae-35e3-4f15-88b9-ede4ec72cd40/01-dribble-designspiration-screenshot-opt.jpg"><img loading="lazy" decoding="async" class="alignnone" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/39dcdafd-db5a-47ed-8f11-573c5108d1bb/01-dribble-designspiration-screenshot-preview-opt.jpg" alt="Color Guide: Dribbble and Designspiration color pickers" width="500" height="600" /></a><figcaption>Use inspiration websites to find the right color for your design. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/67f1edae-35e3-4f15-88b9-ede4ec72cd40/01-dribble-designspiration-screenshot-opt.jpg">View large version</a>)</figcaption></figure>

<p>You can use this as the next step to find the right shade of blue.</p>

<p>For a fresh and energetic brand, go for one of the lighter, brighter blues (one of the top five options). For something a bit more corporate and serious, the bottom five should be a better fit.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/05704aa7-4cf5-4ffe-a163-2f913e3b323b/02-color-characteristics-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ae4908f7-a48e-4229-b775-f94484f72349/02-color-characteristics-preview-opt.jpg" alt="Lighter blues for an energetic feel, darker for a corporate feel." /></a><figcaption>Different shades of blue have different characteristics. Choose wisely! (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/05704aa7-4cf5-4ffe-a163-2f913e3b323b/02-color-characteristics-opt.jpg">View large version</a>)</figcaption></figure>

<p>Choose a shade from each website to see actual designs that use that color. You can then use any of <a href="https://css-tricks.com/grabbing-hex-codes-for-colors/">CSS-Tricks’ color-picking techniques</a> to grab the exact colors right in the browser.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bccaf83b-8cd7-4572-a662-1aa3fd0640a5/03-dribbble-color-results-opt.jpg"><img loading="lazy" decoding="async" class="alignnone" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8720fbd8-cff3-47c5-a0b8-d7ab9ffa4682/03-dribbble-color-results-preview-opt.jpg" alt="Color Guide results from Dribbble" width="500" height="373" /></a><figcaption>So much blue! Your job is to pick the one you think would best fit your brand. Easy peasy! (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bccaf83b-8cd7-4572-a662-1aa3fd0640a5/03-dribbble-color-results-opt.jpg">View large version</a>)</figcaption></figure>

<p>Not only will you see different versions of your base color, but you will easily see colors that match.</p>

<h2 id="creating-a-cohesive-color-palette">Creating A Cohesive Color Palette</h2>

<p>All right, you should now have a HEX value for your color. Mine is <code>#30c9e8</code>. Now we’re going to make a palette out of that color. And it’s easier than you think.</p>

<p>When you think of the process of creating a color scheme, you might picture things like this:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/54b2e3bb-e016-4755-b9ac-eb61b74c1f9f/04-colour-lovers-palettes-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5b7b72ee-6a44-4c0c-a59c-8fab2749797b/04-colour-lovers-palettes-preview-opt.jpg" alt="Palettes from COLOURlovers" /></a><figcaption>The kinds of palettes you’re probably used to seeing. (Image credit: <a href="https://www.colourlovers.com/">ColourLovers</a> palettes by <a href="https://www.colourlovers.com/lover/manekineko/loveNote">manekineko</a> and <a href="https://www.colourlovers.com/lover/sugar!/loveNote">sugar!</a> ) (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/54b2e3bb-e016-4755-b9ac-eb61b74c1f9f/04-colour-lovers-palettes-opt.jpg">View large version</a>)</figcaption></figure>

<p>The problem with this kind of color palette is that applying it to a real design isn’t very practical. Most palettes have way more colors than you’d ever need, especially considering that we need to add an average of three neutral colors to every scheme:</p>

<ul>
<li>white,</li>
<li>dark gray,</li>
<li>light gray (optional).</li>
</ul>

<p>If you tried to add five or six colors to the neutrals, it would be a mess. All you really need are two colors:</p>

<ul>
<li>a base color (in our case, <code>#30c9e8</code>),</li>
<li>an accent color (we’ll get to this in a jiffy).</li>
</ul>

<p>If you can create a website using only these five colors, you’ll get a much better result than if you were to go overboard with complementaries, split-complementaries, triads and the rest.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6c9e335e-6225-437d-9c95-e6521f1b4d73/05-simple-color-schemes-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/20029fa4-9381-4c74-b478-17e141c840cf/05-simple-color-schemes-preview-opt.jpg" alt="TedTodd and ThoughtBox’s websites have very simple color palettes" /></a><figcaption>Like <a href="https://thoughtbot.com/">Thoughtbot</a> and <a href="https://tedtoddinsurance.com/">TedTodd</a>, you don’t need a complex color scheme to have a great-looking website. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6c9e335e-6225-437d-9c95-e6521f1b4d73/05-simple-color-schemes-opt.jpg">View large version</a>)</figcaption></figure>

<div class="partners__lead-place"></div>

<h3 id="finding-your-accent">Finding Your Accent</h3>

<p>Your accent color will be used in very small amounts on your website, usually as a call to action. So, it needs to stand out.</p>

<p>Your next step is to go to <a href="https://paletton.com/">Paletton</a> and type your HEX code into the color box:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f9c0a789-cc01-47d3-b65b-a718fd4a7867/06-base-rgb-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a7904575-2ba7-4db2-a8a5-e2900efbc949/06-base-rgb-preview-opt.jpg" alt="Screenshot of Paletton setting base color" /></a><figcaption>Enter your base color code on Paletton. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f9c0a789-cc01-47d3-b65b-a718fd4a7867/06-base-rgb-opt.jpg">View large version</a>)</figcaption></figure>

<p>From here, you can find your accent in one of two ways.</p>

<p>First, you could click the “Add Complementary” button and <em>wham</em>! That orange there? That’s your accent.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2404f982-eebf-46dd-bc0a-3fb41611139f/07-complimentary-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d7f5e8f7-dcf9-4772-aaaa-9cf35ed9f917/07-complimentary-preview-opt.jpg" alt="Screenshot of complementary color in Paletton" /></a><figcaption>Paletton automatically generates a good accent color for you. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2404f982-eebf-46dd-bc0a-3fb41611139f/07-complimentary-opt.jpg">View large version</a>)</figcaption></figure>

<p>Alternatively, if you don’t like the color it has generated, you can click around the icons at the top to find something more suitable.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0aa21574-82df-4e83-9831-830ef1c0a64d/08-triad-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/67ea92ca-880b-44e1-bebe-0ad55c6796ef/08-triad-preview-opt.jpg" alt="Screenshot of color schemes in Paletton" /></a><figcaption>Click through to find a color scheme you like. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0aa21574-82df-4e83-9831-830ef1c0a64d/08-triad-opt.jpg">View large version</a>)</figcaption></figure>

<p>Personally, I quite like the red that comes up under the triad icon, so I’m going to use that for our scheme. There is, of course, science and stuff behind what Paletton is doing; but, for now, let’s put a pin on it. You’ll learn the theory a bit later, and all will become clear.</p>

<p>So, below is our color scheme as it is now. We’ve got a nice base color and a shot of an accent. Let’s add white to the mix, because white is always good.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/97f07000-3580-4f9a-88ef-67bb2f09cc1f/09-color-scheme-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7aada511-1c7a-4818-8244-052ef7e4d91c/09-color-scheme-preview-opt.jpg" alt="Our color palette so far. Blue, red and white." /></a><figcaption>Our color palette so far — already, it’s shaping up. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/97f07000-3580-4f9a-88ef-67bb2f09cc1f/09-color-scheme-opt.jpg">View large version</a>)</figcaption></figure>

<p>All that’s missing now are some grays.</p>

<h3 id="adding-the-gray">Adding The Gray</h3>

<p>For most of my web projects, I find having two shades of gray to be infinitely useful — one dark, one light. You’ll use them a lot.</p>

<p>The dark is usually used for text, and the light for when you need subtle differentiation against all that white (usually for backgrounds).</p>

<p>You can choose your grays in one of two ways:</p>

<ul>
<li>You could use <a href="https://dribbble.com/colors/">Dribbble</a> and <a href="https://designspiration.net/">Designspiration</a> again to find a nice gray from your previous results that matches your base color. But usually it’s easier to type <code>blue website</code> in the search bar, which will show more grays in the results.</li>
<li>If you have Photoshop or the like, you could use <a href="https://dribbble.com/shots/166246-My-Secret-for-Color-Schemes">Erica Schoonmaker’s technique</a> to harmonize your grays with the base color.</li>
</ul>

<h3 id="creating-harmonious-grays">Creating Harmonious Grays</h3>

<p>To get our shiny new harmonious grays using Erica’s method, we’ll start by picking two default grays out of a hat. Then, follow these steps:</p>

<ol>
<li>Create two shapes and fill them with <code>#424242</code> and <code>#fafafa</code>.</li>
<li>Insert a color fill layer above your two shapes.</li>
<li>Change that fill to your base color (<code>#30c9e8</code>).</li>
<li>Set the blending mode to overlay, and bring the opacity right down to between 5 and 40% (in the example below, it’s set at 40%).</li>
<li>Use the color picker and copy your new values.</li>
</ol>


<figure class="video-embed-container">
  <div class="video-embed-container--wrapper"
	
  >
    <iframe class="video-embed-container--wrapper-iframe" src="https://player.vimeo.com/video/159766011"
        frameborder="0"
        allow="autoplay; fullscreen; picture-in-picture"
        allowfullscreen>
    </iframe>
	</div>
	
</figure>

<p></figure></p>

<p>I should point out that this method works exceptionally well when your overlay color is blue. For any other color, you will want to either bring the opacity right down to 5 to 10% or stick with your original grays.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ebaeb16b-44d3-45f3-bee7-6017c55e62a0/10-greys-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1db1475d-69e6-4cad-988b-4411a84a6012/10-greys-preview-opt.jpg" alt="Before and after of more harmonious grays" /></a><figcaption>Picking grays that harmonize with the base color is a small detail that makes a big difference. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ebaeb16b-44d3-45f3-bee7-6017c55e62a0/10-greys-opt.jpg">View large version</a>)</figcaption></figure>

<h2 id="voila-we-did-it">Voila! We Did It!</h2>

<p>Our color scheme is complete. I hope you feel proud, because I sure do. Here it is, in all its glory:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f1b7218f-941d-435f-968e-316740696cda/11-color-palette-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bc56243a-923c-464c-aac4-48ad5343cc47/11-color-palette-preview-opt.jpg" alt="Finished 5-color palette: blue, red, white, dark gray, light gray" /></a><figcaption>Our wonderful color scheme, ready to be applied. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f1b7218f-941d-435f-968e-316740696cda/11-color-palette-opt.jpg">View large version</a>)</figcaption></figure>

<h2 id="applying-your-color-scheme">Applying Your Color Scheme</h2>

<p>Now that we’ve got our color scheme, it’s time to apply it. This is a whole other article unto itself. But to give you an idea, here’s a mockup of a page design in grayscale and with the colors applied.</p>

<p><strong>Tip:</strong> If you struggle with color, a good trick is to <a href="https://www.smashingmagazine.com/2015/12/website-layout-tools-compared-flexbox-vs-susy/">create your website layout</a> in grayscale first. Figure out the hierarchy, and then experiment with the color later.</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7fb5efd1-fd6a-4829-a5f8-b0d4b4a03343/12-colour-in-practice-greyscale-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/9b4abedf-f9c9-4e10-acba-e5265b0aafa9/12-colour-in-practice-greyscale-preview-opt.jpg" alt="Grayscale image of website layout" /></a><figcaption>Laying out your website in grayscale will help you apply the color scheme. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7fb5efd1-fd6a-4829-a5f8-b0d4b4a03343/12-colour-in-practice-greyscale-opt.jpg">View large version</a>)</figcaption></figure>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ec081a0-8d41-481b-a825-089351957a5d/13-color-in-practice-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2bcb4a67-a635-4ced-9532-88104ac0ff68/13-color-in-practice-preview-opt.jpg" alt="Color palette applied to a website layout" /></a><figcaption>Our color scheme in action. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ec081a0-8d41-481b-a825-089351957a5d/13-color-in-practice-opt.jpg">View large version</a>)</figcaption></figure>

<p>As you can see, <strong>blue</strong> is the featured color here. It’s used on large areas and in the icons, too.</p>

<p>Our accent, <strong>red</strong>, stands out beautifully against the base color. This is used in very small areas, for buttons and in the icons. The <strong>less</strong> you use this color, the more it will <strong>stand out</strong>.</p>

<p>The <strong>dark gray</strong> is used for the text, logo and icon outlines. (Don’t skip putting the colors in your icons. It’s a small detail but makes a big difference.)</p>

<p>The <strong>white</strong> and <strong>light gray</strong> form the background. The light gray doesn’t have to be here at all, but I find it is another small detail that really makes a website look polished.</p>

<p>It is important to note than when using color and text you need to ensure that there is sufficient contrast between the background and the copy. This will help people with color blindness or low vision read the text on your website. There are many tools you can use to find colors that comply with the <a href="https://webaim.org/blog/wcag-2-0-and-link-colors/">WCAG Guidelines</a>. Two popular ones are the <a href="https://webaim.org/resources/contrastchecker/">WebAim Color Contrast Checker</a> and Contrast Ratio by <a href="https://lea.verou.me/">Lea Verou</a>.</p>

<h2 id="color-guide-final-note">Color Guide Final Note</h2>

<p>As you can see, we really don’t need much more than the palette we’ve created today. But that doesn’t mean you are limited to these colors, oh no!</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/579ddf0a-172b-4d24-a937-9d2941620edd/14-color-palette-extended-opt.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/14623bab-cc68-493f-80ea-cc0829006f71/14-color-palette-extended-preview-opt.jpg" alt="Extended version of our color palette" /></a><figcaption>Using the techniques above, you can extend your color palette to hold more colors as and when you need them. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/579ddf0a-172b-4d24-a937-9d2941620edd/14-color-palette-extended-opt.jpg">View large version</a>)</figcaption></figure>

<p>As you’re designing, you might decide it’s appropriate to introduce some more colors to your palette. That’s totally fine! As long as you’re attentive, you can use the steps above to find more colors that work with your scheme.</p>

<p>The beauty of this is that the more you do it, the better you’ll become at choosing colors. You’ll get to know what works together and what doesn’t. Sometimes, the method above will yield results that are less than desirable, so feel free to tweak things. Play around and have fun learning <a href="https://www.smashingmagazine.com/2010/01/color-theory-for-designers-part-1-the-meaning-of-color/">color theory</a> — without the theory!</p>

<div class="partners__lead-place"></div>

<h3 id="further-reading">Further Reading</h3>

<ul>
<li><a href="https://www.smashingmagazine.com/2012/10/the-code-side-of-color/">Hex Colors: The Code Side Of Color</a></li>
<li><a href="https://www.smashingmagazine.com/2017/01/underestimated-power-color-mobile-app-design/"><span class="headline">The Underestimated Power Of Color In Mobile App Design</span></a></li>
<li><span data-sheets-value="{&quot;1&quot;:2,&quot;2&quot;:&quot;Color Theory For Designers: Creating Your Own Color Palettes&quot;}" data-sheets-userformat="{&quot;2&quot;:268480,&quot;9&quot;:0,&quot;10&quot;:2,&quot;14&quot;:{&quot;1&quot;:2,&quot;2&quot;:1136076},&quot;15&quot;:&quot;Arial&quot;,&quot;21&quot;:1}"><a href="https://www.smashingmagazine.com/2010/02/color-theory-for-designer-part-3-creating-your-own-color-palettes/">Creating Your Own Color Palettes</a></span></li>
<li><a href="https://www.smashingmagazine.com/2010/02/color-theory-for-designers-part-2-understanding-concepts-and-terminology/">Understanding Color Concepts And Terminology</a></li>
</ul>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(rb, jb, ml, al, mrn)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Cathy O' Connor</author><title>Color Contrast And Why You Should Rethink It</title><link>https://www.smashingmagazine.com/2014/10/color-contrast-tips-and-tools-for-accessibility/</link><pubDate>Wed, 22 Oct 2014 21:07:33 +0000</pubDate><guid>https://www.smashingmagazine.com/2014/10/color-contrast-tips-and-tools-for-accessibility/</guid><description>If you browse your favorite website and close your eyes slightly so that your vision is a bit clouded by your eyelashes. Can you still see and use the website? Are you able to read the labels, fields, buttons, navigation and small footer text? Can you imagine how someone who sees differently would read and use it?
In this article, Cathy O&amp;rsquo; Connor shares one aspect of design accessibility: making sure that the look and feel (the visual design of the content) are sufficiently inclusive of differently sighted users.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2014/10/color-contrast-tips-and-tools-for-accessibility/" />
              <title>Color Contrast And Why You Should Rethink It</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>Color Contrast And Why You Should Rethink It</h1>
                  
                    
                    <address>Cathy O&#39; Connor</address>
                  
                  <time datetime="2014-10-22T21:07:33&#43;00:00" class="op-published">2014-10-22T21:07:33+00:00</time>
                  <time datetime="2014-10-22T21:07:33&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>When you browse your favorite website or check the latest version of your product on your device of choice, take a moment to look at it differently. Step back from the screen. Close your eyes slightly so that your vision is a bit clouded by your eyelashes.</p>

<ul>
<li>Can you still see and use the website?</li>
<li>Are you able to read the labels, fields, buttons, navigation and small footer text?</li>
<li>Can you imagine how someone who sees differently would read and use it?</li>
</ul>

<p>In this article, I’ll share one aspect of design accessibility: making sure that the look and feel (the visual design of the content) are sufficiently inclusive of differently sighted users.</p></p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="https://www.smashingconf.com/online-workshops/">Smashing Workshops</a></strong> on <strong>front-end, design &amp; UX</strong>, with practical takeaways, live sessions, <strong>video recordings</strong> and a friendly Q&amp;A. With Brad Frost, Stéph Walter and <a href="https://smashingconf.com/online-workshops/workshops">so many others</a>.</p>
<a data-instant href="smashing-workshops" class="btn btn--green btn--large" style="">Jump to the workshops&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="smashing-workshops" class="feature-panel-image-link">
<div class="feature-panel-image">
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="/images/smashing-cat/cat-scubadiving-panel.svg"
    alt="Feature Panel"
    width="257"
    height="355"
/>

</div>
</a>
</div>
</aside>
</div>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c227a6ed-392b-4159-8643-dc22f8b67618/nocoffeevis-large.png"><img loading="lazy" decoding="async" title="Color Contrast And Why You Should Rethink It" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7a065d5f-caf5-47de-8792-9ec972332d8a/nocoffeevis-500px.png" alt="Color Contrast And Why You Should Rethink It" width="500" height="255" /></a><figcaption>Web page viewed with NoCoffee low-vision simulation. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c227a6ed-392b-4159-8643-dc22f8b67618/nocoffeevis-large.png">View large version</a>)</figcaption></figure>

<p>I am a design consultant on PayPal’s accessibility team. I assess how our product designs measure up to the Web Content Accessibility Guidelines (WCAG) 2.0, and I review our company’s design patterns and best practices.</p>

<p>I created our “Designers’ Accessibility Checklist,” and I will cover one of the most impactful guidelines on the checklist in this article: making sure that there is sufficient color contrast for all content. I’ll share the strategies, tips and tools that I use to help our teams deliver designs that most people can see and use without having to customize the experiences.</p>

<p>Our goal is to make sure that all visual designs meet the minimum color-contrast ratio for normal and large text on a background, as described in the WCAG 2.0, Level AA, “<a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html">Contrast (Minimum): Understanding Success Criterion 1.4.3</a>.”</p>

<p>Who benefits from designs that have sufficient contrast? Quoting from the WCAG’s page:</p>

<blockquote>"The 4.5:1 ratio is used in this provision to account for the loss in contrast that results from moderately low visual acuity, congenital or acquired color deficiencies, or the loss of contrast sensitivity that typically accompanies aging."</blockquote>

<p>As an accessibility consultant, I’m often asked how many people with disabilities use our products. Website analytics do not reveal this information. Let’s estimate how many people could benefit from designs with sufficient color contrast by reviewing the statistics:</p>

<ul>
<li>15% of the <a href="https://www.who.int/mediacentre/factsheets/fs352/en/">world’s population have some form of disability</a>, which includes conditions that affect seeing, hearing, motor abilities and cognitive abilities.</li>
<li>About 4% of the population have low vision, whereas 0.6% are blind.</li>
<li>7 to 12% of men have some form of color-vision deficiency (color blindness), and less than 1% of women do.</li>
<li>Low-vision conditions increase with age, and half of people over the age of 50 have some degree of low-vision condition.</li>
<li>Worldwide, the fastest-growing population is 60 years of age and older.</li>
<li>Over the age of 40, most everyone will find that they need reading glasses or bifocals to clearly see small objects or text, a condition caused by the natural aging process, called <a href="https://www.mayoclinic.org/diseases-conditions/presbyopia/basics/causes/con-20032261">presbyopia</a>.</li>
</ul>

<p>Let’s estimate that 10% of the world population would benefit from designs that are easier to see. Multiply that by the number of customers or potential customers who use your website or application. For example, out of 2 million online customers, 200,000 would benefit.</p>

<p>Some <a href="https://www.nei.nih.gov/sites/default/files/nehep-pdfs/NEHEP_VisionAging_Infographic.pdf">age-related low-vision conditions</a> include the following:</p>

<ul>
<li><strong>Macular degeneration</strong>.  Up to 50% of people are affected by age-related vision loss.</li>
<li><strong>Diabetic retinopathy</strong>.  In people with diabetes, leaking blood vessels in the eyes can cloud vision and cause blind spots.</li>
<li><strong>Cataracts</strong>.  Cataracts clouds the lens of the eye and decreases visual acuity.</li>
<li><strong>Retinitis pigmentosa</strong>.  This inherited condition gradually causes a loss of vision.</li>
</ul>

<p>All of these conditions reduce sensitivity to contrast, and in some cases reduce the ability to distinguish colors.</p>

<p>Color-vision deficiencies, also called color-blindness, are mostly inherited and can be caused by side effects of medication and age-related low-vision conditions.</p>

<p>Here are the types of <a href="https://webaim.org/articles/visual/colorblind">color-vision deficiencies</a>:</p>

<ul>
<li><strong>Deuteranopia</strong>.  This is the most common and entails a reduced sensitivity to green light.</li>
<li><strong>Protanopia</strong>.  This is a reduced sensitivity to red light.</li>
<li><strong>Tritanopia</strong>.  This is a reduced sensitivity to blue light, but not very common.</li>
<li><strong>Achromatopsia</strong>.  People with this condition cannot see color at all, but it is not very common.</li>
</ul>

<p>Reds and greens or colors that contain red or green can be difficult to distinguish for people with deuteranopia or protanopia.</p></p>

<h2 id="experience-seeing-differently">Experience Seeing Differently</h2>

<p>Creating a checklist and asking your designers to use it is easy, but in practice how do you make sure everyone follows the guidelines? We’ve found it important for designers not only to intellectually understand the why, but to experience for themselves what it is like to see differently. I’ve used a couple of strategies: immersing designers in interactive experiences through our Accessibility Showcase, and showing what designs look like using software simulations.</p>

<p>In mid-2013, we opened our PayPal Accessibility Showcase (video). Employees get a chance to experience first-hand what it is like for people with disabilities to use our products by interacting with web pages using goggles and/or assistive technology. We require that everyone who develops products participates in a tour. The user scenarios for designing with sufficient color contrast include wearing goggles that simulate conditions of low or partial vision and color deficiencies. Visitors try out these experiences on a PC, Mac or tablet. For mobile experiences, visitors wear the goggles and use their own mobile devices.</p>

<p>Fun fact: One wall in the showcase was painted with magnetic paint. The wall contains posters, messages and concepts that we want people to remember. At the end of the tour, I demonstrate vision simulators on our tablet. I view the message wall with the simulators to emphasize the importance of sufficient color contrast.</p></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f3451b09-b08e-4251-a391-aaee5c32b31b/a11ytoursgoggles-500px.jpg" alt="Showcase visitors wear goggles that simulate low-vision and color-blindness conditions" /><figcaption>Showcase visitors wear goggles that simulate low-vision and color-blindness conditions.</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b4d3a187-9795-4f96-9344-251c33227f31/goggles-500px.jpg" alt="Some of the goggles used in the Accessibility Showcase" /><figcaption>Some of the goggles used in the Accessibility Showcase.</figcaption></figure>

<h2 id="software-simulators">Software Simulators</h2>

<h3 id="mobile-apps">Mobile Apps</h3>

<p>Free mobile apps are available for iOS and Android devices:</p>

<ul>
<li><strong>Chromatic Vision Simulator</strong>.  Kazunori Asada’s app simulates three forms of color deficiencies: protanope (protanopia), deuteranope (deuteranopia) and tritanope (tritanopia). You can view and then save simulations using the camera feature, which takes a screenshot in the app. (Available for <a href="https://itunes.apple.com/us/app/chromatic-vision-simulator/id389310222?mt=8" title="CVSimulator for Apple iOS">iOS</a> and <a href="https://play.google.com/store/apps/details?id=asada0.android.cvsimulator&amp;hl=en" title="CVSimulator for Android devices">Android</a>.)</li>
<li><strong>VisionSim</strong>.  The Braille Institute’s app simulates a variety of low-vision conditions and provides a list of causes and symptoms for each condition. You can view and then save simulations using the camera feature, which takes a screenshot in the app. (Available for <a href="https://itunes.apple.com/us/app/visionsim-by-braille-institute/id525114829?mt=8" title="VisionSim app forApple iOS devices">iOS</a> and Android.)</li>
</ul>

<h3 id="chromatic-vision-simulator">Chromatic Vision Simulator</h3>

<p>The following photos show orange and green buttons viewed through the Chromatic Vision Simulator:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/87b899bd-93e0-4ccb-8fb7-e7a9cc278afb/cvsbuttonsog-large.jpg"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6f465207-e220-441d-abdd-d03c92443838/cvsbuttonsog-500px.jpg" alt="Seen through Chromatic Vision Simulator, the green and orange buttons show normal (C), protanope (P), deuteranope (D) and tritanope (T)." width="500" height="375" /></a><figcaption>Seen through Chromatic Vision Simulator, the green and orange buttons show normal (C), protanope (P), deuteranope (D) and tritanope (T). (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/87b899bd-93e0-4ccb-8fb7-e7a9cc278afb/cvsbuttonsog-large.jpg">View large version</a>)</figcaption></figure>

<p>This example highlights the importance of another design accessibility guideline: Do not use color alone to convey meaning. If these buttons were online icons representing a system’s status (such as up or down), some people would have difficulty understanding it because there is no visible text and the shapes are the same. In this scenario, include visible text (i.e. text labels), as shown in the following example:</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55cd6d4d-d5e1-4143-9c2b-aaae6c482b99/textonbuttons-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/910aa786-f6cc-4e51-8c2b-d8591fc91630/textonbuttons-500px.png" alt="The green and orange buttons are viewed in Photoshop with deuteranopia soft proof and normal (text labels added)." /></a><figcaption>The green and orange buttons are viewed in Photoshop with deuteranopia soft proof and normal (text labels added). (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/55cd6d4d-d5e1-4143-9c2b-aaae6c482b99/textonbuttons-large.png">View large version</a>)</figcaption></figure>

<h3 id="mobile-device-simulations">Mobile Device Simulations</h3>

<p>Checking for sufficient color contrast becomes even more important on mobile devices. Viewing mobile applications through VisionSim or Chromatic Vision Simulator is easy if you have two mobile phones. View the mobile app that you want to test on the second phone running the simulator.</p>

<p>If you only have one mobile device, you can do the following:</p>

<ol>
<li>Take screenshots of the mobile app on the device using the built-in camera.</li>
<li>Save the screenshots to a laptop or desktop.</li>
<li>Open and view the screenshots on the laptop, and use the simulators on the mobile device to view and save the simulations.</p></li>
</ol>

<h3 id="how-s-the-weather-in-cupertino">How’s The Weather In Cupertino?</h3>

<p>The following example highlights the challenges of using a photograph as a background while making essential information easy to see. Notice that the large text and bold text are easier to see than the small text and small icons.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b6f7ab1-8b4b-4fdd-bd74-b42073620f33/weathercvs-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2e2c6c7c-52b3-45ac-b4b8-5d2a90437c22/weathercvs-500px.png" alt="The Weather mobile app, viewed with Chromatic Vision Simulator, shows normal, deuteranope, protanope and tritanope simulations." /></a><figcaption>The Weather mobile app, viewed with Chromatic Vision Simulator, shows normal, deuteranope, protanope and tritanope simulations. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b6f7ab1-8b4b-4fdd-bd74-b42073620f33/weathercvs-large.png">View large version</a>)</figcaption></figure>

<h3 id="low-vision-simulations">Low-Vision Simulations</h3>

<p>Using the VisionSim app, you can simulate macular degeneration, diabetic retinopathy, retinitis pigmentosa and cataracts.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2463e545-f45e-4580-97c4-164e54679c92/weathervisionsim-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ee17a407-deb1-47b8-8f03-b46e9a8b2a64/weathervisionsim-500px.png" alt="The Weather mobile app is being viewed with the supported condition simulations." /></a><figcaption>The Weather mobile app is being viewed with the supported condition simulations. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2463e545-f45e-4580-97c4-164e54679c92/weathervisionsim-large.png">View large version</a>)</figcaption></figure>

<h2 id="adobe-photoshop">Adobe Photoshop</h2>

<p>PayPal’s teams use Adobe Photoshop to design the look and feel of our user experiences. To date, a color-contrast ratio checker or tester is not built into Photoshop. But designers can use a couple of helpful features in Photoshop to check their designs for sufficient color contrast:</p>

<ul>
<li>Convert designs to grayscale by going to “Select View” → “Image” → “Adjustments” → “Grayscale.”</li>
<li>Simulate color blindness conditions by going to “Select View” → “Proof Setup” → “Color Blindness” and choosing protanopia type or deuteranopia type. Adobe provides soft-proofs for color blindness.</p></li>
</ul>

<h3 id="examples">Examples</h3>

<p>If you’re designing with gradient backgrounds, verify that the color-contrast ratio passes for the text color and background color on both the lightest and darkest part of the gradient covered by the content or text.</p>

<p>In the following example of buttons, the first button has white text on a background with an orange gradient, which does not meet the minimum color-contrast ratio. A couple of suggested improvements are shown:</p>

<ul>
<li>add a drop-shadow color that passes (center button),</li>
<li>change the text to a color that passes (third button).</li>
</ul>

<p>Checking in Photoshop with the grayscale and deuteranopia proof, the modified versions with the drop shadow and dark text are easier to read than the white text.</p>

<p>If you design in sizes larger than actual production sizes, make sure to check how the design will appear in the actual web page or mobile device.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/26608601-7d3c-4864-bf3e-df41652d0a3b/buttongradients-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b7cd71e7-c1b6-4b45-a350-f22295176db2/buttongradients-500px.png" alt="Button with gradients: normal view; view in grayscale; and as a proof, deuteranopia." /></a><figcaption>Button with gradients: normal view; view in grayscale; and as a proof, deuteranopia. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/26608601-7d3c-4864-bf3e-df41652d0a3b/buttongradients-large.png">View large version</a>)</figcaption></figure>

<p>In the following example of a form, the body text and link text pass the minimum color-contrast ratio for both the white and the gray background. I advise teams to always check the color contrast of text and links against all background colors that are part of the experience.</p>

<p>Even though the “Sign Up” link passes, if we view the experience in grayscale or with proof deuteranopia, distinguishing that “Sign Up” is a link might be difficult. To improve the affordance of “Sign Up” as a link, underline the link or link the entire phrase, “New to PayPal? Sign Up.”</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/db7f349f-86c8-458d-8ac3-a8314215227a/logindev-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/716b601a-632d-40f7-8331-1b8bf1adaee7/logindev-500px.png" alt="Form example: normal view; in Photoshop, a view in grayscale; and as a proof, deuteranopia." /></a><figcaption>Form example: normal view; in Photoshop, a view in grayscale; and as a proof, deuteranopia. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/db7f349f-86c8-458d-8ac3-a8314215227a/logindev-large.png">View large version</a>)</figcaption></figure>

<p>Because red and green can be more difficult to distinguish for people with conditions such as deuteranopia and protanopia, should we avoid using them? Not necessarily. In the following example, a red minus sign (“-”) indicates purchasing or making a payment. Money received or refunded is indicated by a green plus sign (“+”). Viewing the design with proof, deuteranopia, the colors are not easy to distinguish, but the shapes are legible and unique. Next to the date, the description describes the type of payment. Both shape and content provide context for the information.</p>

<p>Also shown in this example, the rows for purchases and refunds alternate between white and light-gray backgrounds. If the same color text is used for both backgrounds, verify that all of the text colors pass for both white and gray backgrounds.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/62063dc4-245d-4028-9815-a72cd3c37be9/rowsandicons-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/be9d746d-7e6c-40d1-9ddc-92631f209f62/rowsandicons-500px.png" alt="Normal view and as a proof, deuteranopia: Check the text against the alternating background colors." /></a><figcaption>Normal view and as a proof, deuteranopia: Check the text against the alternating background colors. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/62063dc4-245d-4028-9815-a72cd3c37be9/rowsandicons-large.png">View large version</a>)</figcaption></figure>

<p>In some applications, form fields and/or buttons may be disabled until information has been entered by the user. Our design guidance does not require disabled elements to pass, in accordance with the WCAG 2.0’s “<a href="https://www.w3.org/TR/2014/NOTE-UNDERSTANDING-WCAG20-20140311/visual-audio-contrast-contrast.html">Contrast (Minimum): Understanding Success Criterion 1.4.3</a>:</p>

<blockquote>"Incidental: Text or images of text that are part of an inactive user interface component,… have no contrast requirement."</blockquote>

<p>In the following example of a mobile app’s form, the button is disabled until a phone number and PIN have been entered. The text labels for the fields are a very light gray over a white background, which does not pass the minimum color-contrast ratio.</p>

<p>If the customer interprets that form elements with low contrast are disabled, would they assume that the entire form is disabled?</p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4a789d3c-7c51-449f-8ea3-1cea7df67eca/mobiledisabledfields-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b01fe2b5-a975-41a2-a51c-c52c6623dbb4/mobiledisabledfields-500px.png" alt="Mobile app form showing disabled fields and button (left) and then enabled (right)." /></a><figcaption>Mobile app form showing disabled fields and button (left) and then enabled (right). (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4a789d3c-7c51-449f-8ea3-1cea7df67eca/mobiledisabledfields-large.png">View large version</a>)</figcaption></figure>

<p>The same mobile app form is shown in a size closer to what I see on my phone in the following example. At a minimum, the text color needs to be changed or darkened to pass the minimum color-contrast ratio for normal body text and to improve readability.</p>

<p>To help distinguish between labels in fields and user-entered information, try to explore alternative visual treatments of form fields. Consider reversing foreground and background colors or using different font styles for labels and for user-entered information.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e6a823a5-6deb-4b67-a6b0-94ec1e671462/mobiledisabledfields-bwcc-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1ade5f5c-730b-4b43-9cd5-37ae5d5d6265/mobiledisabledfields-bwcc-500px.png" alt="Mobile app form example: normal, grayscale and proof deuteranopia." /></a><figcaption>Mobile app form example: normal, grayscale and proof deuteranopia. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e6a823a5-6deb-4b67-a6b0-94ec1e671462/mobiledisabledfields-bwcc-large.png">View large version</a>)</figcaption></figure>

<div class="partners__lead-place"></div>

<h2 id="nocoffee-vision-simulator-for-chrome">NoCoffee Vision Simulator For Chrome</h2>

<p>NoCoffee Vision Simulator can be used to simulate color-vision deficiencies and low-vision conditions on any pages that are viewable in the Chrome browser. Using the “Color Deficiency” setting “achromatopsia,” you can view web pages in grayscale.</p>

<p>The following example shows the same photograph (featuring a call to action) viewed with some of the simulations available in NoCoffee. The message and call to action are separated from the background image by a practically opaque black container. This improves readability of the message and call to action. Testing the color contrast of the blue color in the headline against solid black passes for large text. Note that the link “Mobile” is not as easy to see because the blue does not pass the color-contrast standard for small body text. Possible improvements could be to change the link color to white and underline it, and/or make the entire phrase “Read more about Mobile” a link.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ca8ce9b6-dbbf-45da-9809-c1c5023cc10a/nocoffeecolorsim-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/13738bd6-9213-42e4-8978-4cdaada6e02f/nocoffeecolorsim-500px.png" alt="Simulating achromatopsia (no color), deuteranopia, protanopia using NoCoffee." /></a><figcaption>Simulating achromatopsia (no color), deuteranopia, protanopia using NoCoffee. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ca8ce9b6-dbbf-45da-9809-c1c5023cc10a/nocoffeecolorsim-large.png">View large version</a>)</figcaption></figure>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c67e6f14-28da-408f-9400-e5c9ec98e0dd/nocoffeevisionsims-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0806d9fe-7648-4490-a93b-e67980a212e7/nocoffeevisionsims-500px.png" alt="Simulating low visual acuity, diabetic retinopathy, macular degeneration and low visual acuity plus retinitus pigmentosa, using NoCoffee." /></a><figcaption>Simulating low visual acuity, diabetic retinopathy, macular degeneration and low visual acuity plus retinitus pigmentosa, using NoCoffee. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/c67e6f14-28da-408f-9400-e5c9ec98e0dd/nocoffeevisionsims-large.png">View large version</a>)</figcaption></figure>

<h2 id="using-simulators">Using Simulators</h2>

<p>Simulators are useful tools to visualize how a design might be viewed by people who are aging, have low-vision conditions or have color-vision deficiencies.</p>

<p>For design reviews, I use the simulators to mock up a design in grayscale, and I might use color-blindness filters to show designers possible problems with color contrast. Some of the questions I ask are:</p>

<ul>
<li>Is anything difficult to read?</li>
<li>Is the call to action easy to find and read?</li>
<li>Are links distinguishable from other content?</li>
</ul>

<p>After learning how to use simulators to build empathy and to see their designs differently, I ask designers to use tools to check color contrast to verify that all of their designs meet the minimum color-contrast ratio of the WCAG 2.0 AA. The checklist includes a couple of tools they can use to test their designs.</p></p>

<h2 id="color-contrast-ratio-checkers">Color-Contrast Ratio Checkers</h2>

<p>The tools we cite in the designers’ checklist are these:</p>

<ul>
<li><a href="https://webaim.org/resources/contrastchecker">WebAIM Color Contrast Checker</a>, a browser-based tool, tests color codes specified in hexadecimal values.</li>
<li>The Paciello Group’s Colour Contrast Checker, an application available for Macs or PCs, tests color codes specified in RGB values.</li>
</ul>

<p>There are many tools to check color contrast, including ones that check live products. I’ve kept the list short to make it easy for designers to know what to use and to allow for consistent test results.</p>

<p>Our goal is to meet the WCAG 2.0 AA color-contrast ratio, which is 4.5 to 1 for normal text and 3 to 1 for large text.</p>

<p>What are the minimum sizes for normal text and large text? The guidance provides recommendations on size ratios in the WCAG’s <a href="https://www.w3.org/TR/2014/NOTE-UNDERSTANDING-WCAG20-20140311/visual-audio-contrast-contrast.html">Contrast (Minimum): Understanding Success Criterion 1.4.3</a> but not a rule for a minimum size for body text. As noted in the WCAG’s guidance, thin decorative fonts might need to be larger and/or bold.</p></p>

<h3 id="testing-color-contrast-ratio">Testing Color-Contrast Ratio</h3>

<p>You should test:</p>

<ul>
<li>early in the design process;</li>
<li>when creating a visual design specification for any product or service (this documents all of the color codes and the look and feel of the user experience);</li>
<li>all new designs that are not part of an existing visual design guideline.</p></li>
</ul>

<h3 id="test-hexadecimal-color-codes-for-web-designs">Test Hexadecimal Color Codes For Web Designs</h3>

<p>Let’s use the <a href="https://webaim.org/resources/contrastchecker">WebAIM Color Contrast Checker</a> to test sample body-text colors on a white background (<code>#FFFFFF</code>):</p>

<ul>
<li><span style="color: #333333;">dark-gray text (#333333)</span>.</li>
<li><span style="color: #666666;">medium-gray text (#666666)</span>.</li>
<li>light-gray text (#999999).</li>
</ul>

<p>We want to make sure that body and normal text passes the WCAG 2.0 AA. Note that light gray (<code>#999999</code>) does not pass on a white background (<code>#FFFFFF</code>).</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/04dd8c22-b378-4afc-8641-4952bfe9c924/colorcontrastgrays-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/32723229-8e38-4109-b02e-4d1b467ee355/colorcontrastgrays-500px.png" alt="Test dark-gray, medium-gray and light-gray using the WebAim Color Contrast Checker." /></a><figcaption>Test dark-gray, medium-gray and light-gray using the WebAim Color Contrast Checker.(<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/04dd8c22-b378-4afc-8641-4952bfe9c924/colorcontrastgrays-large.png">View large version</a>)</figcaption></figure>

<p>In the tool, you can modify the light gray (<code>#999999</code>) to find a color that does pass the AA. Select the “Darken” option to slightly change the color until it passes. By clicking the color field, you will have more options, and you can change color and luminosity, as shown in the second part of this example.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d3d7b057-4cfa-42ad-9582-d2196eeddfa0/modifylightgray-large.png"><img title="Modify colors to pass" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/142f0e4f-1de1-4ccf-8fb7-717e74dd2efb/modifylightgray-500px.png" alt="Modify colors to pass" /></a><figcaption>In the WebAim Color Contrast Checker, modify the light gray using the “Darken” option, or use the color palette to find a color that passes. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d3d7b057-4cfa-42ad-9582-d2196eeddfa0/modifylightgray-large.png">View large version</a>)</figcaption></figure>

<p>Tabular information may be designed with alternating white and gray backgrounds to improve readability. Let’s test medium-gray text (<code>#666666</code>) and light-gray text (<code>#757575</code>) on a gray background (<code>#E6E6E6</code>).</p>

<p>Note that with the same background, the medium text passes, but the lighter gray passes only for large text. In this case, use medium gray for body text instead of white or gray backgrounds. Use the lighter gray only for large text, such as headings on white and gray backgrounds.</p></p>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/24b5f43d-8956-4a62-9115-3a5dafd2798b/gray-graybackground-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6d2efbac-a94d-4cbb-aef4-10d2ae0040f7/gray-graybackground-500px.png" alt="Color Contrast Checker - Test light-gray and medium-gray text on a gray background." width="1156" height="478" /></a><figcaption>Test light-gray and medium-gray text on a gray background. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/24b5f43d-8956-4a62-9115-3a5dafd2798b/gray-graybackground-large.png">View large version</a>)</figcaption></figure>

<h3 id="test-rgb-color-codes">Test RGB Color Codes</h3>

<p>For mobile applications, designers might use RGB color codes to specify visual designs for engineering. You can use the TPG Colour Contrast Checker. you will need to install either the PC or Mac version and run it side by side with Photoshop.</p>

<p>Let’s use the Colour Contrast Checker to test medium-gray text (<code>102 102 102</code> in RGB and <code>#666666</code> in hexadecimal) and light-gray text (<code>#757575</code> in hexadecimal) on a gray background (<code>230 230 230</code> in RGB and <code>#E6E6E6</code> in hexadecimal).</p>

<ol>
<li>Open the Colour Contrast Checker application.</li>
<li>Select “Options” → “Displayed Color Values” → “RGB.”</li>
<li>Under “Algorithm,” select “Luminosity.”</li>
<li>Enter the foreground and background colors in RGB: <code>102 102 102</code> for foreground and <code>230 230 230</code> for background. Mouse click or tab past the fields to view the results. Note that this combination passes for both text and large text (AA).</li>
<li>Select “Show details” to view the hexadecimal color values and information about both AA and AAA requirements.</p></li>
</ol>

<figure><a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/73d13f7e-3914-4d69-b24c-a7b7cc4fe745/ccanalysercolorwheel-large.png"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4df949cc-dc2f-4f33-a3e1-5b2d1dc3f412/ccanalysercolorwheel-500px.png" alt="Colour Contrast Analyser, and color wheel to modify colors" /></a><figcaption>Colour Contrast Analyser, and color wheel to modify colors. (<a href="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/73d13f7e-3914-4d69-b24c-a7b7cc4fe745/ccanalysercolorwheel-large.png">View large version</a>)</figcaption></figure>

<p>In our example, light-gray text (<code>117 117 117</code> in RGB) on a gray background (<code>230 230 230</code> in RGB) does not meet the minimum AA contrast ratio for body text. To modify the colors, view the color wheels by clicking in the “Color” select box to modify the foreground or background. Or you can select “Options” → “Show Color Sliders,” as shown in the example.</p></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/12cd6cb6-c90c-48f6-8511-6b8e7c605ec5/ccanalysersliders-500px.png" alt="Colour Contrast Analyser, with RGB codes. Show color sliders to modify any color that does not meet minimum AA guidelines." /><figcaption>Colour Contrast Analyser, with RGB codes. Show color sliders to modify any color that does not meet minimum AA guidelines.</figcaption></figure>

<p>In most cases, minor adjustments to colors will meet the minimum contrast ratio, and comparisons before and after will show how better contrast enables most people to see and read more easily.</p></p>

<h2 id="best-practices">Best Practices</h2>

<p>Test for color-contrast ratio, and document the styles and color codes used for all design elements. Create a visual design specification that includes the following:</p>

<ul>
<li>typography for all textual elements, including headings, text links, body text and formatted text;</li>
<li>icons and glyphs and text equivalents;</li>
<li>form elements, buttons, validation and system error messaging;</li>
<li>background color and container styles (making sure text on these backgrounds all pass);</li>
<li>the visual treatments for disabled links, form elements and buttons (which do not need to pass a minimum color-contrast ratio).</li>
</ul>

<p>Documenting visual guidelines for developers brings several benefits:</p>

<ul>
<li>Developers don’t have to guess what the designers want.</li>
<li>Designs can be verified against the visual design specification during quality testing cycles, by engineers and designers.</li>
<li>A reference point that meets design accessibility guidelines for color contrast can be shared and leveraged by other teams.</p></li>
</ul>

<h2 id="summary">Summary</h2>

<p>If you are a designer, try out the simulators and tools on your next design project. Take time to see differently. One of the stellar designers who reviewed my checklist told me a story about using Photoshop’s color-blindness proofs. On his own, he used the proofs to refine the colors used in a design for his company’s product. When the redesigned product was released, his CEO thanked him because it was the first time he was able to see the design. The CEO shared that he was color-blind. In many cases, you may be unaware that your colleague, leader or customers have moderate low-vision or color-vision deficiencies. If meeting the minimum color-contrast ratio for a particular design element is difficult, take the challenge of thinking beyond color. Can you innovate so that most people can pick up and use your application without having to customize it?</p>

<p>If you are responsible for encouraging teams to build more accessible web or mobile experiences, be prepared to use multiple strategies:</p>

<ul>
<li>Use immersive experiences to engage design teams and gain empathy for people who see differently.</li>
<li>Show designers how their designs might look using simulators.</li>
<li>Test designs that have low contrast, and show how slight modifications to colors can make a difference.</li>
<li>Encourage designers to test, and document visual specifications early and often.</li>
<li>Incorporate accessible design practices into reusable patterns and templates both in the code and the design.</li>
</ul>

<p>Priorities and deadlines make it challenging for teams to deliver on all requests from multiple stakeholders. Be patient and persistent, and continue to engage with teams to find strategies to deliver user experiences that are easier to see and use by more people out of the box.</p></p>

<h2 id="references">References</h2>

<ul>
<li>“<a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html">Contrast (Minimum): Understanding Success Criterion 1.4.3</a>” and <a href="https://www.w3.org/TR/2014/NOTE-UNDERSTANDING-WCAG20-20140311/visual-audio-contrast-contrast.html">the note</a>, Web Content Accessibility Guidelines 2.0, Level AA</li>
<li>“<a href="https://www.paypal-engineering.com/2014/03/13/get-a-sneak-peek-into-paypal-accessibility-showcase/">Get a Sneak Peek Into PayPal Accessibility Showcase</a>,” Victor Tsaran and Cathy O’Connor, PayPal Engineering</li>
<li>“Adobe Photoshop” Accessibility,” Adobe</li>
<li>“Soft-Proof for Color Blindness (Photoshop and Illustrator),” Adobe</li>
<li><a href="https://webaim.org" title="Web Accessibility in Mind, WebAIM">Web Accessibility in Mind</a> (WebAIM)

<ul>
<li><a href="https://webaim.org/resources/contrastchecker/">Web-based Color Contrast Checker</a> (web-based)</li>
<li><a href="https://wave.webaim.org">Web Accessibility Evaluation Tool</a> (WAVE)</li>
<li>“<a href="https://webaim.org/articles/visual/colorblind">Visual Disabilities: Color-Blindness</a>”</li>
</ul></li>
<li><a href="https://www.paciellogroup.com/resources/contrastAnalyser/">TPG Colour Contrast Analyser</a> (for Mac and PC), The Paciello Group</li>
<li>Color Vision Simulator for <a href="https://itunes.apple.com/us/app/chromatic-vision-simulator/id389310222?mt=8" title="CVSimulator for Apple iOS">iOS</a> and <a href="https://play.google.com/store/apps/details?id=asada0.android.cvsimulator&amp;hl=en" title="CVSimulator for Android devices">Android</a>, Kazunori Asada</li>
<li>VisionSim for <a href="https://itunes.apple.com/us/app/visionsim-by-braille-institute/id525114829?mt=8" title="VisionSim app forApple iOS devices">iOS</a> and Android, The Braille Institute</li>
<li>“NoCoffee Vision Simulator, Aaron Leventhal (see <a href="https://accessgarage.wordpress.com/2013/02/09/458/" title="About No Coffee Vision Simulator for Chrome">Levanthal’s blog post about it</a>)</li>
<li>“<a href="https://www.nei.nih.gov/sites/default/files/nehep-pdfs/NEHEP_VisionAging_Infographic.pdf">Age-Related Eye Diseases</a>,” National Eye Institute</li>
<li>“<a href="https://www.who.int/mediacentre/factsheets/fs352/en/">Disability and Health</a>,” World Health Organization</li>
<li>“<a href="https://www.mayoclinic.org/diseases-conditions/presbyopia/basics/causes/con-20032261">Presbyopia</a>,” Mayo Clinic</li>
<li>“<a href="https://www.un.org/development/desa/pd/sites/www.un.org.development.desa.pd/files/files/documents/2021/Nov/undesa_pd_2002_wpa_1950-2050_web.pdf">World Population Ageing: 1950–2050</a>,” UN Department of Economic and Social Affairs</li>
</ul>

<h3 id="low-vision-goggles-and-resources">Low-Vision Goggles And Resources</h3>

<ul>
<li><a href="https://www.lowvisionsimulationkit.com">Zimmerman Low Vision Simulation Kit</a></li>
<li><a href="https://www.lowvisionsimulators.com/find-the-right-low-vision-simulator">Low Vision Simulators</a>, Fork In the Road</li>
</ul>

<div class="partners__lead-place"></div>

<h3 id="further-reading">Further Reading</h3>

<ul>
<li><a href="https://www.smashingmagazine.com/2017/01/underestimated-power-color-mobile-app-design/"><span class="headline">The Underestimated Power Of Color In Mobile App Design</span></a></li>
<li><a href="https://www.smashingmagazine.com/2010/01/color-theory-for-designers-part-1-the-meaning-of-color/">Color Theory for Designers, Part 1: The Meaning of Color</a></li>
<li><a href="https://www.smashingmagazine.com/2012/10/the-code-side-of-color/"><span class="headline">The Code Side Of Color</span></a></li>
<li><a href="https://www.smashingmagazine.com/2014/07/the-wai-forward/">The WAI Forward</a></li>
<li><a href="https://www.smashingmagazine.com/2009/12/50-beautiful-watercolor-paintings/">The Beauty Of Watercolor Painting In 43 Examples</a></li>
</ul>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(hp, al, il, ml, mrn)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Ben Gremillion</author><title>Hex Color – The Code Side Of Color</title><link>https://www.smashingmagazine.com/2012/10/the-code-side-of-color/</link><pubDate>Thu, 04 Oct 2012 11:59:33 +0000</pubDate><guid>https://www.smashingmagazine.com/2012/10/the-code-side-of-color/</guid><description>Name a color, and you’re most likely to give a misleading impression. But, when computers name a color, they use a so-called hexadecimal code that most humans gloss over: 24-bit colors. Don’t let the code intimidate you. With a little creativity, hex colors are a tool at your disposal.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2012/10/the-code-side-of-color/" />
              <title>Hex Color – The Code Side Of Color</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>Hex Color – The Code Side Of Color</h1>
                  
                    
                    <address>Ben Gremillion</address>
                  
                  <time datetime="2012-10-04T11:59:33&#43;00:00" class="op-published">2012-10-04T11:59:33+00:00</time>
                  <time datetime="2012-10-04T11:59:33&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>The trouble with a color’s name is that it never really is perceived as the exact same color to two different individuals — especially if they have a stake in a website’s emotional impact. Name a color, and you’re most likely to give a misleading impression. Even something like “blue” is uncertain. To be more precise, it could be “sky blue”, “ocean blue”, “jeans blue” or even “arc welder blue”.</p>

<figure><img src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/cbede5e0-6659-47bc-9e45-9daec8194aa5/hex-changing-tens-500.png" alt="Hex Color – The Code Side Of Color" /><figcaption>Hex Color.</figcaption></figure>

<p>Descriptions vary with personal taste and in context with other colors. We label them “indigo”, “jade”, “olive”, “tangerine”, “scarlet” or “cabaret”. What exactly is “electric lime”? Names and precise shades vary — unless you’re a computer.</p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="/printed-books/image-optimization/">Image Optimization</a></strong>, Addy Osmani’s new practical guide to optimizing and delivering <strong>high-quality images</strong> on the web. Everything in one single <strong>528-pages</strong> book.</p>
<a data-instant href="https://www.smashingmagazine.com/printed-books/image-optimization/" class="btn btn--green btn--large" style="">Jump to table of contents&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="https://www.smashingmagazine.com/printed-books/image-optimization/" class="feature-panel-image-link">
<div class="feature-panel-image"><picture><source type="image/avif" srcSet="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2c669cf1-c6ef-4c87-9901-018b04f7871f/image-optimization-shop-cover-opt.avif" />
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/87fd0cfa-692e-459c-b2f3-15209a1f6aa7/image-optimization-shop-cover-opt.png"
    alt="Feature Panel"
    width="480"
    height="697"
/>
</picture>
</div>
</a>
</div>
</aside>
</div>

<h2 id="code-demands-precision">Code Demands Precision</h2>

<p>When computers name a color, they use a so-called <em>hexadecimal code</em> that most humans gloss over: 24-bit colors. That is, 16,777,216 unique combinations of exactly six characters made from ten numerals and six letters — preceded by a hash mark. Like any computer language, there’s a logical system at play. Designers who understand how hex colors work can treat them as tools rather than mysteries.</p>

<h3 id="breaking-hexadecimals-into-manageable-bytes">Breaking Hexadecimals Into Manageable Bytes</h3>

<p>Pixels on back-lit screens are dark until lit by combinations of red, green, and blue. Hex numbers represent these combinations with a concise code. That code is easily broken. To make sense of <code>#970515</code>, we need to look at its structure:</p>

<p>The first character <code>#</code> declares that this “is a hex number.” The other six are really three sets of pairs: <code>0–9</code> and <code>a–f</code>. Each pair controls one primary additive color.</p>

<figure><img loading="lazy" decoding="async" class="106588 size-full" title="Hex Reading" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1b1da505-6def-42a1-8dbf-90e83e2b1ff8/hex-reading.png" alt="hex color reading" width="500" height="132" /><figcaption>The higher the numbers are, the brighter each primary color is. In the example above, 97 overwhelms the red color, 05 the green color and 15 the blue color.</figcaption></figure>

<p>Each pair can only hold two characters, but <code>#999999</code> is only medium gray. To reach colors brighter than <code>99</code> with only two characters, each of the hex numbers use letters to represent <code>10–16</code>. <code>A</code>, <code>B</code>, <code>C</code>, <code>D</code>, <code>E</code>, and <code>F</code> after <code>0–9</code> makes an even <code>16</code>, not unlike jacks, queens, kings and aces in cards.</p>

<figure><img loading="lazy" decoding="async" class="122394" title="Hex Chart" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/13833a53-cfc5-4775-8f97-ef0e569dcd71/hex-chart-2.png" alt="Diagram showing how hex colors pass above 0-9" width="500" height="470" /></figure>

<p>Being mathematical, computer-friendly codes, <strong>hex numbers are strings full of patterns</strong>. For example, because <code>00</code> is a lack of primary and <code>ff</code> is the primary at full strength, <code>#000000</code> is black (no primaries) and <code>#ffffff</code> is white (all primaries). We can build on these to find additive and subtractive colors. Starting with black, change each pair to <code>ff</code>:</p>

<ul>
<li><code>#000000</code> is black, the starting point.</li>
<li><code>#**ff**0000</code> stands for the brightest red.</li>
<li><code>#00**ff**00</code> stands for the brightest green.</li>
<li><code>#0000**ff**</code> stands for the brightest blue.</li>
</ul>

<p>Subtractive colors start with white, i.e. with the help of <code>#ffffff</code>. To find subtractive primaries, change each pair to <code>00</code>:</p>

<ul>
<li><code>#ffffff</code> is white, the starting point.</li>
<li><code>#**00**ffff</code> stands for the brightest cyan.</li>
<li><code>#ff**00**ff</code> stands for the brightest magenta.</li>
<li><code>#ffff**00**</code> stands for the brightest yellow.</li>
</ul>

<figure><img loading="lazy" decoding="async" class="122393" title="Mixing Additive Colors to Make Subtractives" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5b51d8f7-d035-4a89-b59b-ad0dab49de32/hex-additive-and-subtractive.png" alt="Mixing additive colors to make subtractives" width="500" height="447" /></figure>

<h3 id="shortcuts-in-hex">Shortcuts In Hex</h3>

<p>Hex numbers that use only three characters, such as <code>#fae</code>, imply that each <a href="https://www.mathsisfun.com/hexadecimals.html">ones place</a> should match the sixteens place. Thus <code>#fae</code> expands to <code>#ffaaee</code> and <code>#09b</code> really means <code>#0099bb</code>. These shorthand codes provides brevity in code.</p>

<p>In most cases, one can read a hex number by ignoring every other character, because the difference between the sixteens place tells us more than the ones place. That is, it’s hard to see the difference between 41 and 42; easier to gauge is the difference between 41 and 51.</p>

<figure><img loading="lazy" decoding="async" class="122627" title="hex-first-digits" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3315e8f0-36e9-4fd4-9270-932c03670c6f/hex-first-digits-first-b.png" alt="Diagram emphasizing the first character in each pair of characters" width="500" height="142" /></figure>

<p>The example above has enough difference among its sixteens place to make the color easy to guess — lots of red, some blue, no green. This would provide us with a warm violet color. Tens in the second example (9, 9 and 8) are very similar. To judge this color, we need to examine the ones (7, 0, and 5). The closer a hex color’s sixteens places are, the more neutral (i.e. less saturated) it will be.</p>

<div class="partners__lead-place"></div>

<h2 id="make-hexadecimals-work-for-you">Make Hexadecimals Work For You</h2>

<p>Understanding hex colors lets designers do more than impress co-workers and clients by saying, “Ah, good shade of burgundy there.” Hex colors let designers tweak colors on the fly to improve legibility, identify elements by color in stylesheets, and develop color schemes in ways most image editors can’t.</p>

<h3 id="keep-shades-in-character">Keep Shades In Character</h3>

<p>To brighten or darken a color, one’s inclination is often to adjust its brightness. <strong>This makes a color run the gamut from murky to brilliant</strong>, but loses its character on either end of the scale. For example, below a middle green becomes decidedly black when reduced to 20% brightness. Raised to 100%, the once-neutral green gains vibrancy.</p>

<p>A funny thing happens when we treat hex colors as if they were increments of ten. By adding one to each of the left-hand character of each pair, we <em>raise</em> a color’s brightness while <em>lowering</em> its saturation. This prevents shades of a given color from wandering too closely to pitch black or brilliant neon. Altering hex pairs retains the essence of a color.</p>

<figure><img loading="lazy" decoding="async" class="106582" title="Changing Sixteens" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed4ae55f-9a93-448e-a0c2-2437143fad29/hex-changing-tens.png" alt="Diagram showing how hex affects brightness and saturation" width="500" height="464" /></figure>

<p>In the example above, the top set of shades appears to gain yellow or fall to black, even though it’s technically the same green hue. By changing its hex pairs, the second set appears to keep more natural shades.</p>

<h3 id="faded-underlines">Faded Underlines</h3>

<p>By default, browsers underline text to denote links. But thick underlines interfere with letters’ descenders. Designers can make underlines less obtrusive by scaling back hex colors. The idea is to make the tags closer to the background color, while the text itself gains contrast against the background.</p>

<ul>
<li>For dark text on a bright background, we make the links brighter.</li>
<li>For bright text on a dark background, we make the links darker.</li>
</ul>

<p>To make this work, every embedded link needs a &lt;<code>span</code>&gt; inside of every <a>:</p>

<p><code>a { text-decoration:underline;color:#aaaaff; }</code></p>

<p><code>a span { text-decoration:none;color:#0000ff; }</code></p>

<figure><img loading="lazy" decoding="async" class="106584" title="Descenders" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3f75ea98-2afd-4d52-92ce-9cade99e2aaa/hex-descenders.png" alt="Example of underlines that pale compared to the clickable text" width="500" height="400" /></figure>

<p>As you can see here, underlines in the same color as the text can interfere with parts of type that drop below the baseline. Changing the underline to resemble the background more closely makes descenders easier to read, even though most browsers place underlines above the letterforms.</p>

<p>Adding spans to every anchor tag can be problematic. A popular alternative is to remove underlines and add border-bottom:</p>

<p><code>a { text-decoration: none; border-bottom: 1px solid #aaaaff; }</code></p>

<h3 id="better-body-copy">Better Body Copy</h3>

<p>A recurring design problem is that a specific color may be technically correct but has an unintended effect. For example, some designs call for headers and body copy to be the same color. We have to keep in mind that the thicker the strokes of large text appears, the darker the small text appears.</p>

<figure><img loading="lazy" decoding="async" class="106594" title="The Text Is Too Bright" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3ad97013-7304-4963-92c2-6931e2e6c805/hex-text-too-light1.png" alt="Example of text that, while technically correct, appears too bright" width="500" height="134" /></figure>

<p><code>h1, p { color: #797979; }</code></p>

<figure><img loading="lazy" decoding="async" class="106593" title="The Text Is Improved" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1a6c64fb-29e5-42ad-80b3-c92df5a528b7/hex-text-improved1.png" alt="Example of text technically darker but visually the same" width="500" height="134" /></figure>

<p><code>h1 { color: #797979; }</code></p>

<p><code>p { color: #393939; }</code></p>

<p>While technically identical, the body of the copy is narrower, and more delicate letterforms make it visually brighter than the heading. Lowering the sixteens places will make the text easier to read.</p>

<h3 id="how-to-warm-up-or-cool-down-a-background">How To Warm Up Or Cool Down A Background</h3>

<p>Neutral backgrounds may be easy to read against, but “neutral” doesn’t have to mean “bland”. Adjusting the first and last byte can make a background subtly warmer or cooler.</p>

<figure><img loading="lazy" decoding="async" class="106585" title="Different Backgrounds-1" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d9e07385-f95f-4670-91e2-a5fd951c9d69/hex-different-backgrounds-1.png" alt="Examples with slight background color variations" width="500" height="106" /></figure>

<ul>
<li><code>#404040</code> — neutral</li>
<li><code>#504030</code> — warmer</li>
<li><code>#304050</code> — cooler</li>
</ul>

<p>Is that too much? For a more subtle shift, use the ones places instead:</p>

<figure><img loading="lazy" decoding="async" class="106586" title="More Subtle Background Shift" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f31e3630-be99-4359-9962-294bfe1b8847/hex-different-backgrounds-2.png" alt="Examples of very slight variations in background color" width="500" height="106" /></figure>

<ul>
<li><code>#404040</code> — neutral</li>
<li><code>#4f4040</code> — warmer</li>
<li><code>#40404f</code> — cooler</li>
</ul>

<h3 id="coordinate-colors-with-copy-paste">Coordinate Colors With Copy-Paste</h3>

<p>Recognizing the structure of a hex number’s number/letter pairs gives designers a unique tool to explore color combinations. Unlike color wheels and charts, rearranging pairs in a hex number is a simple process to change hues while keeping values similar. As a bonus, the results can be unpredictable. The simplest technique is to move one pair of characters to a different spot, which trades primary colors.</p>

<p>A common design technique to make text or other visual elements coordinate with a photo is to use colors from within that photo. <strong>Understanding hex colors can take that a step further</strong>, by deriving new colors that coordinate with the photo without taking directly from the photo.</p>

<figure><img loading="lazy" decoding="async" class="106591" title="Swap Triplets" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e32940fd-c01e-4ddb-b3f4-67c6c0be41e5/swap-triplets.png" alt="Examples of how swapping primary colors can yield coordinated but interesting results" width="500" height="390" /></figure>

<h2 id="going-forward">Going Forward</h2>

<p>Don’t let the code intimidate you. With a little creativity, hex colors are a tool at your disposal. If nothing else, next time someone asks if you can solve a problem with code in any language, you can simply say:</p>

<blockquote>“Shouldn’t be harder than parsing hexadecimal triplets in my head.”</blockquote>

<h2 id="hex-color-tools">Hex Color Tools</h2>

<p>You may be interested in the following tools and apps:</p>

<ul>
<li><a href="https://colorwaze.com">Color Supply</a></li>
<li><a href="https://brandcolors.net/">Brand Colors</a></li>
<li><a href="https://www.colorhexa.com/">Color Hexa</a></li>
<li><a href="https://paletton.com">Paletton</a></li>
<li><a href="https://coolors.co/">Coolors</a></li>
</ul>

<div class="partners__lead-place"></div>

<h3 id="further-reading">Further Reading</h3>

<ul>
<li><a href="https://www.smashingmagazine.com/2010/01/color-theory-for-designers-part-1-the-meaning-of-color/">Color Theory for Designers: The Meaning of Color</a></li>
<li><a href="https://www.smashingmagazine.com/2016/04/web-developer-guide-color/">A Simple Web Developer’s Guide To Color</a></li>
<li><a href="https://www.smashingmagazine.com/2010/02/color-theory-for-designers-part-2-understanding-concepts-and-terminology/">Understanding Color Concepts And Terminology</a></li>
<li><a href="https://www.smashingmagazine.com/2010/02/color-theory-for-designer-part-3-creating-your-own-color-palettes/">Creating Your Own Color Palettes</a></li>
</ul>

<div class="signature">
  <img src="https://www.smashingmagazine.com/images/logo/logo--red.png" alt="Smashing Editorial" width="35" height="46" loading="lazy" decoding="async" />
  <span>(il, mrn)</span>
</div>


              </article>
            </body>
          </html>
        ]]></content:encoded></item><item><author>Cameron Chapman</author><title>Color Theory for Designers, Part 3: How To Create Your Own Color Schemes</title><link>https://www.smashingmagazine.com/2010/02/color-theory-for-designer-part-3-creating-your-own-color-palettes/</link><pubDate>Mon, 08 Feb 2010 11:58:56 +0000</pubDate><guid>https://www.smashingmagazine.com/2010/02/color-theory-for-designer-part-3-creating-your-own-color-palettes/</guid><description>In the previous two parts of this series on color theory, we talked mostly about the &lt;a href="https://www.smashingmagazine.com/2010/01/28/color-theory-for-designers-part-1-the-meaning-of-color/">meanings behind colors&lt;/a> and &lt;a href="https://www.smashingmagazine.com/2010/02/02/color-theory-for-designers-part-2-understanding-concepts-and-terminology/">color terminology&lt;/a>.</description><content:encoded><![CDATA[
          <html>
            <head>
              <meta charset="utf-8">
              <link rel="canonical" href="https://www.smashingmagazine.com/2010/02/color-theory-for-designer-part-3-creating-your-own-color-palettes/" />
              <title>Color Theory for Designers, Part 3: How To Create Your Own Color Schemes</title>
            </head>
            <body>
              <article>
                <header>
                  <h1>Color Theory for Designers, Part 3: How To Create Your Own Color Schemes</h1>
                  
                    
                    <address>Cameron Chapman</address>
                  
                  <time datetime="2010-02-08T11:58:56&#43;00:00" class="op-published">2010-02-08T11:58:56+00:00</time>
                  <time datetime="2010-02-08T11:58:56&#43;00:00" class="op-modified">2025-10-14T04:02:41+00:00</time>
                </header>
                
                

<p>While this information is important, I&rsquo;m sure a lot of people were wondering when we were going to get into the nitty-gritty of actually creating some color schemes.</p>

<p>That&rsquo;s where Part 3 comes in. Here I&rsquo;ll be talking about <strong>methods for creating your own color schemes, from scratch</strong>. I&rsquo;ll cover the traditional color scheme patterns (monochrome, analogous, complementary, etc.) as well as how to create custom schemes that aren&rsquo;t based strictly on any one pattern. By the end of this article, you&rsquo;ll have the tools and skills to start creating beautiful color palettes for your own design projects. The best way to improve your skills is to practice, so why not set yourself a goal of creating a new color scheme every day?</p>

<h2 id="span-class-rh-further-reading-span-on-smashingmag"><span class="rh">Further Reading</span> on SmashingMag:</h2>

<ul>
<li><a href="https://www.smashingmagazine.com/2012/10/the-code-side-of-color/">Hex Color – The Code Side Of Color</a></li>
<li><a href="https://www.smashingmagazine.com/2016/04/web-developer-guide-color/">A Simple Web Developer’s Guide To Color</a></li>
<li><a href="https://www.smashingmagazine.com/2014/10/color-contrast-tips-and-tools-for-accessibility/">Everything About Color Contrast And Why You Should Rethink It</a></li>
</ul>

<h2 id="a-quick-review">A Quick Review</h2>

<p>Let&rsquo;s start with a quick review of what was covered in parts 1 and 2. In part 1, we talked about how all colors have inherent meanings, which can vary depending on the country or culture. These meanings have a direct impact on the way your visitors perceive your site, sometimes consciously and sometimes subconsciously. The colors you choose can work for or against the brand identity you&rsquo;re trying to create.</p>

<div data-audience="non-subscriber" data-remove="true" class="feature-panel-container">

<aside class="feature-panel" style="">
<div class="feature-panel-left-col">

<div class="feature-panel-description"><p>Meet <strong><a data-instant href="/printed-books/image-optimization/">Image Optimization</a></strong>, Addy Osmani’s new practical guide to optimizing and delivering <strong>high-quality images</strong> on the web. Everything in one single <strong>528-pages</strong> book.</p>
<a data-instant href="https://www.smashingmagazine.com/printed-books/image-optimization/" class="btn btn--green btn--large" style="">Jump to table of contents&nbsp;↬</a></div>
</div>
<div class="feature-panel-right-col"><a data-instant href="https://www.smashingmagazine.com/printed-books/image-optimization/" class="feature-panel-image-link">
<div class="feature-panel-image"><picture><source type="image/avif" srcSet="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/2c669cf1-c6ef-4c87-9901-018b04f7871f/image-optimization-shop-cover-opt.avif" />
<img
    loading="lazy"
    decoding="async"
    class="feature-panel-image-img"
    src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/87fd0cfa-692e-459c-b2f3-15209a1f6aa7/image-optimization-shop-cover-opt.png"
    alt="Feature Panel"
    width="480"
    height="697"
/>
</picture>
</div>
</a>
</div>
</aside>
</div>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a658eb37-aa69-4e0f-a1fc-3742d61e0da8/spices-opt.jpg" width="500" height="230" alt="Spices" /><figcaption></figcaption></figure>

<p>In <a href="https://www.smashingmagazine.com/2010/02/color-theory-for-designers-part-2-understanding-concepts-and-terminology/">part 2</a>, we covered color terminology: hue (what color something is, like blue or red); chroma (how pure a color is, the lack of white, black or gray added to it); saturation (the strength or weakness of a color); value (how light or dark a color is); tone (created by adding gray to a pure hue); shade (created by adding black to a pure hue); and tint (created by adding white to a hue). These are important terms to know as we move forward and create our own color schemes.</p></p>

<h2 id="traditional-color-scheme-types">Traditional Color Scheme Types</h2>

<p>There are a number of predefined color scheme standards that make creating new schemes easier, especially for beginners. Below are the traditional schemes, with a few examples for each.</p></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6bb3a1b0-fb0c-49bf-a9f1-f28b9e0c7a80/colorwheel-opt.png" width="500" height="500" alt="Color Wheel" /><figcaption>The basic, twelve-spoke color wheel is an important tool in creating color schemes.</figcaption></figure>

<h3 id="monochromatic">Monochromatic</h3>

<p>Monochromatic color schemes are made up of different tones, shades and tints within a specific hue. These are the simplest color schemes to create, as they&rsquo;re all taken from the same hue, making it harder to create a jarring or ugly scheme (though both are still possible).</p>

<p>Monochromatic schemes are easy to create, but can also be boring when done poorly. Adding in a strong neutral like white or black can help keep things interesting.</p>

<p><strong>Examples:</strong></p>

<p>Here are three examples of monochrome color schemes. For the most part with these schemes, the first color (if we look at this from left to right) would likely be used for headlines. The second color would be used for body text or possibly the background. The third color would likely be used for the background (or body text if color #2 was used as the background). And the last two colors would be used as accents or within graphics.</p></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8e261293-a410-45f6-ae14-eb834f4b19a3/monochromatic-blue-opt.png" width="500" height="150" alt="Monochrome color scheme blue" /></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ef4a6b56-8e79-47f0-9072-8beb5f25729f/monochromatic-pink-opt.png" width="500" height="150" alt="Monochrome color scheme pink" /></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/dbf202e2-8541-4f94-a344-546a61f48452/monochromatic-yellow-opt.png" width="500" height="150" alt="Monochrome color scheme yellow" /></figure>

<h3 id="analogous">Analogous</h3>

<p>Analogous color schemes are the next easiest to create. Analogous schemes are created by using three colors that are next to each other on the 12-spoke color wheel. Traditionally, analogous color schemes all have the same chroma level, but by using tones, shades, and tints we can add interest to these schemes and adapt them to our needs for designing websites.</p>

<p><strong>Examples:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b0168097-7cee-42c5-8e0a-816335ee8020/analogous-traditional.jpg" alt="analogous-traditional" width="500" height="150" /><figcaption>This is a traditional analogous color scheme, and while it's visually appealing, there isn't enough contrast between the colors for an effective website design.</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/84d8477e-9810-40f2-a16a-54ddf6d0ac77/analogous-modified.jpg" alt="analogous-modified" width="500" height="150" /><figcaption>Here's a color scheme with the same hues as the one above, but with the chroma adjusted to give more variety. It's now much more suitable for use in a website.</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3a1df646-f0a0-403f-8739-cb0e92e30ca5/analogous-tradpink.jpg" alt="analogous-tradpink" width="500" height="150" /><figcaption>Another example of a traditional analogous scheme.</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/366f5be1-37e0-498c-bcba-28ba1f146e07/analogous-modpink.jpg" alt="analogous-modpink" width="500" height="150" /><figcaption>And the above theme modified for use in a website design.</figcaption></figure>

<h3 id="complementary">Complementary</h3>

<p>Complementary schemes are created by combining colors from opposite sides of the color wheel. In their most basic form, these schemes consist of only two colors, but can easily be expanded using tones, tints, and shades.</p>

<p>A word of warning, though: using colors that are exact opposites with the same chroma and/or value right next to each other can be visually jarring (they&rsquo;ll appear to actually vibrate along their border in the most severe uses). This is best avoided (either by leaving negative space or by adding another, transitional color between them).</p>

<p><strong>Examples:</strong></p>

<figure><img loading="lazy" decoding="async" title="comp-purplegreen" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0274eb31-ec12-475e-82ac-74ade101b72e/comp-purplegreen.jpg" alt="comp-purplegreen" width="500" height="150" /><figcaption>A wide range of tints, shades, and tones makes this a very versatile color scheme.</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5c69385a-11e9-4cbd-87eb-41f49773a5d8/comp-redgreen.jpg" alt="comp-redgreen" width="500" height="150" /><figcaption>Another complementary color scheme with a wide range of chromas. Notice how placing the brighter red and green colors next to each other, a sort of “vibrating” quality is achieved on their edges. Be aware of this in your designs and make sure it’s done intentionally, if it all.</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5a0fbbfd-b4c0-428b-9e21-0a507b5a5b66/comp-orangeblue.jpg" alt="comp-orangeblue" width="500" height="150" /><figcaption>Don't forget that beige and brown are just tints and shades of orange.</figcaption></figure>

<h3 id="split-complementary">Split Complementary</h3>

<p>Split complementary schemes add more complexity than regular complementary schemes. In this scheme, instead of using colors that are opposites, you use colors on either side of the hue opposite your base hue.</p>

<p><strong>Examples:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/915abf57-060c-4a1d-b4cc-876822a1c170/split-yellowgreen.jpg" alt="split-yellowgreen" width="500" height="150" /><figcaption>A scheme where yellow-green is the base hue. It's important to have enough difference in chroma and value between the colors you select for this type of scheme.</figcaption></figure>

<figure><img loading="lazy" decoding="async" title="split-red" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/162dde4b-73c3-496f-8b2b-de3247bba30f/split-red.jpg" alt="split-red" width="500" height="150" /><figcaption>Another palette with a wide range of chromas.</figcaption></figure>

<h3 id="triadic">Triadic</h3>

<p>Triadic schemes are made up of hues equally spaced around the 12-spoke color wheel. This is one of the more diverse color schemes. They can be difficult to do well, but add a lot of visual interest to a design when they are.</p>

<p><strong>Examples:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4df42940-83d7-49a6-a351-37f7486f28cc/triad-berry.jpg" alt="triad-berry" width="500" height="150" /><figcaption>Using a very pale or dark version of one color in the triad, along with two shades/tones/tints of the other two colors makes the single color almost work as a neutral within the scheme.</figcaption></figure>

<figure><img loading="lazy" decoding="async" title="triad-red" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e306487f-066e-4f79-a8df-40913e6330ad/triad-red.jpg" alt="triad-red" width="500" height="150" /><figcaption>Alternately, using one very bright hue with paired muted hues makes the single bright hue stand out more.</figcaption></figure>

<h3 id="double-complementary-tetradic">Double-Complementary (Tetradic)</h3>

<p>Tetradic color schemes are probably the most difficult schemes to pull off effectively.</p>

<p><strong>Examples:</strong></p>

<figure><img loading="lazy" decoding="async" title="tetradic-red" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/836f9d62-5661-4661-b4c9-389f635838da/tetradic-red.jpg" alt="tetradic-red" width="500" height="150" /><figcaption>A rather unimpressive tetradic color scheme. The best way to use a scheme like this is to use one color as the primary color in a design and the others just as accents.</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/06e0b2ea-12ad-4310-8868-edf3beb23ad8/tetradic-pastel.jpg" alt="tetradic-pastel" width="500" height="150" /><figcaption>Tetradic color schemes can work well for creating color schemes with similar chromas and values. Just add a neutral (such as dark gray or black) for text and accents.</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5dcec7bb-c137-46c5-914e-8e767d63bb7b/tetradic-dark.jpg" alt="tetradic-dark" width="500" height="150" /><figcaption>It works just as well for darker color schemes.</figcaption></figure>

<h3 id="custom">Custom</h3>

<p>Custom color schemes are the hardest to create. Instead of following the predefined color schemes discussed above, a custom scheme isn&rsquo;t based on any formal rules. Keep in mind things like chroma, value, and saturation when creating these kinds of color schemes.</p>

<p><strong>Examples:</strong></p>

<figure><a href="https://kuler.adobe.com/#themeID/722376"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/13bf8986-e61f-434c-b6b2-8125149c19c7/industrygiant.jpg" alt="industrygiant" width="500" height="150" /></a><figcaption>The colors here all have similar chroma and saturation levels.</figcaption></figure>

<figure><a href="https://kuler.adobe.com/#themeID/706775"><img loading="lazy" decoding="async" class="26332" title="palisadespark" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/6a1e8f1a-b520-4e1f-9bb4-565e4699bcc2/palisadespark.jpg" alt="palisadespark" width="500" height="150" /></a><figcaption>Again, using colors with similar chroma and saturation is effective and creates a sense of cohesion across a color scheme.</figcaption></figure>

<figure><a href="https://kuler.adobe.com/#themeID/711794"><img loading="lazy" decoding="async" class="26290" title="50schristmas" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/436e0bde-0717-4d0c-ba77-823563621ff3/50schristmas.jpg" alt="50schristmas" width="500" height="150" /></a><figcaption>Using one color with a high chroma among other colors with lower chromas is another effective method (the higher chroma color wouldcan act as an accent).</figcaption></figure>

<h2 id="creating-a-color-scheme">Creating A Color Scheme</h2>

<p>Creating your own color schemes can be a bit intimidating. But it&rsquo;s not as complicated as many people think. And there are quite a few tricks you can employ to create great color palettes right from the start.</p></p>

<figure><a href="https://www.flickr.com/photos/josefstuefer/5681426/"><img loading="lazy" decoding="async" class="26303" title="danceofcolors" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/fa7e6283-d6d1-429f-9baa-d9019e798e45/danceofcolors.jpg" alt="danceofcolors" width="500" height="230" /></a></figure>

<p>We&rsquo;ve been over the different types of color schemes above. Now, let&rsquo;s try creating a few of our own. There are plenty of tools online that will help you create a color scheme, but let&rsquo;s forget about those for now and just use Photoshop.</p>

<p>Let’s try breaking away from the color scheme types already mentioned, and create some custom palettes (which is what a set of colors that don’t follow one of the predefined traditional patterns are technically called). While it’s important to know the ways that different colors interact and how traditional schemes are created, for most design projects you’ll likely create palettes that don’t strictly adhere to any predefined patterns.</p>

<p>So, for the purposes of our project here, we’ll create three color palettes each for two different websites. Our hypothetical clients are a fitness app and a high-end women’s subscription box service.</p>

<p>We’ll start with a basic monochromatic scheme, just to get a feel for each. While I mentioned that traditional color scheme patterns aren’t used as often in design, monochromatic color schemes are the exception to that rule. You’ll likely find yourself using monochromatic schemes on a fairly regular basis.</p></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5b889f9d-7f61-46e9-a8de-9676cd7bd0e6/subbox-mono-opt.png" width="500" height="133" alt="Monochromatic scheme, with light gray added in as a neutral" /></figure>

<p>For our subscription box site, here’s a traditional monochromatic scheme, with light gray added in as a neutral.</p></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8426b988-cf24-4c9a-9e11-ff9ce7254648/design-mono.jpg" width="500" height="150" alt="Color scheme made up of shades and tints of gray" /></figure>

<p>For our fitness app, we’ve gone with a color scheme made up of shades and tints of gray.</p></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/b43165d0-5743-4751-90ec-a7bbd15022f6/subbox-middle-opt.png" width="500" height="133" alt="Almost a split-complementary color scheme but with yellow and a muted red along with gray" /></figure>

<p>This is almost a split-complementary color scheme, but we’ve used yellow (which is complementary to purple) and a muted red along with gray.</p></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f418bf20-a324-4f1f-b901-c25ec26d5110/design-one.jpg" width="500" height="150" alt="Adding a couple shades of red to the gray color scheme adds a lot of visual interest and the potential for creating extra emphasis on certain parts within your designs." /></figure>

<p>Adding a couple shades of red to the gray color scheme adds a lot of visual interest and the potential for creating extra emphasis on certain parts within your designs.</p></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/96bf8563-62ca-4bef-a7db-ba73cc310bf8/subbox-final-opt.png" width="500" height="133" alt="We’ve gotten rid of the purple and yellow, and instead kept the muted red and added in some blues." /></figure>

<p>Sometimes your color palettes will grow and evolve as you add more colors. Here, we’ve gotten rid of the purple and yellow, and instead kept the muted red and added in some blues. It’s a cleaner, more modern palette that better fits the brand.</p></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/69cc4cb1-092d-4093-a477-c8279fddcacd/design-two.jpg" width="500" height="150" alt="While this color scheme at first glance looks like another standard gray and red palette, if you look more closely you’ll see that the grays are actually tones of blue." /></figure>

<p>While this color scheme at first glance looks like another standard gray and red palette, if you look more closely you’ll see that the grays are actually tones of blue. Blue and red make up two thirds of a tetradic color scheme, but work just fine together without yellow, especially when the red is kept pure but the blue is toned down to the point of almost being gray.</p></p>

<h3 id="why-shades-tones-and-tints-are-important">Why Shades, Tones, and Tints Are Important</h3>

<p>As you can see from the color schemes above, using tints, tones, and shades in your color schemes is vital. Pure hues all have similar values and saturation levels. This leads to a color scheme that is both overwhelming and boring at the same time.</p></p>

<figure><a href="https://www.flickr.com/photos/8078381@N03/2710142168/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/25b84233-6b8d-4e57-8ddd-4cc8bead7679/colorblotchedpaper.jpg" alt="colorblotchedpaper" width="500" height="230" /></a></figure>

<p>When you mix in tones, shades, and tints, you expand the basic 12-spoke color wheel into an infinite number of colors for use in your designs. One of the simplest ways to create a professional looking color scheme is to take a few tones, tints, and shades of a given color (avoiding the pure hue), and then add in another pure hue (or close to pure) that&rsquo;s at least three spaces away on the color wheel (part of a tetradic, triatic, or split-complementary color scheme) as an accent color. This adds visual interest to your color scheme while still retaining a sense of balance.</p></p>

<h3 id="adding-in-some-neutrals">Adding in Some Neutrals</h3>

<p>Neutrals are another important part of creating a color scheme. Gray, black, white, brown, tan, and off-white are generally considered neutral colors. Browns, tans, and off-whites tend to make color schemes feel warmer (as they&rsquo;re really all just tones, shades, and tints of orange and yellow). Gray will take on a warm or cool impression depending on surrounding colors. Black and white can also look either warm or cool depending on the surrounding colors.</p></p>

<figure><a href="https://www.flickr.com/photos/kellyhogaboom/3737547073/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/e4adbbcf-4167-43a8-a514-b5e4600a03e0/neutralcolors.jpg" alt="neutralcolors" width="500" height="230" /></a></figure>

<p>Black and white are the easiest neutrals to add into just about any color scheme. To add a bit more visual interest, though, considering using a very light or very dark shade of gray in place of white or black.</p>

<p>Adding browns, tans, and off-white hues are a bit trickier, but with some practice you&rsquo;ll find adding them gets easier. For browns, consider using a very dark, chocolate brown in place of black. A pale off-white can be used in place of white or light gray in many cases. And tan can be used in place of gray, as well (create a tone by adding some gray to make it even easier).</p></p>

<h3 id="using-photos-for-color-schemes">Using Photos for Color Schemes</h3>

<p>One of my personal favorite ways to create a color scheme is to use a photograph. There are automated tools online that can do this automatically for you (the Adobe Capture CC mobile app is one of them, and my personal favorite), or you can do it in Photoshop yourself.</p>

<p>Using Adobe Capture, you can upload an image or use your camera. This is great for times when you might be inspired by a physical object. You can also grab an image from your Creative Cloud account, the market, or Adobe Stock. If you’re stumped for what colors you want to use in a website design, try searching for related words on Adobe Stock. Sometimes this can result in finding color schemes that you might not have thought of on your own.</p>

<p>The great thing about Adobe Capture is that you can easily import your color palettes to Illustrator or Photoshop (or just view the hex codes to find the correct colors for any other program you’re using). Find a photo you like on Adobe Stock (or take one yourself), one that you think evokes the feeling of the design you want to create. I took this one:</p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/d28e83a6-5675-43c2-84d9-2695038c7c42/photo-color-scheme-1-opt.png" width="800" height="752" alt="Photo of an illuminated building." /></figure>

<p>Here’s the original color scheme that Capture gives us when using this image:</p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/1c86f928-dab3-4232-9aa4-50357c952188/photo-color-scheme-2-opt.png" width="750" height="1334" alt="The original color scheme that Capture gives us." /></figure>

<p>One of the coolest features Capture has for creating color schemes from images is their “Select a Mood” option (this is a carry-over from the old Adobe Kuler app). Included here are Colorful, Bright, Muted, Deep, and Dark. These are the schemes we get when using each of those moods with the same photo:</p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/25bb9977-6bc9-45f2-b0f4-1c05e608cb5a/photo-color-scheme-3-opt.png" width="750" height="1334" alt="The schemes we get when using each of those moods with the same photo." /></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/dfe97fed-4e78-4e24-a3a8-a8e61ff5f5a0/photo-color-scheme-4-opt.png" width="750" height="1334" alt="Colorful Mode" /><figcaption>Colorful</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7af11997-4e48-41d1-a847-e3b029762ae9/photo-color-scheme-5-opt.png" width="750" height="1334" alt="Bright Mode" /><figcaption>Bright</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/fa976f6e-8263-4f8a-ab8c-6bd333c66cd9/photo-color-scheme-6-opt.png" width="750" height="1334" alt="Muted Mode" /><figcaption>Muted</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3f7da7a1-1b3c-4f9e-ad7c-9a754314119d/photo-color-scheme-7-opt.png" width="750" height="1334" alt="Deep Mode" /><figcaption>Deep</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/23003086-839c-4643-bf27-a82195ca9eef/photo-color-scheme-8-opt.png" width="750" height="1334" alt="Dark Mode" /><figcaption>Dark</figcaption></figure>

<p>Let’s try another one, something more colorful this time. Here’s the original image we’ll work with:</p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/342484d3-ac61-4759-bd7e-8136314667c9/flower-scheme-1-opt.png" width="800" height="800" alt="Flower" /><figcaption></figcaption></figure>

<p>And here are the five color schemes that Capture gives us from this image:</p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/5ec81a05-1e65-4ab0-9e18-e84439cd7ca0/flower-scheme-2-opt.png" width="750" height="1334" alt="Colorful mode" /><figcaption>Colorful</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/57a8487f-d9fa-400c-9955-42773262d1db/flower-scheme-3-opt.png" width="750" height="1334" alt="Bright mode" /><figcaption>Bright</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3dcbe0fb-3c23-448a-8308-1512d9ea2ce6/flower-scheme-4-opt.png" width="750" height="1334" alt="Muted mode" /><figcaption>Muted</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/709910b4-27f4-42c6-ae94-b7852daad165/flower-scheme-5-opt.png" width="750" height="1334" alt="Deep mode" /><figcaption>Deep</figcaption></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ec54ba02-24a4-4709-bda8-be1c36ba5e85/flower-scheme-6-opt.png" width="750" height="1334" alt="Dark mode" /><figcaption>Dark</figcaption></figure>

<p>There are some great palette generator apps out there if Capture isn’t your thing, including the <a href="https://www.canva.com/color-palette/">Canva Color Palette Generator</a>, <a href="https://coolors.co/">Coolors</a> (which also has an Adobe add-on and an iOS app), and <a href="https://paletton.com/">Paletton</a>.</p></p>

<h3 id="the-easiest-color-schemes">The Easiest Color Schemes</h3>

<p>We&rsquo;ve touched on this a bit before, but adding a bright accent color into an otherwise-neutral palette is one of the easiest color schemes to create. It&rsquo;s also one of the most striking, visually. If you&rsquo;re unsure of your skills in regard to creating custom schemes, try starting out with these types of palettes.</p>

<p>Here are a few examples to give you an idea of what I&rsquo;m talking about:</p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/21ef4414-0ef1-4975-bbbd-a74bec02cad7/easiest-red.jpg" alt="easiest-red" width="500" height="150" /></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/24d1b692-1772-4255-8814-2105611cc3be/easiest-chartreuse.jpg" alt="easiest-chartreuse" width="500" height="150" /></figure>

<figure><img loading="lazy" decoding="async" title="easiest-pink" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8d7f73dd-3530-4d67-aa6b-8324d1062a21/easiest-pink.jpg" alt="easiest-pink" width="500" height="150" /></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/65dfda04-0d6e-4823-aa8f-9dc46ec777a6/easiest-lightblue.jpg" alt="easiest-lightblue" width="500" height="150" /></figure>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/28b72259-2695-4f89-8eed-0dee883ecb1c/easiest-blue.jpg" alt="easiest-blue" width="500" height="150" /><figcaption>You can see here how using browns instead of grays makes the entire scheme look warmer, even with the blue accent color.</figcaption></figure>

<p>You can use tones of any color instead of gray or brown in this type of scheme, just keep it very close to the gray end of the spectrum for the most fool-proof results. As a general rule, cool grays and pure grays are best for more modern designs. For traditional designs, warmer grays and browns often work better.</p></p>

<h3 id="how-many-colors">How Many Colors?</h3>

<p>You&rsquo;ll notice that throughout this post we&rsquo;ve used color schemes with five separate colors. Five is a good number that gives plenty of options for illustrating the concepts here, and it&rsquo;s a workable number in a design. But feel free to have more or fewer colors in your own schemes.</p></p>

<figure><a href="https://www.flickr.com/photos/nikonvscanon/3267138841/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a2b45361-5830-4299-835e-b7d3930ff8d6/coloredpencils.jpg" alt="coloredpencils" width="500" height="230" /></a></figure>

<p>A lot of websites might only use three colors in their designs. Others use only two. And some might use eight or ten (which is a lot trickier than using fewer colors). Experiment and use as many or as few colors as you need to for your design. But you may want to start with a palette of five colors, and then add or subtract as you see fit and as you progress through the design process.</p>

<p>The easiest way to add a color is to start with one of the predefined, traditional color schemes and then work out from there. That at least gives you a bit of direction as far as which other colors to consider.</p></p>

<h2 id="10-sites-with-great-color-schemes">10 Sites With Great Color Schemes</h2>

<p>To give you more inspiration, here are ten websites that have excellent color schemes. Some of the schemes below might look a bit odd at first glance but seeing how they&rsquo;re actually used shows the wide range of possibilities color schemes can present.</p></p>

<h3 id="big-top-https-bigtop-it"><a href="https://bigtop.it/">Big Top</a></h3>

<figure><a href="https://bigtop.it/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed249ea1-5011-45d9-8c1b-48529d3ce4ad/bigtop-opt.png" width="800" height="623" alt="Big Top" /></a></figure>

<p><strong>Scheme:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/13bcda08-0355-4aee-89a5-ea138ebfc123/bigtop-color-opt.png" width="800" height="148" alt="Color scheme Big Top" /></figure>

<h3 id="secret-key-https-www-secretkey-it"><a href="https://www.secretkey.it/">Secret Key</a></h3>

<figure><a href="https://www.secretkey.it/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/42079afd-3de1-48a2-a760-d976bcd48bb6/secretkey-opt.png" width="800" height="623" alt="Secret Key" /></a></figure>

<p><strong>Scheme:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/0fc0ec5d-74b6-454c-8301-77f6ec45bcbb/secretkey-color-opt.png" width="800" height="148" alt="Color scheme Secretkey" /></figure>

<h3 id="tcm-summer-under-the-stars-https-summer-tcm-com"><a href="https://summer.tcm.com/">TCM Summer Under The Stars</a></h3>

<figure><a href="https://summer.tcm.com/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/89e2db04-a1d4-4028-9d13-517be689a656/summerunderthestars-opt.png" width="800" height="623" alt="TCM Summer Under The Stars" /></a></figure>

<p><strong>Scheme:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/3a4e2c11-8d2e-4ee0-817d-f77aa8d434f4/summerunderthestars-color-opt.png" width="800" height="148" alt="Color scheme TCM Summer Under The Stars" /></figure>

<h3 id="like-there-is-no-tomorrow-https-www-like-there-is-no-tomorrow-com"><a href="https://www.like-there-is-no-tomorrow.com/">Like There Is No Tomorrow</a></h3>

<figure><a href="https://www.like-there-is-no-tomorrow.com/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7c6c3acf-0b24-4b47-a7f3-0b94ccf98460/likethereisnotomorrow-opt.png" width="800" height="623" alt="Like There Is No Tomorrow" /></a></figure>

<p><strong>Scheme:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/f46eaa5c-c2ba-4a5f-9098-81d307b4d1fa/likethereisnotomorrow-color-opt.png" width="800" height="148" alt="Color scheme Like There Is No Tomorrow" /></figure>

<h3 id="lorenzo-verzini-https-lorenzoverzini-com"><a href="https://lorenzoverzini.com/">Lorenzo Verzini</a></h3>

<figure><a href="https://lorenzoverzini.com/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/ed5f1be8-c1b7-45a8-814e-967fd8f0b024/lo-opt.png" width="800" height="623" alt="Lorenzo Verzini" /></a></figure>

<p><strong>Scheme:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/44c85f64-a490-4ebc-8611-ad0ed7962116/lo-color-opt.png" width="800" height="148" alt="Color scheme Lorenzo Verzini" /></figure>

<h3 id="quotery-https-www-quotery-com"><a href="https://www.quotery.com/">Quotery</a></h3>

<figure><a href="https://www.quotery.com/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/8a50552b-d058-4079-ac5f-084e28bae71c/quotery-opt.png" width="800" height="623" alt="Quotery" /></a></figure>

<p><strong>Scheme:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/392d0e45-d185-4f24-ae09-23ee0e7e8bb3/quotery-color-opt.png" width="800" height="148" alt="Color scheme Quotery" /></figure>

<h3 id="nearly-impossible-https-nearlyimpossible-org"><a href="https://nearlyimpossible.org/">Nearly Impossible</a></h3>

<figure><a href="https://nearlyimpossible.org/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/7e21f800-b3bc-458a-89bf-1a3455cea4c9/nearlyimpossible-opt.png" width="800" height="623" alt="Nearly Impossible" /></a></figure>

<h3 id="alchemy-digital-https-alchemy-digital"><a href="https://alchemy.digital/">Alchemy Digital</a></h3>

<figure><a href="https://alchemy.digital/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/bb15a7b6-442b-446e-a25c-42786993bfad/alchemydigital-opt.png" width="800" height="623" alt="Alchemy Digital" /></a></figure>

<p><strong>Scheme:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/54754fce-14ca-4160-a1a0-923c361d2751/alchemydigital-color-opt.png" width="800" height="148" alt="Color scheme Alchemy Digital" /></figure>

<h3 id="mailchimp-https-mailchimp-com"><a href="https://mailchimp.com/">Mailchimp</a></h3>

<figure><a href="https://mailchimp.com/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/a95d17f6-af7e-4968-9dc4-8a673f741f52/mailchimp-opt.png" width="800" height="623" alt="Mailchimp" /></a></figure>

<p><strong>Scheme:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/4fa66d46-0cd5-4c0d-bffa-10a46846efc8/mailchimp-color-opt.png" width="800" height="148" alt="Color scheme Mailchimp" /></figure>

<h3 id="fight-for-ux-https-fightforux-com"><a href="https://fightforux.com/">Fight For UX</a></h3>

<figure><a href="https://fightforux.com/"><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/80581ae5-03ec-484f-9a04-4e6d26a87bd1/fightforux-opt.png" width="800" height="623" alt="Fight For UX" /></a></figure>

<p><strong>Scheme:</strong></p>

<figure><img loading="lazy" decoding="async" src="https://archive.smashing.media/assets/344dbf88-fdf9-42bb-adb4-46f01eedd629/526f80c2-7192-4c7a-a56b-3a8b84bdb037/fightforux-color-opt.png" width="800" height="148" alt="Color scheme Fight For UX" /></figure>

<h2 id="conclusion">Conclusion</h2>

<p>We&rsquo;ve really only just touched on color theory in this series. There are color consultants who have literally spent years refining their ability to choose colors that are appropriate to any situation and that can complement any brand.</p>

<p>The best way to learn to create beautiful color schemes is to practice. Create a scheme on a daily basis. You can use automated tools to do this at first (like Capture&rsquo;s tool for creating schemes from images), or just open up Photoshop or Sketch and start.</p>

<p>If you see a particularly beautiful or striking color in your daily life, try creating a scheme around it. And take advantage of all the sites out there that let you upload your color schemes and organize them for later reference. This makes all those color schemes more practical and easier to use in the future.</p>

<h2 id="further-resources">Further Resources</h2>

<p>Here are some additional resources that should help you in creating your own color schemes, as well as some links with more information about traditional color schemes.</p>

<ul>
<li><a href="https://www.smashingmagazine.com/2016/04/web-developer-guide-color/">A Simple Web Developer’s Guide To Color</a></li>
<li><a href="https://www.smashingmagazine.com/2012/10/the-code-side-of-color/"><span class="headline">The Code Side Of Color</span></a></li>
</ul>

<h2 id="the-whole-series">The Whole Series</h2>

<ul>
<li><a href="https://www.smashingmagazine.com/2010/01/28/color-theory-for-designers-part-1-the-meaning-of-color/">Color Theory for Designers, Part 1: The Meaning of Color</a></li>
<li><a href="https://www.smashingmagazine.com/2010/02/02/color-theory-for-designers-part-2-understanding-concepts-and-terminology/">Color Theory For Designers, Part 2: Understanding Concepts And Terminology</a></li>
<li>Color Theory for Designers, Part 3: How To Create Your Own Color Schemes And Palettes</li>
</ul>

              </article>
            </body>
          </html>
        ]]></content:encoded></item></channel></rss>