Color in Design Systems

16 Tips for Setting Up a System That Endures

Nathan Curtis
Apr 13, 2016 · 9 min read

[This post has been updated at its canonical link]

I’m no color expert. Far from, actually. Throughout my career, I’ve depended on visual designers better than myself to produce an engaging palette and apply it harmoniously across a UI.

Yet, as a systems designer, I’m often in the position to provoke and validate color decisions as a system takes shape. Here’s a 16 lessons I’ve learned while stabilizing a primary palette, tint and shade choices, secondary palettes, and solving for accessible contrast.

Primary Palette

#1. Stabilize Brand Colors Quickly

Takeaway: Decide your essential brand colors early, because they spread widely, quickly.

#2. Involve Brand (If You Alter a Brand Color)

Takeaway: Brand colors are the brand team’s territory. So discuss adjustments with them and defer to their judgment as needed.

#3. Drop the Neutral Neutrals

Takeaway: Provide a few light grays and a few dark grays to achieve useful contrast, but don’t get wishy washy wireframey. Consider avoiding medium grays in between.

#4. Go “Digital Blue.” Everybody Else Does.

Takeaway: When (not if ;) ) you go with your “Digital Blue,” choose an accessible one and make sure it doesn’t clash with the brand’s own blue, or red, orange, purple, or green.

Tints & Shades Per Color

#5. Stack the Tint & Shade Range, Per Color

Takeaway: Stack available colors in each hue, and treat the stack as a visualization to include important details compactly.

Material Design’s Indigo and Deep Orange

#6. Name Tints & Shades by Lightness

Takeaway: Scale color names between 0 and 100 based on HSL’s lightness, such as $color-gray-05 and $color-gray-92. The scale reflects a familiar range from dark to light, allows for injecting new options between, and heck if I won’t remember $color-gray- 93 until we retire it later.

#7. Limit Tint & Shade Quantity

Takeaway: Offer a handful of options and avoid tedious variety. Empower system users with just enough choice: more than a single option, but only up to a few intentional choices.

#8. Tell Me How To Transform: Hand-Pick or Functionally

But transforms can be troublesome: carefully crafted base colors can become inaccessible alternatives (see below), a page’s overall palette can muddy, or a “5% system” that works on moderately bright colors yields insufficient contrast for a very light or dark case.

Takeaway: Deliberately allow — or avoid — color transformations in your system. If you endorse the practice, then offer examples of when and how to do it effectively in your system, such as 5–10% for moderately bright cases and 10–20% in more extreme cases. If transformations should be avoided , document that succinctly.

Secondary Palettes

#9. Define Meaningful Sets Like Feedback Colors

Takeaway: Explore and define the standard feedback colors and other relevant sets to ensure that colors fit harmoniously rather wedging them in later or having teammates recall “I just grabbed it from Google.”

Typical feedback colors: success, warning, error and informational

#10. Illustrate Theme Variety

Takeaway: Reveal the range of themes available compactly, and set boundaries around allowable theme colors in certain contexts.

Theme colors for multiple hotels, derived from product pages

#11. Define How Theming Works

Takeaway: Identify how theming works, particularly via reference to specific UI element properties in play. Just as important, articulate which — if not most — elements are off limits.

#12. Avoid Guiding on Color-Mixing Until (At Least) Dust Settles

Takeaway: Avoid the rabbit hole of solving for a vast array of color combinations unless it’s a core system value. In most cases, system users will pair up their own combinations or benefit from a tool more dedicated to doing just that. Help them propagate their choice rather than solving for every combination they may consider. That experimentation is their job.

Serve users of your system by making it efficient to propagate their choice through a product, rather than making the choice for them.

Contrast & Accessibility

A systems team can engrain accessible practices into a workflow to provoke and spread values in accessibility broadly across an enterprise.

#13. Check Contrast Early & Ritually

Takeaway: Any system designer responsible for color must be familiar with WCAG 2.0 rules, have a tool (like Tanaguru) to test color pairs, and incorporate the practice into color selection.

Tanaguru, one of many accessibility calculators online

#14. Explore Accessible Color Choices Across Ranges

Conversation quickens when we reveal a spectrum of choices, with the pass/fail line fairly evident. This transforms the process from trial and error to tuning a dial. Before, it was “That pair failed. Let’s try again.” Now, it’s an enlightening “Oh, so that’s how dark the blue needs to be” followed by a rational discussion to balance visual tone, brand identity, and accessibility sensitivities.

Takeaway: When exploring accessible color contrast, show a range of choices to help a team select a color that passes the test.

Exploring neutral and interactive colors by showing multiple choices across a range

#15. Solve the Reverse Light on Dark and Dark on Light

This is especially true for reverse color treatments. It’s very common for a system to default to dark text on a light background. However, most find themselves reversing color treatments, whether a black and white on light and dark neutrals or tints of another primary or secondary color.

Takeaway:Solve for and recommend reversed pairings to adopt or avoid.

A table of calculated contrast (using a SASS function) between neutral backgrounds and interactive blue alternatives

#16. Use Color to Provoke Broader Accessibility Awareness

Takeaway: Seize the opportunity to advocate for accessibility. Always be probing a collaborator’s knowledge of accessibility (or lack thereof) and educate and advocate all you can.


A collection of stories, studies, and deep thinking from…


A collection of stories, studies, and deep thinking from EightShapes

Nathan Curtis

Written by

Founded UX firm @eightshapes, contributing to the design systems field through consulting and workshops. VT & @uchicago grad.


A collection of stories, studies, and deep thinking from EightShapes

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store