Design Tokens 8.0.1

Design tokens are a tech-agnostic way to store variables. We use tokens instead of hard coded values to ensure a better UI consistency across different platforms.

Color

Example Description Token

6.17

#3559c7

Color Accent

Accent color for Therapy. Used as primary button background, hero area background, and as a link color. This color provides accessible contrast when used for text on light background.

Copy code
var(--n-color-accent)

6.17

#3559c7

Color Accent Secondary

Used for theming purposes to style the background of the top bar in addition to the navigation header. By default, this aliases the accent color, but can be set to a custom color if necessary.

Copy code
var(--n-color-accent-secondary)

9.57

16.01

5.79

#f6f8f8

Color Active

Default active color for Therapy.

Copy code
var(--n-color-active)

4.53

9.84

16.46

5.95

#fafbfb

Color Background

Default application background color for Therapy. Should be set to either html or body element.

Copy code
var(--n-color-background)

7.52

12.58

4.55

#d8dee4

Color Border

Default border color for Therapy.

Copy code
var(--n-color-border)

6.79

11.36

#fac7be

Color Border Danger

Danger border color. Used for the danger badge border style.

Copy code
var(--n-color-border-danger)

6.9

11.55

#e3ccf4

Color Border Highlight

Highlight border color. Used for the highlight badge border style.

Copy code
var(--n-color-border-highlight)

4.7

#667680

Color Border Hover

Default border hover color for Therapy.

Copy code
var(--n-color-border-hover)

6.89

11.53

#c6d4f9

Color Border Info

Info border color. Used for the info badge border style.

Copy code
var(--n-color-border-info)

7.39

12.35

#d7dce0

Color Border Neutral

Neutral border color. Used for the neutral badge border style.

Copy code
var(--n-color-border-neutral)

7.43

12.42

#b0e5ee

Color Border Progress

Progress border color.

Copy code
var(--n-color-border-progress)

5.83

9.75

#bcc5cc

Color Border Strong

Strong border color for Therapy for highlighting specific parts in the user interface.

Copy code
var(--n-color-border-strong)

6.94

11.6

#b7dfba

Color Border Success

Success border color. Used for the success badge border style.

Copy code
var(--n-color-border-success)

7.34

12.27

#f8d87c

Color Border Warning

Warning border color. Used for the warning badge border style.

Copy code
var(--n-color-border-warning)

4.7

10.2

17.06

6.17

#ffffff

Color Button

Default button background color for Therapy.

Copy code
var(--n-color-button)

9.57

16.01

5.79

#f6f8f8

Color Button Hover

Default button hover background color for Therapy.

Copy code
var(--n-color-button-hover)

9.57

16.01

5.79

#f6f8f8

Color Header

Default header background color for modals.

Copy code
var(--n-color-header)

4.7

#667680

Color Icon

Default icon color for Therapy.

Copy code
var(--n-color-icon)

17.06

#0c1a3d

Color Icon Hover

Default icon hover color for Therapy.

Copy code
var(--n-color-icon-hover)

6.38

#8fa1aa

Color Nav Heading

Default heading color for sidebar navigation.

Copy code
var(--n-color-nav-heading)

9.57

16.01

5.79

#f6f8f8

Color Nav Hover

Default hover color for sidebar navigation.

Copy code
var(--n-color-nav-hover)

4.7

10.2

17.06

6.17

#ffffff

Color Nav Surface

Default surface color for sidebar navigation. Used as alias for default button hover background and active hover color as well.

Copy code
var(--n-color-nav-surface)

rgba(144, 152, 152, 0.4)

Color Overlay

Default overlay color for Therapy. Use this to distinguish modal and popout layers from the layer underneath.

Copy code
var(--n-color-overlay)

4.67

#d24023

Color Status Danger

Default danger status color for Therapy. Used to communicate problems that have to be resolved so that user can continue forward. This color should be always used for e.g. highlighting errors.

Copy code
var(--n-color-status-danger)

9.21

15.4

5.57

#fff0ee

Color Status Danger Weak

Weak danger status color. Used to communicate problems that have to be resolved so that user can continue forward. This color should be always used for e.g. highlighting errors.

