Skip to main content

Color Roles in the DevExpress Design System

  • 3 minutes to read

Color roles define the function and semantic purpose of each UI color. In the DevExpress Design System, these roles follow a multi-layer model that maps high-level design intent to specific visual values. This structure has the following advantages:

  • Visual consistency: A unified color language makes interfaces easier to scale and keeps styling consistent across components.
  • Accessibility: Role-based colors account for contrast requirements. Standard pairings (such as text and background) align with WCAG contrast guidelines.
  • Theme awareness: The resulting color value adapts dynamically to the active theme and its color mode (light or dark).
  • Reduced maintenance: Designers and developers define the appearance once instead of creating separate designs for each theme.

Color Role Schema

The DevExpress Design System uses the same color-layer schema for all themes and color modes (light or dark). Follow this schema to assign roles correctly. The table below lists all color layers:

High-Level Role Semantic Role Intensity State
Surface Neutral Default Rest
Content Primary Subdued Active
Border Secondary Deep Hovered
Info Compound Selected
Success Alpha Selected-Hovered
Warning Accessible Disabled
Danger Static-Light
Backdrop Static-Dark
Transparent Inverted
Highlight On-Surface
Utility

These layers help you build a path to a specific color value, for example: ContentPrimaryDefaultHovered.

Note

Our Design System does not cover all potential combinations.

High-Level Roles

The DevExpress Design System operates with the following high-level roles:

Surface
A background (surface) for content. Surfaces always use light colors in light mode, and dark colors in dark mode.
Content
Text or graphics displayed on a surface. Usually use inverted colors compared to surface. Content colors do not change in all states (except for disabled).
Border
Surface borders.

Design System Colors - Definitions and Roles

Semantic Roles

The DevExpress Design System defines relevant semantic roles for each high-level role. The following semantic roles are available:

Primary
Main brand or accent color.
Secondary
An additional accent color used for secondary elements.
Info
Colors used for informational messages (notes).
Success
Colors used to convey success states.
Warning
Colors used to convey warnings.
Danger
Colors used to convey error states.
Neutral
Grayscale colors used throughout the interface for backgrounds, surfaces, dividers, and text (light/dark variants).
Backdrop
Colors used to shade background information.
Highlight
Service colors used to highlight small application/component regions.
Transparent
Color used to create transparent backgrounds.
Utility
Colors used for data visualization, categorization, and analytical contexts.

Intensity

You can choose the color intensity from the following values:

Default
The brightest shade.
Subdued
Meduim brightness of the shade.
Deep
The least bright shade.
Compound
A semantic extension of high-level roles. May be of use if you need several high-level roles to have the came color.
Alpha
Adjusts color opacity using the alpha channel.
Accessible
The shade that meets the Non-Text Contrast criterion for small UI elements.

States

Components can have the following design states:

Rest
Colors used to convey the default state (component is not being interacted with).
Hovered
Colors used to convey the hovered state.
Selected
Colors used to convey the selected state.
Selected-hovered
Colors used to convey selected and hovered state.
Disabled
Colors used to convey the disabled state.
Static-light
Light colors that do not change in light/dark modes.
Static-dark
Dark colors that do not change in light/dark modes.
Inverted
Colors that are inverted from primary (for accents).
On-surface
Colors used for content or other surfaces placed on a surface.