Skip to content

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#

SectionTokensUsage
Background41For external use. Use the filters in each section to narrow tokens to the variants you need.
Text28For external use. Use the filters in each section to narrow tokens to the variants you need.
Icon30For external use. Use the filters in each section to narrow tokens to the variants you need.
Stroke28For external use. Use the filters in each section to narrow tokens to the variants you need.
Decorative30For advanced custom decorative needs.
Component40For 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, bold or static). Multiple modifiers combine with AND.
  • 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:

TokenDNB and Eiendom light: before → afterDNB 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 useRecommended 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 variablePrevious value
--dnb-coldgreen-300-40rgba(165 225 210 / 40%)
--dnb-coldgreen-700-40rgba(20 85 90 / 40%)
--dnb-greyscale-800-60rgba(51 51 51 / 60%)
--dnb-greyscale-1000-30rgba(0 0 0 / 30%)
--sbanken-purple-700-40rgba(78 8 188 / 40%)
--sbanken-green-300-40rgba(146 238 205 / 40%)
--sbanken-greyscale-800-60rgba(58 58 74 / 60%)
--sbanken-greyscale-1000-30rgba(0 0 0 / 30%)
--carnegie-coldgreen-600#007272
--carnegie-greyscale-1000-5rgba(0 0 0 / 5%)
--carnegie-greyscale-1000-10rgba(0 0 0 / 10%)
--carnegie-greyscale-1000-30rgba(0 0 0 / 30%)
--carnegie-greyscale-1000-50rgba(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.

Filter background tokens
TokenDNB LightDNB DarkSbanken LightSbanken DarkCarnegie
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-subtlergba(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-ondarkrgba(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-subtlergba(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-ondarkrgba(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.

Filter text tokens
TokenDNB LightDNB DarkSbanken LightSbanken DarkCarnegie
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.

Filter icon tokens
TokenDNB LightDNB DarkSbanken LightSbanken DarkCarnegie
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.

Filter stroke tokens
TokenDNB LightDNB DarkSbanken LightSbanken DarkCarnegie
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.

Show decorative token groups
Show decorative token variants
TokenDNB LightDNB DarkSbanken LightSbanken DarkCarnegie
Firstbase--token-color-decorative-first-base
Firstbase-static--token-color-decorative-first-base-static
Firstbold--token-color-decorative-first-bold
Firstbold-static--token-color-decorative-first-bold-static
Firstintense--token-color-decorative-first-intense
Firstintense-static--token-color-decorative-first-intense-static
Firstmuted--token-color-decorative-first-muted
Firstmuted-static--token-color-decorative-first-muted-static
Firstsubtle--token-color-decorative-first-subtle
Firstsubtle-static--token-color-decorative-first-subtle-static
Secondbase--token-color-decorative-second-base
Secondbase-static--token-color-decorative-second-base-static
Secondbold--token-color-decorative-second-bold
Secondbold-static--token-color-decorative-second-bold-static
Secondintense--token-color-decorative-second-intense
Secondintense-static--token-color-decorative-second-intense-static
Secondmuted--token-color-decorative-second-muted
Secondmuted-static--token-color-decorative-second-muted-static
Secondsubtle--token-color-decorative-second-subtle
Secondsubtle-static--token-color-decorative-second-subtle-static
Thirdbase--token-color-decorative-third-base
Thirdbase-static--token-color-decorative-third-base-static
Thirdbold--token-color-decorative-third-bold
Thirdbold-static--token-color-decorative-third-bold-static
Thirdintense--token-color-decorative-third-intense
Thirdintense-static--token-color-decorative-third-intense-static
Thirdmuted--token-color-decorative-third-muted
Thirdmuted-static--token-color-decorative-third-muted-static
Thirdsubtle--token-color-decorative-third-subtle
Thirdsubtle-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.

Filter component tokens
TokenDNB LightDNB DarkSbanken LightSbanken DarkCarnegie
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-selectedrgba(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-backgroundrgba(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
Suggest an edit