Copy code
var(--n-color-status-danger-weak)

5.18

#8e4ec6

Color Status Highlight

Default highlight status color for Therapy. Used to highlight specific items in the interface.

Copy code
var(--n-color-status-highlight)

9.25

15.47

5.59

#f9f1fe

Color Status Highlight Weak

Weak highlight status color. Used to highlight specific items in the interface.

Copy code
var(--n-color-status-highlight-weak)

5.21

#3e63dd

Color Status Info

Default info status color for Therapy. Used to convey something informal.

Copy code
var(--n-color-status-info)

9.27

15.51

5.61

#f0f4ff

Color Status Info Weak

Weak info status color. Used to convey something informal.

Copy code
var(--n-color-status-info-weak)

4.7

10.2

17.06

6.17

#ffffff

Color Status Neutral

Default neutral status color for Therapy.

Copy code
var(--n-color-status-neutral)

9.17

15.34

5.54

#f1f3f5

Color Status Neutral Weak

Weak neutral status color for Therapy. Used for the badge default state.

Copy code
var(--n-color-status-neutral-weak)

4.65

#e75436

Color Status Notification

Default notification indicator color for Therapy. Used to convey unread information.

Copy code
var(--n-color-status-notification)

4.67

#007f99

Color Status Progress

Default progress status color for Therapy. Used to convey something is in progress.

Copy code
var(--n-color-status-progress)

9.4

15.71

5.68

#e7f9fb

Color Status Progress Weak

Weak progress status color. Used to convey something is in progress.

Copy code
var(--n-color-status-progress-weak)

4.66

#1d8633

Color Status Success

Default success status color for Therapy. Used to convey success states. For example, you might show a success message that tells the user that changes were saved or something was completed.

Copy code
var(--n-color-status-success)

9.37

15.67

5.66

#ebf9eb

Color Status Success Weak

Weak success status color. Used to convey success states. For example, you might show a success message that tells the user that changes were saved or something was completed.

Copy code
var(--n-color-status-success-weak)

6.7

11.21

#f6cd5a

Color Status Warning

Default warning status color for Therapy. Used to display information that needs user’s attention and may require further steps.

Copy code
var(--n-color-status-warning)

9.72

16.26

5.88

#fffae1

Color Status Warning Weak

Weak warning status color. Used to display information that needs a user’s attention and may require further steps.

Copy code
var(--n-color-status-warning-weak)

4.7

10.2

17.06

6.17

#ffffff

Color Surface

Default application surface color for Therapy. Use this for e.g. card backgrounds.

Copy code
var(--n-color-surface)

8.31

13.9

5.02

#e6e8eb

Color Surface Lowered

Default lowered surface color for Therapy. Use this when you need to make a specific layer to appear lower than the surface color, e.g. progress bar.

Copy code
var(--n-color-surface-lowered)

4.53

9.84

16.46

5.95

#fafbfb

Color Surface Raised

Default raised surface color for Therapy. Use this when you need to separate a specific layer from the surface color, e.g. table headers.

Copy code
var(--n-color-surface-raised)

17.06

#0c1a3d

Color Text

Default text color. Used as the main text color throughout the UI. Provides good and legible contrast for our content.

Copy code
var(--n-color-text)

6.31

#b23015

Color Text Danger

Default text color for danger messages for Therapy. Also used for the danger badge text.

Copy code
var(--n-color-text-danger)

4.67

#d24023

Color Text Error

Default text color for error messages for Therapy. Also used for the danger badge text.

Copy code
var(--n-color-text-error)

6.91

#793aaf

Color Text Highlight

Highlight text color. Used for the highlight badge text.

Copy code
var(--n-color-text-highlight)

7.08

#3451b2

Color Text Info

Info text color. Used for the info badge text.

Copy code
var(--n-color-text-info)

6.17

#3559c7

Color Text Link

Default link text color for Therapy. Used for all paragraph level links in an user interface.

Copy code
var(--n-color-text-link)

7.06

#55595d

Color Text Neutral

Neutral text color. Used for the neutral badge text.

