Colors

Reference color palettes and semantic tokens with practical usage guidance for consistent UI theming.

Overview

The VD color system is built on a comprehensive palette of colors organized by semantic meaning. Colors are theme-aware and adapt automatically between light and dark modes while maintaining accessibility standards.

Color System Tiers

The color architecture is organized into three distinct tiers:

Root Colors

Root colors contain color definitions in their purest form. In this tier, color tokens are mapped directly to raw hex values.

Brand Colors

Brand colors map semantic color tokens to root colors. Different brands can configure distinct root colors for the same semantic token.

Mapped Colors

Mapped colors are the theme-aware tokens used directly in application UI. These tokens adapt automatically based on the active theme.

Root Color Palettes

Raw, pure hex color definitions that form the base tier of the color system.

BlueGlow

50#EBE9FE
100#DEDBFD
200#BEB7FB
300#9C92F8
400#7B6EF6
500#5A4AF4
600#483BC3
700#362C92
800#251E62
900#120F31

Grey

50#F6F5FF
100#E7E6F5
200#D7D5E5
300#9F9CBA
400#797791
500#5A5870
600#47455A
700#353443
800#19172B
900#04021A

Green

50#e7f3ee
100#cfe7dd
200#9fcfbb
300#6eb799
400#3e9f77
500#0e8755
600#0b6c44
700#085133
800#063622
900#031b11

Red

50#fbe9ea
100#f8d2d4
200#f0a5a9
300#e9787e
400#e14b53
500#da1e28
600#ae1820
700#831218
800#570c10
900#2c0608

Orange

50#fcf0e6
100#f8e0cc
200#f1c299
300#eaa366
400#e38533
500#dc6600
600#b05200
700#843d00
800#582900
900#2c1400

Blue

50#eaf1fb
100#d6e3f6
200#adc7ee
300#83aae5
400#5a8edd
500#3172d4
600#275baa
700#1d447f
800#142e55
900#0a172a

Opaque White

100rgba(255, 255, 255, 0.1)
200rgba(255, 255, 255, 0.2)
300rgba(255, 255, 255, 0.3)
400rgba(255, 255, 255, 0.4)
500rgba(255, 255, 255, 0.5)
600rgba(255, 255, 255, 0.6)
700rgba(255, 255, 255, 0.7)
800rgba(255, 255, 255, 0.8)
900rgba(255, 255, 255, 0.9)
1000#ffffff

Opaque Black

100rgba(0, 0, 0, 0.1)
200rgba(0, 0, 0, 0.2)
300rgba(0, 0, 0, 0.3)
400rgba(0, 0, 0, 0.4)
500rgba(0, 0, 0, 0.5)
600rgba(0, 0, 0, 0.6)
700rgba(0, 0, 0, 0.7)
800rgba(0, 0, 0, 0.8)
900rgba(0, 0, 0, 0.9)
1000#000000

Opaque Neutral

Overlayrgba(4, 2, 26, 0.4)

Brand Color Palettes

Brand colors map semantic tokens to root colors. Palettes can vary based on the selected brand configuration in the top navigation.

Primary

50--vd-color-primary-50
100--vd-color-primary-100
200--vd-color-primary-200
300--vd-color-primary-300
400--vd-color-primary-400
500--vd-color-primary-500
600--vd-color-primary-600
700--vd-color-primary-700
800--vd-color-primary-800
900--vd-color-primary-900

Error

50--vd-color-red-50
100--vd-color-red-100
200--vd-color-red-200
300--vd-color-red-300
400--vd-color-red-400
500--vd-color-red-500
600--vd-color-red-600
700--vd-color-red-700
800--vd-color-red-800
900--vd-color-red-900

Success

50--vd-color-green-50
100--vd-color-green-100
200--vd-color-green-200
300--vd-color-green-300
400--vd-color-green-400
500--vd-color-green-500
600--vd-color-green-600
700--vd-color-green-700
800--vd-color-green-800
900--vd-color-green-900

Warning

50--vd-color-orange-50
100--vd-color-orange-100
200--vd-color-orange-200
300--vd-color-orange-300
400--vd-color-orange-400
500--vd-color-orange-500
600--vd-color-orange-600
700--vd-color-orange-700
800--vd-color-orange-800
900--vd-color-orange-900

Info

50--vd-color-blue-50
100--vd-color-blue-100
200--vd-color-blue-200
300--vd-color-blue-300
400--vd-color-blue-400
500--vd-color-blue-500
600--vd-color-blue-600
700--vd-color-blue-700
800--vd-color-blue-800
900--vd-color-blue-900

