Design system theming: How and why it works

4 min read
Adam Sadowski
  •  Jun 12, 2018
Link copied to clipboard

A good design system provides cost effective and consistent experiences across multiple platforms while providing a toolset to solve problems quickly.

Here at Pegasystems, one of the bigger challenges we faced while standing up our design system was creating a design language that:

  • Designs for everyone, meets our accessibility standards
  • Provides an elegant interface to the end user that makes sense
  • Provides enough arrows in the designer’s quiver so that they can solve business challenges with the end user in mind
  • Makes our design standards resilient when implemented

Solution: Develop a theming system that works across all the individual UI pieces of the design system. Make sure those those pieces work together.

Theming system? What’s a theming system?

Think of a theming system like a set of interchangeable color swatches that affects how things are colorized (think background color, text color or border color), but not the size, layout, content, hierarchy, etc.

Basic rule of thumb: If it affects color, it’s related to theming. Otherwise, it’s not.

The guts of our theming system

We currently have four working themes in Bolt: “xdark,” “dark,” light,” and “xlight.” Each theme essentially defines the canvas and paint brushes the UI will render with.

Our dark themes leverage our brand Indigo as a base line of the theme design, while our light themes leverage gray and white canvases.

Why don’t we call them dark blue or white themes? To keep the system evergreen, we keep our labels generic so that if there is a global change in our visual language we don’t have to rewrite too much code. We can easily make a couple small tweaks in our global theme styles and not miss a beat or refactor code everywhere.

We should (and are actually now in the process of) generalizing further — instead of lights and darks, primaries, secondaries, brand, etc. But I digress.

Keep the design system jargon generic and scalableTwitter Logo so you can grow into new scenarios without refactoring. Something like “Default > light > lighter > lightest” falls apart when you need to add something is lighter than lightest.

Each theme defines:

  • background color
  • text color (when used on the background color)
  • primary color
  • secondary color
  • heading color
  • link color
  • border color

Accessibility standards

We use the internationally-accepted WCAG 2 AA standards to evaluate our sites (a standard now being used by Section 508, EN 301 549, and BITV). By user testing the various ways a person interacts with our interfaces, we craft compliant, inclusive, usable designs to meet any impairment or disability head-on.

Related: Designing for inclusivity—How and why to get started

To ensure we meet AA contrast minimums, we test along the way as we design. I love this tool in particular as it has some presets provides a calculated equivalent foreground color. We additionally bake in Sass contrast mixins in the code to automatically make sure we use the highest contrast available.

Build in automagical checks right into the system to provide real-time feedback mechanisms. We run our entire color palette through the AA contrast guidelines automatically to provide an ongoing assessment.

How our themes come together

Even though each theme constricts around the seven parameters above, the system provides great flexibility. Starting with our band component, a full-width section that goes to the edges of the display, we can quickly craft content.

Additionally, our band component allows us to add background images and gradients. Together, we can quickly deliver against our content strategy.

For, we use darker themes as bookends of our information architecture to create gravitas on the page. Lighter themes serve longer form content. As we redesign our community portal, we’re leaning on the lighter themes as the content is dense and needs to be more scannable.

Supporting designers

We want to ensure designers using Bolt have enough design tools to tackle the problem in front of them. The theming system has been integral to the design process, providing a framework to quickly piece together the page’s structure. Whether they’re designing in Sketch or in the CMS, the tools are there.

As more sites and designers adopt our design system, we’re constantly pressure testing if we have given them enough tools.

Related: A comprehensive guide to design systems

So far so good. was the pilot adopter and we’re adding two more as I type. The sites hang together as siblings but are different enough to serve their audience.

On top of the visual language we’re creating, the design system tooling allows the designers to spend more time thinking about the business and user objectives. If our designer is using Sketch, they’re able to create a comp in as little as 20 minutes if they’re flowing in real content, down from two to three hours, which allows time to go wider sussing out different ideas.

“Work harder now so that the design system users don’t have to.”

Twitter Logo

Making the system resilient

By far my favorite piece of the theming system is the baked-in resilience. When a content author is building a page, they only have to worry about selecting the weight of the button. Color and styles are automatically generated from the theming engine.

Work harder now so that the design system users don’t have to.Twitter Logo The dev team injected some sort of wizardry that provides additional resilience  that protects our users from going against standards—even dragging the button HTML element from one theme to another corrects to the right scheme, making it effortless to follow the rules and design guidelines.

It’s magic! The button automatically changes based the div’s theme the element lives in.

Most components fall in line with the theme standards, and text and colors behave the same way across each piece of the system, creating a larger brand experience that is consistent across each site and the entire ecosystem.


The theming engine systematically creates a uniform design language across all sites, unifying the ecosystem that is accessible for all users. It frees the designers up to tackle larger problems and prevents misuse of patterns.

Everything you need for a powerful design system

InVision Design System Manager (DSM) is a platform that provides a simple, unified way to design at scale by helping teams create, maintain, and evolve a powerful design system. The DSM platform includes a Sketch plugin, a web view, and a set of APIs—everything a company needs for a powerful design system, including the potential for multiple libraries. DSM serves as home base for the design team—a shared structure housing the collective knowledge of thoughtful design decisions.

Don’t have a DSM account yet? Be sure to sign up for early access today. Current DSM users, sign in below to try out some of our newest features.

Get started with DSM!

Collaborate in real time on a digital whiteboard