Copy code
var(--n-color-text-neutral)

17.93

#11181c

Color Text Neutral Strong

Strong neutral text color. Used for the strong neutral badge text.

Copy code
var(--n-color-text-neutral-strong)

4.7

10.2

17.06

6.17

#ffffff

Color Text on Accent

Default text on accent color for Therapy. Used when text sits on the acccent color or a dark background.

Copy code
var(--n-color-text-on-accent)

5.97

#016d83

Color Text Progress

Progress text color.

Copy code
var(--n-color-text-progress)

5.76

#117627

Color Text Success

Default text color for success messages for Therapy. Also used for the success badge text.

Copy code
var(--n-color-text-success)

4.91

#946900

Color Text Warning

Warning text color. Used for the warning badge text.

Copy code
var(--n-color-text-warning)

14.47

#332810

Color Text Warning Strong

Strong warning text color. Used for the strong warning badge text.

Copy code
var(--n-color-text-warning-strong)

10.2

#36434a

Color Text Weak

Weak text color for Therapy. Used for e.g. introduction paragraphs and help texts that are coupled with form elements.

Copy code
var(--n-color-text-weak)

4.7

#667680

Color Text Weaker

Weaker text color for Therapy. Used for e.g. disabled buttons, footers, table headings, captions and placeholder texts.

Copy code
var(--n-color-text-weaker)

5.18

8.67

#b2babf

Color Text Weakest

Weakest text color for Therapy. Used for e.g. disabled input text and placeholder text in focused inputs.

Copy code
var(--n-color-text-weakest)

Border Radius

Example Description Token

0.02em

Border Radius Sharp

This is sharp border radius.

Copy code
var(--n-border-radius-sharp)

3px

Border Radius Small

This is small border radius.

Copy code
var(--n-border-radius-s)

5px

Border Radius

This is the default border radius.

Copy code
var(--n-border-radius)

50%

Border Radius Circle

This is for creating rounded avatars and similar objects.

Copy code
var(--n-border-radius-circle)

999px

Border Radius Pill

This is for creating pill shaped tags and similar.

Copy code
var(--n-border-radius-pill)

Box Shadow

Example Description Token

0 1px 3px rgba(12, 12, 12, 0.09)

Box Shadow

Default box shadow. Used with buttons, active states, and such.

Copy code
var(--n-box-shadow)

0 1px 5px rgba(12, 12, 12, 0.05)

Box Shadow Header

Default box shadow for header component.

Copy code
var(--n-box-shadow-header)

0 0 0 1px var(--n-color-border), 0 1px 5px rgba(12, 12, 12, 0.05), 0 0 40px rgba(12, 12, 12, 0.015)

Box Shadow Card

Default box shadow for card component that creates drop shadow, raised surface, and a border around the card.

Copy code
var(--n-box-shadow-card)

0 0 0 1px var(--n-color-border), 0 5px 17px rgba(12, 12, 12, 0.14)

Box Shadow Nav

Default box shadow for navigation component. Used in collapsed state.

Copy code
var(--n-box-shadow-nav)

0 4px 12px rgba(12, 12, 12, 0.15), 0 0 0 1px rgba(0, 0, 0, 0.05)

Box Shadow Popout

Default box shadow to be used with all pop out windows.

Copy code
var(--n-box-shadow-popout)

0 24px 38px 3px rgba(12, 12, 12, 0.16), 0 9px 86px 8px rgba(12, 12, 12, 0.1), 0 11px 15px -7px rgba(12, 12, 12, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.05)

Box Shadow Modal

Default box shadow for modal component. Used in dialogs, modals, and such.

Copy code
var(--n-box-shadow-modal)

Font Size

Example Description Token

Quick brown fox

2.25rem

Font Size XXXL

This is the xxx-large font size.

Copy code
var(--n-font-size-xxxl)

Quick brown fox

1.5rem

Font Size XXL

This is the xx-large font size.

Copy code
var(--n-font-size-xxl)

Quick brown fox

1.25rem

Font Size XL

This is the x-large font size.

Copy code
var(--n-font-size-xl)