Neutral

50--vd-color-grey-50
100--vd-color-grey-100
200--vd-color-grey-200
300--vd-color-grey-300
400--vd-color-grey-400
500--vd-color-grey-500
600--vd-color-grey-600
700--vd-color-grey-700
800--vd-color-grey-800
900--vd-color-grey-900

White

100--vd-color-opaque-white-100
200--vd-color-opaque-white-200
300--vd-color-opaque-white-300
400--vd-color-opaque-white-400
500--vd-color-opaque-white-500
600--vd-color-opaque-white-600
700--vd-color-opaque-white-700
800--vd-color-opaque-white-800
900--vd-color-opaque-white-900
1000--vd-color-opaque-white-1000

Black

100--vd-color-opaque-black-100
200--vd-color-opaque-black-200
300--vd-color-opaque-black-300
400--vd-color-opaque-black-400
500--vd-color-opaque-black-500
600--vd-color-opaque-black-600
700--vd-color-opaque-black-700
800--vd-color-opaque-black-800
900--vd-color-opaque-black-900
1000--vd-color-opaque-black-1000

Utilities

Overlay--vd-color-utilities-overlay-corporate

Mapped Color Palettes

Theme-aware color tokens mapped to brand tokens for UI rendering. These tokens automatically adapt between light and dark modes.

Content

Default

Base--vd-color-content-default-base
Secondary--vd-color-content-default-secondary
Tertiary--vd-color-content-default-tertiary
Disabled--vd-color-content-default-disabled
AlwaysLight--vd-color-content-default-always-light
AlwaysDark--vd-color-content-default-always-dark

Primary

Base--vd-color-content-primary-base
Secondary--vd-color-content-primary-secondary
Tertiary--vd-color-content-primary-tertiary
OnBase--vd-color-content-primary-on-base
OnSecondary--vd-color-content-primary-on-secondary
OnTertiary--vd-color-content-primary-on-tertiary

Success

Base--vd-color-content-success-base
Secondary--vd-color-content-success-secondary
Tertiary--vd-color-content-success-tertiary
OnBase--vd-color-content-success-on-base
OnSecondary--vd-color-content-success-on-secondary
OnTertiary--vd-color-content-success-on-tertiary

Error

Base--vd-color-content-error-base
Secondary--vd-color-content-error-secondary
Tertiary--vd-color-content-error-tertiary
OnBase--vd-color-content-error-on-base
OnSecondary--vd-color-content-error-on-secondary
OnTertiary--vd-color-content-error-on-tertiary

Warning

Base--vd-color-content-warning-base
Secondary--vd-color-content-warning-secondary
Tertiary--vd-color-content-warning-tertiary
OnBase--vd-color-content-warning-on-base
OnSecondary--vd-color-content-warning-on-secondary
OnTertiary--vd-color-content-warning-on-tertiary

Info

Base--vd-color-content-info-base
Secondary--vd-color-content-info-secondary
Tertiary--vd-color-content-info-tertiary
OnBase--vd-color-content-info-on-base
OnSecondary--vd-color-content-info-on-secondary
OnTertiary--vd-color-content-info-on-tertiary

Neutral

Base--vd-color-content-neutral-base
Secondary--vd-color-content-neutral-secondary
Tertiary--vd-color-content-neutral-tertiary
OnBase--vd-color-content-neutral-on-base
OnSecondary--vd-color-content-neutral-on-secondary
OnTertiary--vd-color-content-neutral-on-tertiary

Background

Default

Base--vd-color-background-default-base
Secondary--vd-color-background-default-secondary
Tertiary--vd-color-background-default-tertiary
AlwaysLight--vd-color-background-default-always-light
AlwaysDark--vd-color-background-default-always-dark
Disabled--vd-color-background-default-disabled

Primary

Base--vd-color-background-primary-base
BaseHover--vd-color-background-primary-base-hover
Secondary--vd-color-background-primary-secondary
SecondaryHover--vd-color-background-primary-secondary-hover
Tertiary--vd-color-background-primary-tertiary
TertiaryHover--vd-color-background-primary-tertiary-hover

Success

Base--vd-color-background-success-base
BaseHover--vd-color-background-success-base-hover
Secondary--vd-color-background-success-secondary
SecondaryHover--vd-color-background-success-secondary-hover
Tertiary--vd-color-background-success-tertiary
TertiaryHover--vd-color-background-success-tertiary-hover

Error

