Color Palettes in B2B Design Systems: How to Build a Scalable and Manageable Color Architecture

Nikita Pazin · 3 December 2025 · ~ 8 minute read

Content

Color in B2B products is never as simple as picking a few brand shades. Enterprise interfaces work with complex data structures, system states, and dense information. This means the palette must be not only visually consistent but also technically structured, scalable, and ready for long-term evolution.

Below we explore which color groups you need, how to organize the architecture of shades, and why a well-designed palette is essential for designers, product leaders, and teams building design systems.

Two Key Color Groups

Most enterprise products rely on two main color categories:

  • Core interface colors (Primary) - Used in the most common component states: backgrounds, borders, buttons, interactive elements.
  • Status or marker colors (Secondary) — Used to display alerts, warnings, success states, risks, or to highlight specific data points.

It might feel like only a handful of colors is enough. In reality you need a structured system, not a simple list. This is where tokenization and proper shade architecture come in.

Why Structure Matters

Tokenization requires each color to be represented by a full scale of shades. The most common format is 100 to 900, with a step of 100. This nine-step model has become a de facto industry standard because it is predictable, easy to use, and scalable.

This structure gives another big advantage: it simplifies theme switching. To create light and dark themes, you usually map “opposite” shades within each color. For example:

  • Light theme uses 200 → Dark theme uses 800
  • Light theme uses 400 → Dark theme uses 600

However, this mechanical mapping does not always deliver the best result. Sometimes you need manual tuning to maintain balance and accessibility.

Opposite color control scheme in the Atlassian design system
Opposite color control scheme in the Atlassian design system

Technical Requirements for a Reliable Palette

To make your palette truly functional, consider these fundamentals.

Even gradient steps

Build a gradient from the lightest to the darkest shade, split it into equal segments, and take shades from the center of each segment. This ensures consistent optical steps across the palette.

Visible differences between neighboring shades

Shades must remain distinguishable even on screens covering up to 85% of the sRGB space, which is still common in enterprise environments. Find such a device and test the palette on it.

Contrast requirements

For text on colored backgrounds, follow WCAG:

  • AA: contrast ratio 3.0 or higher
  • AAA: 4.5 or higher

Check the contrast of this color against black (#000000) in the first half of the gradation and against white (#000000) in the second half. If your design specifies other base colors for text, it is better to use them for this check. Please note that the contrast check tool is already built into Figma. Also note that WCAG distinguishes between normal text and headings, with much higher requirements for the former.This becomes especially important for system statuses, alerts, and any color-dependent information.

A situation may arise where the shade does not meet the contrast requirements for either black or white, especially at the AAA level. In this case, it should only be used for filling elements that do not contain text or icons.

Because of these factors, separate color pairs for light and dark themes often work better than relying solely on automatic shade inversion.

Contrast values within a set of shades
Contrast values within a set of shades

Why a “Minimal” Palette Stops Being Enough

It is tempting to limit the palette to a few colors. Technically it seems efficient. But the moment your product introduces:color pickers, data color-coding, analytics dashboards, or user-assigned categories you quickly realize the full spectrum matters, and colors must work well together.

Any color palette can be represented in a color wheel format, sometimes with a color wheel and a separate gray scale.

Most robust design systems operate somewhere between these boundaries:

  • 12 to 36 hues around the color wheel
  • 7 to 11 shades per hue

Plus a dedicated grayscale, built with the same shade structure.

Color circle

The color wheel is a core tool that shows how colors relate to each other, mapping hues in a circular spectrum from primary to intermediate. It helps designers see harmony, contrast, and the emotional tone that different color groups create.

Using the wheel, it’s easy to build palettes with a clear purpose. "Analogous colors provide calm, cohesive combinations often used in clean, unobtrusive interfaces. "Complementary colors" create strong contrast and draw attention to key elements like buttons or alerts. "Triadic schemes" offer balanced variety — useful in playful or dynamic visuals where color needs to stand out without clashing.

By understanding how warm and cool tones influence mood, designers can shape the overall feel of a product or brand. In this way, the color wheel becomes not just a reference, but a practical guide for making deliberate and expressive color choices.

This gives a total range from:

  • 13 colors × 7–11 shades (≈91 shades)
  • to 37 colors × 11 shades (≈407 shades)

A practical sweet spot for most B2B systems is 13 colors (12 colors plus one grayscale) × 9 shades, or 117 shades. Large enough to be useful, small enough to manage.

Real-World Examples From Existing Design Systems

Many teams worry that large palettes are hard to maintain. But leading enterprise systems prove the opposite:

  • SAP Fiori: 100 shades
  • Atlassian: 120
  • Bitrix24: 189
  • Oracle Alta UI: 284
  • Oracle Cloud ERP: 441

Even a palette of 117 shades looks modest compared to these.

Presentation of the palette in the form of a color wheel and examples of its use.
Presentation of the palette in the form of a color wheel and examples of its use.

How to Work With the Palette

Below is a practical, Figma-friendly structure that scales well for enterprise design systems.

Wide Palette: The Foundation

This is the level where hue groups are defined. Keep the naming simple:

  • Red
  • Blue
  • Yellow
  • etc...

In Figma, create a Colors collection and a Wide palette section. Each color gets its own subgroup, each shade its own variable with HEX values.

Even if you are not planning multiple themes, you will almost certainly need at least a dark theme. Create an additional variable mode and define how each shade behaves when the theme switches.

Base Palette: Semantic Colors

Next comes the Base palette. These colors carry meaning in the interface.

Semantic names reflect the purpose:

  • Primary
  • Accent
  • Success
  • Warning

Grayscale can use numeric naming consistent with the wide palette.

Typical group sizes:

  • Primary: 4–10 shades
  • Accent: 5–10 shades
  • Grayscale: 4–13 shades

Values in this layer reference Wide palette shades.

Context Palette: Colors for Component States

This level connects color semantics to real interface behavior. Here you define variables for:

  • button states
  • focus and hover states,
  • borders and backgrounds,
  • input states, validation statuses, data states and alerts.

These variables should reference the Base palette. If the required shade is not available there, use the Wide palette.

This is the layer applied directly to components in Figma. It completes the hierarchy: shades → semantics → component behavior.

The result is a flexible and predictable color architecture that scales with your product.

Hierarchical use of colors
Hierarchical use of colors

Final Thoughts

A well-structured palette is more than a list of colors. It becomes an essential part of the design system’s architecture, supporting consistency, accessibility, and long-term product growth.

You can explore more about variable-based workflows in Figma’s documentation, but the model above gives everything you need to build a robust and scalable palette.