Quick brown fox

1rem

Font Size L

This is the large font size.

Copy code
var(--n-font-size-l)

Quick brown fox

0.875rem

Font Size M

This is the base font size.

Copy code
var(--n-font-size-m)

Quick brown fox

0.75rem

Font Size S

This is the small font size.

Copy code
var(--n-font-size-s)

Quick brown fox

0.6875rem

Font Size XS

This is the x-small font size.

Copy code
var(--n-font-size-xs)

Font

Example Description Token

Quick brown fox

'Nordhealth Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'

Font Family

Inter is the default UI font family utilized by all our applications.

Copy code
var(--n-font-family)

Quick brown fox

'Nordhealth Mono', monospace, monospace

Font Family Code

This font family is utilized by all our themes for code.

Copy code
var(--n-font-family-code)

iIl!1230

'kern' 1, 'tnum' 1, 'calt' 1, 'case' 1, 'cv05' 1, 'zero' 1, 'cv08' 0, 'ss03' 1

Font Features

This token includes the default font feature settings to be used together with our font family.

Copy code
var(--n-font-features)

iIl!1230

'kern' 1, 'tnum' 0, 'calt' 1, 'case' 1, 'cv05' 1, 'zero' 0, 'cv08' 0, 'ss03' 1

Font Features Reduced

This token includes a font feature variation with reduced legibility. This is mainly used for display headings.

Copy code
var(--n-font-features-reduced)

Quick brown fox

400

Font Weight Default

Default font weight for body text.

Copy code
var(--n-font-weight)

Quick brown fox

500

Font Weight Active

Default font weight for active items.

Copy code
var(--n-font-weight-active)

Quick brown fox

600

Font Weight Heading

Default font weight for headings.

Copy code
var(--n-font-weight-heading)

Quick brown fox

670

Font Weight Strong

Default font weight for strong.

Copy code
var(--n-font-weight-strong)

Line Height

Example Description Token

1.15

1.15 renders as 16.1px with 14px font.

Line Height Tight

This token can be used when you don’t want line height taking any extra space.

Copy code
var(--n-line-height-tight)

1.2

1.2 renders as 16.8px with 14px font.

Line Height Heading

This is the default line height for headings.

Copy code
var(--n-line-height-heading)

1.3

1.3 renders as 18.2px with 14px font.

Line Height Caption

This is the default line height for captions, hint texts and form errors.

Copy code
var(--n-line-height-caption)

1.5

1.5 renders as 21px with 14px font.

Line Height

This is the default line height for body text.

Copy code
var(--n-line-height)

20px

20px renders as 20px with 14px font.

Line Height Form

This is the default line height for form inputs, textareas and buttons.

Copy code
var(--n-line-height-form)

Size

Example Description Token

8px

Size Icon XXS

This is a xx-small size for icons. Most commonly used for the caret icons inside navigation items and page progress icons.

Copy code
var(--n-size-icon-xxs)

10px

Size Icon XS

This is a x-small size for icons. Most commonly used inside small form fields and buttons.

Copy code
var(--n-size-icon-xs)

12px

Size Icon S

This is a small size for icons. Most commonly used for icons inside buttons and select menu toggles.

Copy code
var(--n-size-icon-s)

16px

Size Icon M

This is a medium size for icons. Most commonly used for icons that sit inside large buttons.

Copy code
var(--n-size-icon-m)

24px

Size Icon L

This is a large size for icons. Most commonly used for illustrative purposes.

Copy code
var(--n-size-icon-l)

36px

Size Icon XL

This is a x-large size for icons. Most commonly used for illustrative purposes.

Copy code
var(--n-size-icon-xl)

52px

Size Top Bar

This is the default height of the top bar. It is also used for the small header variant.

Copy code
var(--n-size-top-bar)

72px

Size Icon XXL

This is a xx-large size for icons. Most commonly used for illustrative purposes.

Copy code
var(--n-size-icon-xxl)

Space

Example Description Token

4px

Space XS

This is a x-small space.

Copy code
var(--n-space-xs)

8px

Space S

This is a small space.

Copy code
var(--n-space-s)