Base--vd-color-background-error-base
BaseHover--vd-color-background-error-base-hover
Secondary--vd-color-background-error-secondary
SecondaryHover--vd-color-background-error-secondary-hover
Tertiary--vd-color-background-error-tertiary
TertiaryHover--vd-color-background-error-tertiary-hover

Warning

Base--vd-color-background-warning-base
BaseHover--vd-color-background-warning-base-hover
Secondary--vd-color-background-warning-secondary
SecondaryHover--vd-color-background-warning-secondary-hover
Tertiary--vd-color-background-warning-tertiary
TertiaryHover--vd-color-background-warning-tertiary-hover

Info

Base--vd-color-background-info-base
BaseHover--vd-color-background-info-base-hover
Secondary--vd-color-background-info-secondary
SecondaryHover--vd-color-background-info-secondary-hover
Tertiary--vd-color-background-info-tertiary
TertiaryHover--vd-color-background-info-tertiary-hover

Neutral

Base--vd-color-background-neutral-base
BaseHover--vd-color-background-neutral-base-hover
Secondary--vd-color-background-neutral-secondary
SecondaryHover--vd-color-background-neutral-secondary-hover
Tertiary--vd-color-background-neutral-tertiary
TertiaryHover--vd-color-background-neutral-tertiary-hover

Overlay

Default--vd-color-background-overlay-default

Border

Default

Base--vd-color-border-default-base
Secondary--vd-color-border-default-secondary
Tertiary--vd-color-border-default-tertiary
Disabled--vd-color-border-default-disabled

Primary

Base--vd-color-border-primary-base
Secondary--vd-color-border-primary-secondary
Tertiary--vd-color-border-primary-tertiary

Success

Base--vd-color-border-success-base
Secondary--vd-color-border-success-secondary
Tertiary--vd-color-border-success-tertiary

Neutral

Base--vd-color-border-neutral-base
Secondary--vd-color-border-neutral-secondary
Tertiary--vd-color-border-neutral-tertiary

Error

Base--vd-color-border-error-base
Secondary--vd-color-border-error-secondary
Tertiary--vd-color-border-error-tertiary

Warning

Base--vd-color-border-warning-base
Secondary--vd-color-border-warning-secondary
Tertiary--vd-color-border-warning-tertiary

Info

Base--vd-color-border-info-base
Secondary--vd-color-border-info-secondary
Tertiary--vd-color-border-info-tertiary

Usage Guidelines

How to implement color tokens and switch themes in application code.

Basic Color Implementation

Apply color tokens using CSS custom properties:

colors-usage.css

Copy code

Theme Switching

Toggle between light and dark themes by setting the data-theme attribute on the root HTML element. All semantic colors adjust automatically.

theme-switching.html

Copy code

Best Practices

Follow these rules and conventions to maintain consistent, accessible, and theme-safe color usage.

General Rules

  • All colors must be applied using VD tokens — never hardcode hex, RGB, or HSL values in CSS, HTML, or component templates.
  • Apply colors semantically, reflecting status, state, or purpose (e.g., use error tokens for errors, not a raw red).
  • Differentiate usage across text, background, border, and icon categories — each has its own dedicated set of tokens.
  • Always prefer mapped tokens over brand or root tokens in application code, as they are theme-aware.

Token Naming Convention

All mapped color tokens follow a consistent naming pattern:

token-pattern

Copy code

Category:content, background, border
Semantic:default, primary, success, error, warning, info, neutral
Variant: base, secondary, tertiary, disabled, on-base/on-secondary/on-tertiary, base-hover/secondary-hover/tertiary-hover where applicable

Content Colors

Use --vd-color-content-{semantic}-{variant} tokens for both text and icons. Available semantics: default, primary, success, error, warning, info, neutral. Each offers base, secondary, and tertiary variants. The default semantic also includes a disabled variant.

Background Colors

Use --vd-color-background-{semantic}-{variant} tokens for surfaces and containers. Each semantic (primary, success, error, warning, info, neutral) provides base, secondary, and tertiary variants plus corresponding *-hover states. Use --vd-color-background-overlay-default for modals, tooltips, and overlay backdrops.

Border Colors

Use --vd-color-border-{semantic}-{variant} tokens for all borders and outlines. Each semantic provides base, secondary, and tertiary variants. The default semantic also includes a disabled variant for inactive UI elements.

White & Black Tokens

For opaque color scales, use --vd-color-white-100 through --vd-color-white-1000 and --vd-color-black-100 through --vd-color-black-1000. These are available from brand tokens only (not mapped), as they do not change between light and dark themes. Never use raw hex codes.

Do's and Don'ts

Do

do.css

Copy code

Don't

dont.css

Copy code