Beta: The --token-* CSS custom properties are in beta. We encourage you to start using them and welcome your feedback. The token API may still change, but we will communicate any breaking changes.
Overview#
| Section | Tokens | Usage |
|---|---|---|
| Background | 41 | For external use. Use the filters in each section to narrow tokens to the variants you need. |
| Text | 28 | For external use. Use the filters in each section to narrow tokens to the variants you need. |
| Icon | 30 | For external use. Use the filters in each section to narrow tokens to the variants you need. |
| Stroke | 28 | For external use. Use the filters in each section to narrow tokens to the variants you need. |
| Decorative | 30 | For advanced custom decorative needs. |
| Component | 40 | For internal use only. |
Tips#
- Hover over the value of a token in the tables below to see its Eufemia Foundation name.
- Use the filter buttons above each table to narrow tokens by modifier (for example
inverse,ondark,subtle,boldorstatic). Multiple modifiers combine withAND. - You can sort the tables by clicking the column headers. Click again to reverse the sort order.
Migrating information and neutral colors#
Information backgrounds, icons and strokes now use blue across DNB, Sbanken and Carnegie. Built-in components receive these colors automatically. Review custom information colors, overrides and visual snapshots when upgrading.
The neutral palette also changes. Applications that use tokens directly must review their backgrounds before upgrading:
| Token | DNB and Eiendom light: before → after | DNB and Eiendom dark: before → after |
|---|---|---|
--token-color-background-neutral-alternative | #f2f2f5 → #ccc | #333 → #1c1c1e |
--token-color-background-neutral-bold | #ccc → #b1b1b5 | #48484a (unchanged) |
neutral-alternative is no longer suitable as a general text background. In DNB light, links on this background drop from 5.15:1 to 3.58:1 contrast, below the 4.5:1 minimum for normal text. In DNB dark it matches the neutral surface used by Card, so nested boxes can lose their visible fill.
Search application CSS, SCSS and JavaScript/TypeScript strings for --token-color-background-neutral-alternative and choose a replacement by role:
| Existing use | Recommended starting point |
|---|---|
| Section, card or banner containing text | --token-color-background-neutral-subtle |
| UI fill, such as a progress track | --token-color-background-neutral-base |
| Surface containing text that needs stronger contrast | --token-color-background-neutral |
.application-section {- background-color: var(--token-color-background-neutral-alternative);+ background-color: var(--token-color-background-neutral-subtle);}.application-progress-track {- background-color: var(--token-color-background-neutral-alternative);+ background-color: var(--token-color-background-neutral-base);}
This is not a one-to-one replacement. Check links, secondary text, error text and nested surfaces in every supported theme and color mode. Normal text needs at least 4.5:1 contrast. Dark-mode text-error now uses a lighter red on the same surfaces: 4.53:1 in DNB and Eiendom, and 4.67:1 in Sbanken on background-neutral-subtle. Use a supported surface/text pair rather than assuming every text token works on every neutral background. See the neutral surface guidance.
Also review direct uses of --token-color-stroke-neutral-alternative, which changes in DNB light and Sbanken dark, and --token-color-stroke-neutral-bold, which changes in DNB dark and Sbanken dark. The new --token-color-stroke-neutral-base provides a base-level outline. Background and stroke tokens with the same suffix do not guarantee sufficient text or control contrast.
The corresponding Tailwind color tokens and utility classes change too. Existing copies of the neutral status-icon pattern should use --token-color-background-neutral-base, as shown in the status-icon pattern.
Removed foundation variables#
The foundation variables below are no longer emitted. Direct var(...) references without a fallback become unresolved. Prefer semantic background, stroke, icon or text tokens according to their role. There is no universal semantic replacement for an old foundation color.
If a custom design must retain an exact old color during migration, these are the previous values:
| Removed variable | Previous value |
|---|---|
--dnb-coldgreen-300-40 | rgba(165 225 210 / 40%) |
--dnb-coldgreen-700-40 | rgba(20 85 90 / 40%) |
--dnb-greyscale-800-60 | rgba(51 51 51 / 60%) |
--dnb-greyscale-1000-30 | rgba(0 0 0 / 30%) |
--sbanken-purple-700-40 | rgba(78 8 188 / 40%) |
--sbanken-green-300-40 | rgba(146 238 205 / 40%) |
--sbanken-greyscale-800-60 | rgba(58 58 74 / 60%) |
--sbanken-greyscale-1000-30 | rgba(0 0 0 / 30%) |
--carnegie-coldgreen-600 | #007272 |
--carnegie-greyscale-1000-5 | rgba(0 0 0 / 5%) |
--carnegie-greyscale-1000-10 | rgba(0 0 0 / 10%) |
--carnegie-greyscale-1000-30 | rgba(0 0 0 / 30%) |
--carnegie-greyscale-1000-50 | rgba(0 0 0 / 50%) |
Retaining a raw color does not adapt to theme or color mode. Review it separately when the application supports multiple themes.
Background#
Background tokens are used for surfaces, fills and interactive fill states. Typical semantic names in this section are action, neutral, selected and page.
| Token | DNB Light | DNB Dark | Sbanken Light | Sbanken Dark | Carnegie | |
|---|---|---|---|---|---|---|
| action | --token-color-background-action | |||||
| action-alternative | --token-color-background-action-alternative | |||||
| action-alternative-hover-subtle | --token-color-background-action-alternative-hover-subtle | |||||
| action-disabled | --token-color-background-action-disabled | |||||
| action-disabled-ondark | --token-color-background-action-disabled-ondark | |||||
| action-focus | --token-color-background-action-focus | |||||
| action-focus-subtle | --token-color-background-action-focus-subtle | |||||
| action-hover | --token-color-background-action-hover | |||||
| action-hover-inverse | --token-color-background-action-hover-inverse | |||||
| action-hover-ondark | --token-color-background-action-hover-ondark | |||||
| action-hover-subtle | --token-color-background-action-hover-subtle | rgba(0 0 0 / 5%) | ||||
| action-hover-subtle-inverse | --token-color-background-action-hover-subtle-inverse | |||||
| action-hover-subtle-ondark | --token-color-background-action-hover-subtle-ondark | rgba(0 0 0 / 30%) | ||||
| action-inverse | --token-color-background-action-inverse | |||||
| action-ondark | --token-color-background-action-ondark | |||||
| action-pressed | --token-color-background-action-pressed | |||||
| action-pressed-ondark | --token-color-background-action-pressed-ondark | |||||
| action-pressed-subtle | --token-color-background-action-pressed-subtle | rgba(0 0 0 / 10%) | ||||
| action-pressed-subtle-inverse | --token-color-background-action-pressed-subtle-inverse | |||||
| action-pressed-subtle-ondark | --token-color-background-action-pressed-subtle-ondark | rgba(0 0 0 / 50%) | ||||
| error | --token-color-background-error | |||||
| error-subtle | --token-color-background-error-subtle | |||||
| info | --token-color-background-info | |||||
| info-subtle | --token-color-background-info-subtle | |||||
| marketing | --token-color-background-marketing | |||||
| marketing-subtle | --token-color-background-marketing-subtle | |||||
| neutral | --token-color-background-neutral | |||||
| neutral-alternative | --token-color-background-neutral-alternative | |||||
| neutral-base | --token-color-background-neutral-base | |||||
| neutral-bold | --token-color-background-neutral-bold | |||||
| neutral-static | --token-color-background-neutral-static | |||||
| neutral-subtle | --token-color-background-neutral-subtle | |||||
| page-background | --token-color-background-page-background | |||||
| positive | --token-color-background-positive | |||||
| positive-subtle | --token-color-background-positive-subtle | |||||
| selected | --token-color-background-selected | |||||
| selected-ondark | --token-color-background-selected-ondark | |||||
| selected-subtle | --token-color-background-selected-subtle | |||||
| selected-subtle-ondark | --token-color-background-selected-subtle-ondark | |||||
| warning | --token-color-background-warning | |||||
| warning-subtle | --token-color-background-warning-subtle |
Text#
Text tokens are used for readable content, labels and text states.
| Token | DNB Light | DNB Dark | Sbanken Light | Sbanken Dark | Carnegie | |
|---|---|---|---|---|---|---|
| action | --token-color-text-action | |||||
| action-alternative-ondark | --token-color-text-action-alternative-ondark | |||||
| action-disabled | --token-color-text-action-disabled | |||||
| action-disabled-ondark | --token-color-text-action-disabled-ondark | |||||
| action-focus | --token-color-text-action-focus | |||||
| action-hover | --token-color-text-action-hover | |||||
| action-hover-inverse | --token-color-text-action-hover-inverse | |||||
| action-hover-ondark | --token-color-text-action-hover-ondark | |||||
| action-inverse | --token-color-text-action-inverse | |||||
| action-ondark | --token-color-text-action-ondark | |||||
| action-pressed | --token-color-text-action-pressed | |||||
| action-pressed-inverse | --token-color-text-action-pressed-inverse | |||||
| action-pressed-ondark | --token-color-text-action-pressed-ondark | |||||
| error | --token-color-text-error | |||||
| error-inverse | --token-color-text-error-inverse | |||||
| neutral | --token-color-text-neutral | |||||
| neutral-alternative | --token-color-text-neutral-alternative | |||||
| neutral-alternative-inverse | --token-color-text-neutral-alternative-inverse | |||||
| neutral-inverse | --token-color-text-neutral-inverse | |||||
| neutral-ondark | --token-color-text-neutral-ondark | |||||
| neutral-onlight | --token-color-text-neutral-onlight | |||||
| neutral-subtle | --token-color-text-neutral-subtle | |||||
| neutral-subtle-ondark | --token-color-text-neutral-subtle-ondark | |||||
| positive | --token-color-text-positive | |||||
| positive-inverse | --token-color-text-positive-inverse | |||||
| selected | --token-color-text-selected | |||||
| warning | --token-color-text-warning | |||||
| warning-inverse | --token-color-text-warning-inverse |
Icon#
Icon tokens are used for icon colors.
| Token | DNB Light | DNB Dark | Sbanken Light | Sbanken Dark | Carnegie | |
|---|---|---|---|---|---|---|
| action | --token-color-icon-action | |||||
| action-alternative-ondark | --token-color-icon-action-alternative-ondark | |||||
| action-disabled | --token-color-icon-action-disabled | |||||
| action-disabled-ondark | --token-color-icon-action-disabled-ondark | |||||
| action-focus | --token-color-icon-action-focus | |||||
| action-hover | --token-color-icon-action-hover | |||||
| action-hover-inverse | --token-color-icon-action-hover-inverse | |||||
| action-hover-ondark | --token-color-icon-action-hover-ondark | |||||
| action-inverse | --token-color-icon-action-inverse | |||||
| action-ondark | --token-color-icon-action-ondark | |||||
| action-pressed | --token-color-icon-action-pressed | |||||
| action-pressed-inverse | --token-color-icon-action-pressed-inverse | |||||
| action-pressed-ondark | --token-color-icon-action-pressed-ondark | |||||
| error | --token-color-icon-error | |||||
| error-subtle | --token-color-icon-error-subtle | |||||
| info | --token-color-icon-info | |||||
| info-subtle | --token-color-icon-info-subtle | |||||
| marketing | --token-color-icon-marketing | |||||
| marketing-subtle | --token-color-icon-marketing-subtle | |||||
| neutral | --token-color-icon-neutral | |||||
| neutral-alternative | --token-color-icon-neutral-alternative | |||||
| neutral-inverse | --token-color-icon-neutral-inverse | |||||
| neutral-ondark | --token-color-icon-neutral-ondark | |||||
| neutral-static | --token-color-icon-neutral-static | |||||
| positive | --token-color-icon-positive | |||||
| positive-subtle | --token-color-icon-positive-subtle | |||||
| selected | --token-color-icon-selected | |||||
| selected-ondark | --token-color-icon-selected-ondark | |||||
| warning | --token-color-icon-warning | |||||
| warning-subtle | --token-color-icon-warning-subtle |
Stroke#
Stroke tokens are used for borders, dividers, outlines and focus-related line work.
| Token | DNB Light | DNB Dark | Sbanken Light | Sbanken Dark | Carnegie | |
|---|---|---|---|---|---|---|
| action | --token-color-stroke-action | |||||
| action-alternative | --token-color-stroke-action-alternative | |||||
| action-alternative-ondark | --token-color-stroke-action-alternative-ondark | |||||
| action-disabled | --token-color-stroke-action-disabled | |||||
| action-disabled-ondark | --token-color-stroke-action-disabled-ondark | |||||
| action-focus | --token-color-stroke-action-focus | |||||
| action-focus-subtle | --token-color-stroke-action-focus-subtle | |||||
| action-hover | --token-color-stroke-action-hover | |||||
| action-hover-inverse | --token-color-stroke-action-hover-inverse | |||||
| action-hover-ondark | --token-color-stroke-action-hover-ondark | |||||
| action-inverse | --token-color-stroke-action-inverse | |||||
| action-ondark | --token-color-stroke-action-ondark | |||||
| action-pressed | --token-color-stroke-action-pressed | |||||
| action-pressed-inverse | --token-color-stroke-action-pressed-inverse | |||||
| action-pressed-ondark | --token-color-stroke-action-pressed-ondark | |||||
| error | --token-color-stroke-error | |||||
| info | --token-color-stroke-info | |||||
| marketing | --token-color-stroke-marketing | |||||
| neutral | --token-color-stroke-neutral | |||||
| neutral-alternative | --token-color-stroke-neutral-alternative | |||||
| neutral-base | --token-color-stroke-neutral-base | |||||
| neutral-bold | --token-color-stroke-neutral-bold | |||||
| neutral-ondark | --token-color-stroke-neutral-ondark | |||||
| neutral-subtle | --token-color-stroke-neutral-subtle | |||||
| positive | --token-color-stroke-positive | |||||
| selected | --token-color-stroke-selected | |||||
| selected-ondark | --token-color-stroke-selected-ondark | |||||
| warning | --token-color-stroke-warning |
Decorative#
Decorative tokens are colors to use for advanced custom decorative needs where the semantic color tokens are not the right fit. They should not be used for text. For text on dark decorative backgrounds, use the ondark text tokens, and for other backgrounds, use the neutral text tokens.
If you use decorative tokens, the First, Second, and Third sets are intended to be used one at a time, because the colors inside each set are designed to match each other.
| Token | DNB Light | DNB Dark | Sbanken Light | Sbanken Dark | Carnegie | ||
|---|---|---|---|---|---|---|---|
| First | base | --token-color-decorative-first-base | |||||
| First | base-static | --token-color-decorative-first-base-static | |||||
| First | bold | --token-color-decorative-first-bold | |||||
| First | bold-static | --token-color-decorative-first-bold-static | |||||
| First | intense | --token-color-decorative-first-intense | |||||
| First | intense-static | --token-color-decorative-first-intense-static | |||||
| First | muted | --token-color-decorative-first-muted | |||||
| First | muted-static | --token-color-decorative-first-muted-static | |||||
| First | subtle | --token-color-decorative-first-subtle | |||||
| First | subtle-static | --token-color-decorative-first-subtle-static | |||||
| Second | base | --token-color-decorative-second-base | |||||
| Second | base-static | --token-color-decorative-second-base-static | |||||
| Second | bold | --token-color-decorative-second-bold | |||||
| Second | bold-static | --token-color-decorative-second-bold-static | |||||
| Second | intense | --token-color-decorative-second-intense | |||||
| Second | intense-static | --token-color-decorative-second-intense-static | |||||
| Second | muted | --token-color-decorative-second-muted | |||||
| Second | muted-static | --token-color-decorative-second-muted-static | |||||
| Second | subtle | --token-color-decorative-second-subtle | |||||
| Second | subtle-static | --token-color-decorative-second-subtle-static | |||||
| Third | base | --token-color-decorative-third-base | |||||
| Third | base-static | --token-color-decorative-third-base-static | |||||
| Third | bold | --token-color-decorative-third-bold | |||||
| Third | bold-static | --token-color-decorative-third-bold-static | |||||
| Third | intense | --token-color-decorative-third-intense | |||||
| Third | intense-static | --token-color-decorative-third-intense-static | |||||
| Third | muted | --token-color-decorative-third-muted | |||||
| Third | muted-static | --token-color-decorative-third-muted-static | |||||
| Third | subtle | --token-color-decorative-third-subtle | |||||
| Third | subtle-static | --token-color-decorative-third-subtle-static |
Component#
NB: Do not use. These tokens are reserved for internal use only.
Component tokens are the component-specific layer. They are useful when a broad semantic token is not precise enough and the API needs a token with an explicit component role, such as button, tooltip or table.
After -component-, the next segment is the component name, followed by the role path. Example:
--token-color-component-button-background-action.
| Token | DNB Light | DNB Dark | Sbanken Light | Sbanken Dark | Carnegie | |
|---|---|---|---|---|---|---|
| button | --token-color-component-button-background-action | |||||
| button | --token-color-component-button-background-action-destructive | |||||
| button | --token-color-component-button-background-action-destructive-hover | |||||
| button | --token-color-component-button-background-action-destructive-hover-subtle | |||||
| button | --token-color-component-button-background-action-destructive-pressed | |||||
| button | --token-color-component-button-background-action-destructive-pressed-subtle | |||||
| button | --token-color-component-button-background-action-hover | |||||
| button | --token-color-component-button-icon-action | |||||
| button | --token-color-component-button-icon-action-destructive | |||||
| button | --token-color-component-button-icon-action-destructive-hover | |||||
| button | --token-color-component-button-icon-action-destructive-pressed | |||||
| button | --token-color-component-button-icon-action-disabled | |||||
| button | --token-color-component-button-icon-action-hover | |||||
| button | --token-color-component-button-icon-neutral | |||||
| button | --token-color-component-button-icon-neutral-destructive | |||||
| button | --token-color-component-button-icon-neutral-ondark | |||||
| button | --token-color-component-button-stroke-action | |||||
| button | --token-color-component-button-stroke-action-destructive | |||||
| button | --token-color-component-button-stroke-action-destructive-hover | |||||
| button | --token-color-component-button-stroke-action-destructive-pressed | |||||
| button | --token-color-component-button-stroke-action-hover | |||||
| button | --token-color-component-button-stroke-selected | rgba(20 85 90 / 40%) | rgba(165 225 210 / 40%) | rgba(78 8 188 / 40%) | rgba(146 238 205 / 40%) | |
| button | --token-color-component-button-text-action | |||||
| button | --token-color-component-button-text-action-destructive | |||||
| button | --token-color-component-button-text-action-destructive-hover | |||||
| button | --token-color-component-button-text-action-destructive-pressed | |||||
| button | --token-color-component-button-text-action-disabled | |||||
| button | --token-color-component-button-text-action-hover | |||||
| button | --token-color-component-button-text-action-hover-inverse | |||||
| button | --token-color-component-button-text-action-hover-ondark | |||||
| button | --token-color-component-button-text-action-inverse | |||||
| button | --token-color-component-button-text-action-ondark | |||||
| button | --token-color-component-button-text-neutral | |||||
| button | --token-color-component-button-text-neutral-destructive | |||||
| button | --token-color-component-button-text-neutral-inverse | |||||
| button | --token-color-component-button-text-neutral-ondark | |||||
| dimmer | --token-color-component-dimmer-background | rgba(0 0 0 / 30%) | rgba(51 51 51 / 60%) | rgba(0 0 0 / 30%) | rgba(58 58 74 / 60%) | rgba(0 0 0 / 30%) |
| progressbar | --token-color-component-progressbar-neutral-onsubtle | |||||
| switch | --token-color-component-switch-action-disabled-ondark | |||||
| tooltip | --token-color-component-tooltip-background-neutral |