16px

Space M

This is a medium space.

Copy code
var(--n-space-m)

24px

Space L

This is a large space.

Copy code
var(--n-space-l)

36px

Space XL

This is a x-large space.

Copy code
var(--n-space-xl)

72px

Space XXL

This is a xx-large space.

Copy code
var(--n-space-xxl)

Transition

Example Description Token

0.05s ease

Transition Quickly

Use this design token for a quick transition. Most often used for quick hover effects on things such as links, icons and more.

Copy code
var(--n-transition-quickly)

0.2s ease

Transition Slowly

Use this design token for a slow transition. Used for example in modals, tooltips, collapsing elements, and more.

Copy code
var(--n-transition-slowly)

0.4s ease

Transition Mobile

Use this design token for mobile menu transitions. Used for example in the mobile version of popout and dropdown.

Copy code
var(--n-transition-mobile)

Z-index

Example Description Token

-999999

Z-Index: Deep

Deep z-index is used to stack something behind everything else.

Copy code
var(--n-index-deep)

1

Z-Index: Default

The default z-index for components and elements inside components.

Copy code
var(--n-index-default)

100

Z-Index: Masked

Default z-index for masked interface elements.

Copy code
var(--n-index-masked)

200

Z-Index: Mask

Default z-index for masking interface elements.

Copy code
var(--n-index-mask)

300

Z-Index: Sticky

Default z-index for sticky interface elements.

Copy code
var(--n-index-sticky)

400

Z-Index: Navigation

Default z-index for navigation.

Copy code
var(--n-index-nav)

500

Z-Index: Top bar

Default z-index for top bar.

Copy code
var(--n-index-top-bar)

600

Z-Index: Overlay

Default z-index for modal and popup overlays.

Copy code
var(--n-index-overlay)

700

Z-Index: Spinner

Default z-index for spinners, stacking on top of overlay.

Copy code
var(--n-index-spinner)

800

Z-Index: Popout

Default z-index for popouts that stacks on top of all other elements.

Copy code
var(--n-index-popout)

900

Z-Index: Toast

Default z-index for toast messages.

Copy code
var(--n-index-toast)

1000

Z-Index: Modal

Default z-index for modals that stacks on top of overlays and other elements, but still allows popups to be visible.

Copy code
var(--n-index-modal)

Usage

Design tokens are a central location to store design related information such as colors, fonts, sizes and transitions. These raw values are automatically transformed to different formats like Sass, CSS, JSON and more.

Nord Design System uses design tokens instead of hard coded values to ensure a better UI consistency across different platforms.

Please note that in most cases you will want to install our CSS Framework instead of Design Tokens package directly. CSS Framework imports this package internally and gives you both the design tokens and a wide range of shorthand utility classes to modify an element's appearance in your application.

Installation

Before moving further, please make sure you have Node.js installed on your machine. You can install the latest version through their website.

If you're planning on using Nord Design Tokens in a project that doesn't yet use Node Package Manager, you'll have to first create a package.json file. To do this, run npm init and follow the steps provided. Once finished, you can install Nord Design Tokens by following the instructions below.

Install using NPM

Run in your project or website root directory (where package.json lives):

Copy code
npm install @nordhealth/tokens

Importing CSS Custom Properties

CSS Custom properties (sometimes referred to as CSS variables) are the recommended way to use Nord's Design Tokens. You can import them in plain CSS or Sass:

Copy code
/* Import as CSS variables */
@import '~@nordhealth/tokens/lib/tokens.custom-properties.css';

.example {
  color: var(--n-color-accent);
}

If you're not using Webpack or similar tool for your build process, you may have to provide the full path to Node Modules:

Copy code
// Import as basic variables
@import '/node_modules/@nordhealth/tokens/lib/tokens.custom-properties.css';

.example {
  color: var(--n-color-accent);
}

Importing in HTML

CSS Custom properties can be imported in HTML as well. This is the most common and straightforward way to use them. Add the following to the <head> section of your app to get started:

