Documentation versions (currently viewingVaadin 24)
Colors and their corresponding style properties defined in the Lumo theme.

Lumo defines a set of style properties (i.e., CSS custom properties) for colors. You can use these properties to apply a consistent color palette across your application.

You can use the built-in Lumo light and dark mode variants to switch the color palette of all components in your application. This page lists and displays the available color properties in Lumo.

Lumo uses the light theme variant, by default. You can change colors for the light theme by customizing the style properties, like this:

html {
  --lumo-primary-color: blue;

If you’re using the Lumo Dark theme variant, customize colors after the [theme~="dark"] selector like this:

[theme~="dark"] {
  --lumo-primary-color: red;

By using the ~= operator in the [theme~="dark"] selector it’ll match the color when multiple theme variants are defined on a single element. For example, if you use the theme="small dark" attribute on a HTML element somewhere in the global style scope of your application, the color change applies to it, as well. This helps you achieve a unified appearance between the different components in your application. Using only the = operator here is slightly more performant, but it won’t match the color on other instances.


The base color is used as the main background color for the system. The Grayscale colors are designed to be used on top of it, and the Text colors are designed to provide sufficient contrast with it.

Description CSS Custom Property




These colors form the foundation for your application colors. The grayscale colors are useful for dividing pages into sections with different backgrounds and borders, or they might be used as text colors.

Description CSS Custom Property

Contrast 5%
Button background. Button toolbar. Secondary section background.


Contrast 10%
Input field background.


Contrast 20%
Divider border color.


Contrast 30%
Disabled text.


Contrast 40%


Contrast 50%
Tertiary text.


Contrast 60%


Contrast 70%
Secondary text.


Contrast 80%


Contrast 90%
Body text.


Contrast 100%
Heading text.



This is the most prominent color in the system. It’s used to bring attention to certain elements in the interface. Accompanying text and contrast colors are also defined.

Description CSS Custom Property

Primary 10%
Badge background.


Primary 50%
Focus outline color.


Primary 100%
Primary button background.


Primary Text
Secondary & tertiary button text.


Primary Contrast
Primary button text.



The color red is most often used for errors. It’s used for error indicators, error messages, and buttons that can cause permanent data loss. Accompanying text and contrast colors are also defined.

Description CSS Custom Property

Error 10%
Error badge background.


Error 50%


Error 100%
Primary error button background.


Error Text
Secondary & tertiary error button text.


Error Contrast
Primary error button text.



Warning colors are used primarily for warning notifications. They’re displayed typically in yellow or orange,

Description CSS Custom Property

Warning 10%
Faint warning background color.


Warning 100%
Strong warning background color.


Warning Text
Warning color with sufficient contrast for text.


Warning Contrast
Contrast color for use on top of background colors.



This is most often depicted with a green color. It’s used for success messages, and buttons that complete a certain task. Accompanying text and contrast colors are also defined.

Description CSS Custom Property

Success 10%
Success badge background.


Success 50%


Success 100%
Primary success button background.


Success Text
Secondary & tertiary success button text.


Success Contrast
Primary success button text.



The following text colors have appropriate contrast with the Base color.

Description CSS Custom Property

Heading Text


Body Text
Contrast above 7:1.


Secondary Text
Contrast above 4.5:1.


Tertiary Text
Contrast above 3:1. Use only for non-essential text. Suitable for graphical elements, such as icons.


Disabled Text
Use only for non-essential text/elements.