Copy code
<link rel="stylesheet" href="https://nordcdn.net/ds/tokens/8.0.1/tokens.custom-properties.css" integrity="sha384-qCiPLdt2VjJz4MEQ7ND7HvInjq2aKTxPgKJQjD/nMFXhSvqFWJ8ya6T/JCkXN+Qa" crossorigin="anonymous" />

Importing in JavaScript

In JavaScript, token names are formatted in lower camelCase. To import the design tokens, require the provided ES module:

Copy code
// Import design tokens
const tokens = require('@nordhealth/tokens')

// Console.log accent color value
console.log(tokens.nColorAccent)

In JSON, design token names are formatted in snake_case:

Copy code
// Import design tokens
const tokens = require('@nordhealth/tokens/lib/tokens.json')

// Console.log accent color value
console.log(tokens.n_color_accent)

If your project supports ECMAScript Modules, you can also use the import syntax:

Copy code
// Import design tokens
import * as tokens from '@nordhealth/tokens'

// …or… import a single design token
import { nColorAccent } from '@nordhealth/tokens'

Importing in Sass

Sass variables and map keys are formatted in kebab-case. There're a few ways to import them. The simplest way is to reference and import the tokens partial directly:

Copy code
// Import as basic variables
@import '~@nordhealth/tokens/lib/tokens.scss';

.example {
  color: $n-color-accent;
}

// Import a Sass map of all tokens
@import '~@nordhealth/tokens/lib/tokens.map.scss';

.example {
  color: map-get($tokens-map, 'n-color-accent');
}

Accessing brand themes in JavaScript and Sass

All our brand specific tokens have an appendix in their name. We don't surface this in the token documentation because the recommended way to use the tokens is via CSS Custom Properties that allows us to use the Nord Themes package to override the default colors.

If you have a need to directly access specific brand's colors in e.g. Sass or JavaScript, you can do it by adding the following appendix into the color name:

Copy code
.example {
  // To access veterinary brand colors, use -vet appendix
  color: $n-color-accent-vet;

  // To access therapy brand colors (default), no appendix is needed
  color: $n-color-accent;
}

Same when using our Common.js module:

Copy code
// To access veterinary brand colors, use Vet appendix
console.log(tokens.nColorAccentVet)

// To access therapy brand colors (default), no appendix is needed
console.log(tokens.nColorAccent)

List of all available formats

Below you can find a list of all available formats and paths to them.

  • Sass: @nordhealth/tokens/lib/tokens.scss
  • Sass Map: @nordhealth/tokens/lib/tokens.map.scss
  • CSS Custom Properties: @nordhealth/tokens/lib/tokens.custom-properties.css
  • Less: @nordhealth/tokens/lib/tokens.less
  • Stylus: @nordhealth/tokens/lib/tokens.styl
  • Module.js: @nordhealth/tokens/lib/tokens.module.js
  • Common.js: @nordhealth/tokens/lib/tokens.common.js
  • JSON: @nordhealth/tokens/lib/tokens.json
  • Raw JSON: @nordhealth/tokens/lib/tokens.raw.json
  • iOS JSON: @nordhealth/tokens/lib/tokens.ios.json
  • Android XML: @nordhealth/tokens/lib/tokens.android.xml

Testing integration

To quickly test if Nord Design Tokens are correctly installed, follow the below steps.

  1. Require common.js module: const tokens = require("@nordhealth/tokens")
  2. Use console log to output a list of all tokens: console.log(tokens)
  3. If everything works, you should now see a long list of Design Tokens in your console.

Examples

Developing tokens

The design tokens package in Nord Design System can be found under packages/tokens. It's built with Theo that transforms YAML based design tokens into a variety of output formats.

The following are the most commonly used commands during development:

  • pnpm start - Compile tokens, start watching for changes.
  • pnpm build - Builds the project.
  • pnpm test - Run all tests once.

Can I use Nord in my own project?

Nord Design System is solely meant for building digital products and experiences for Nordhealth. Please see the terms of use for full license details.

Getting support

If you experience any issues while getting started with Nord Design Tokens, please head over to the Support page for more guidelines and help.

Was this page helpful?

Yes No

We use this feedback to improve our documentation.