Clickto expand
Design Tokens9.0.4
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
General
These colors can be used anywhere and map to Tailwind's text-*, bg-* and border-* utilities (e.g. n:text-accent).
5 tokens · nord
| Example | Description | Token |
|---|---|---|
6.17 #3559c7 | Color Accent Primary accent for buttons, links and highlighted areas. | |
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 colour, but can be set to a custom colour if necessary. | |
9.57 16.01 5.79 #f6f8f8 | Color Active Default active colour. | |
4.7 #667680 | Color Icon Default icon colour. | |
17.06 #0c1a3d | Color Icon Hover Default icon hover colour. | |
Text
These colors are intended for text and map to Tailwind's text-* utilities (e.g. n:text-weak).
17 tokens · nord
| Example | Description | Token |
|---|---|---|
6.38 #8fa1aa | Color Nav Heading Default heading colour for sidebar navigation. | |
17.06 #0c1a3d | Color Text Default text colour. Used as the main text colour throughout the UI. Provides good and legible contrast for our content. | |
6.31 #b23015 | Color Text Danger Default text colour for danger messages. Also used for the danger badge text. | |
4.67 #d24023 | Color Text Error Default text colour for error messages. Also used for the danger badge text. | |
6.91 #793aaf | Color Text Highlight Highlight text colour. Used for the highlight badge text. | |
7.08 #3451b2 | Color Text Info Info text colour. Used for the info badge text. | |
6.17 #3559c7 | Color Text Link Default link text colour. Used for all paragraph level links in an user interface. | |
7.06 #55595d | Color Text Neutral Neutral text colour. Used for the neutral badge text. | |
17.93 #11181c | Color Text Neutral Strong Strong neutral text colour. Used for the strong neutral badge text. | |
4.7 10.2 17.06 6.17 #ffffff | Color Text on Accent Default text on accent colour. Used when text sits on the acccent colour or a dark background. | |
5.97 #016d83 | Color Text Progress Progress text colour. | |
5.76 #117627 | Color Text Success Default text colour for success messages. Also used for the success badge text. | |
4.91 #946900 | Color Text Warning Warning text colour. Used for the warning badge text. | |
14.47 #332810 | Color Text Warning Strong Strong warning text colour. Used for the strong warning badge text. | |
10.2 #36434a | Color Text Weak Weak text colour. Used for e.g. introduction paragraphs and help texts that are coupled with form elements. | |
4.7 #667680 | Color Text Weaker Weaker text colour. Used for e.g. disabled buttons, footers, table headings, captions and placeholder texts. | |
5.18 8.67 #b2babf | Color Text Weakest Weakest text colour. Used for e.g. disabled input text and placeholder text in focused inputs. | |
Border
These colors are intended for borders and map to Tailwind's border-* utilities (e.g. n:border-strong).
10 tokens · nord
| Example | Description | Token |
|---|---|---|
7.52 12.58 4.55 #d8dee4 | Color Border Default border colour. | |
6.79 11.36 #fac7be | Color Border Danger Danger border colour. Used for the danger badge border style. | |
6.9 11.55 #e3ccf4 | Color Border Highlight Highlight border colour. Used for the highlight badge border style. | |
4.7 #667680 | Color Border Hover Default border hover colour. | |
6.89 11.53 #c6d4f9 | Color Border Info Info border colour. Used for the info badge border style. | |
7.39 12.35 #d7dce0 | Color Border Neutral Neutral border colour. Used for the neutral badge border style. | |
7.43 12.42 #b0e5ee | Color Border Progress Progress border colour. | |
5.83 9.75 #bcc5cc | Color Border Strong Strong border colour for highlighting specific parts in the user interface. | |
6.94 11.6 #b7dfba | Color Border Success Success border colour. Used for the success badge border style. | |
7.34 12.27 #f8d87c | Color Border Warning Warning border colour. Used for the warning badge border style. | |
Background
These colors are intended for backgrounds and map to Tailwind's bg-* utilities (e.g. n:bg-surface).
28 tokens · nord
| Example | Description | Token |
|---|---|---|
4.53 9.84 16.46 5.95 #fafbfb | Color Background Default application background colour. Should be set to either html or body element. | |
4.7 10.2 17.06 6.17 #ffffff | Color Button Default button background colour. | |
9.57 16.01 5.79 #f6f8f8 | Color Button Hover Default button hover background colour. | |
9.57 16.01 5.79 #f6f8f8 | Color Header Default header background colour for modals. | |
9.03 15.1 5.46 #f0f1f3 | Color Nav Hover Default hover colour for sidebar navigation. | |
8.48 14.18 5.13 #e9eaed | Color Nav Selected Default selected colour for sidebar navigation. | |
4.7 10.2 17.06 6.17 #ffffff | Color Nav Surface Default surface colour for sidebar navigation. Used as alias for default button hover background and active hover colour as well. | |
rgba(144, 152, 152, 0.4) | Color Overlay Default overlay colour. Use this to distinguish modal and popout layers from the layer underneath. | |
4.67 #d24023 | Color Status Danger Default danger status colour. Used to communicate problems that have to be resolved so that user can continue forward. This colour should be always used for e.g. highlighting errors. | |
9.21 15.4 5.57 #fff0ee | Color Status Danger Weak Weak danger status colour. Used to communicate problems that have to be resolved so that user can continue forward. This colour should be always used for e.g. highlighting errors. | |
5.18 #8e4ec6 | Color Status Highlight Default highlight status colour. Used to highlight specific items in the interface. | |
9.25 15.47 5.59 #f9f1fe | Color Status Highlight Weak Weak highlight status colour. Used to highlight specific items in the interface. | |
5.21 #3e63dd | Color Status Info Default info status colour. Used to convey something informal. | |
9.27 15.51 5.61 #f0f4ff | Color Status Info Weak Weak info status colour. Used to convey something informal. | |
4.7 10.2 17.06 6.17 #ffffff | Color Status Neutral Default neutral status colour. | |
9.17 15.34 5.54 #f1f3f5 | Color Status Neutral Weak Weak neutral status colour. Used for the badge default state. | |
4.65 #e75436 | Color Status Notification Default notification indicator colour. Used to convey unread information. | |
4.67 #007f99 | Color Status Progress Default progress status colour. Used to convey something is in progress. | |
9.4 15.71 5.68 #e7f9fb | Color Status Progress Weak Weak progress status colour. Used to convey something is in progress. | |
4.66 #1d8633 | Color Status Success Default success status colour. 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. | |
9.37 15.67 5.66 #ebf9eb | Color Status Success Weak Weak success status colour. 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. | |
6.7 11.21 #f6cd5a | Color Status Warning Default warning status colour. Used to display information that needs user’s attention and may require further steps. | |
9.72 16.26 5.88 #fffae1 | Color Status Warning Weak Weak warning status colour. Used to display information that needs a user’s attention and may require further steps. | |
4.7 10.2 17.06 6.17 #ffffff | Color Surface Default application surface colour. Use this for e.g. card backgrounds. | |
9.53 15.94 5.76 #f7f7f8 | Color Surface Background Default surface background colour. Use this for the application background layer behind raised surfaces. | |
4.58 9.94 16.63 6.01 #fcfcfc | Color Surface Canvas Default canvas surface colour. Use this for the outermost canvas layer beneath the application background. | |
8.31 13.9 5.02 #e6e8eb | Color Surface Lowered Default lowered surface colour. Use this when you need to make a specific layer to appear lower than the surface colour, e.g. progress bar. | |
4.53 9.84 16.46 5.95 #fafbfb | Color Surface Raised Default raised surface colour. Use this when you need to separate a specific layer from the surface colour, e.g. table headers. | |
Border Radius
5 tokens · nord
| Example | Description | Token |
|---|---|---|
0.02em | Border Radius Sharp This is sharp border radius. | |
3px | Border Radius Small This is small border radius. | |
5px | Border Radius This is the default border radius. | |
50% | Border Radius Circle This is for creating rounded avatars and similar objects. | |
999px | Border Radius Pill This is for creating pill shaped tags and similar. | |
Box Shadow
6 tokens · nord
| Example | Description | Token |
|---|---|---|
0 1px 3px rgba(12, 12, 12, 0.09) | Box Shadow Default box shadow. Used with buttons, active states, and such. | |
0 1px 5px rgba(12, 12, 12, 0.05) | Box Shadow Header Default box shadow for header component. | |
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. | |
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. | |
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. | |
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. | |
Font Size
8 tokens · nord
| Example | Description | Token |
|---|---|---|
Quick brown fox2.25rem | Font Size XXXL This is the xxx-large font size. | |
Quick brown fox1.5rem | Font Size XXL This is the xx-large font size. | |
Quick brown fox1.25rem | Font Size XL This is the x-large font size. | |
Quick brown fox1rem | Font Size L This is the large font size. | |
Quick brown fox0.875rem | Font Size M This is the base font size. | |
Quick brown fox0.75rem | Font Size S This is the small font size. | |
Quick brown fox0.6875rem | Font Size XS This is the x-small font size. | |
Quick brown fox0.625rem | Font Size XXS This is the xx-small font size. | |
Font
8 tokens · nord
| 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. | |
Quick brown fox'Nordhealth Mono', monospace, monospace | Font Family Code This font family is utilized by all our themes for 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. | |
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. | |
Quick brown fox400 | Font Weight Default Default font weight for body text. | |
Quick brown fox500 | Font Weight Active Default font weight for active items. | |
Quick brown fox600 | Font Weight Heading Default font weight for headings. | |
Quick brown fox670 | Font Weight Strong Default font weight for strong. | |
Line Height
6 tokens · nord
| Example | Description | Token |
|---|---|---|
1 1 renders as 14px with 14px font. | Line Height Tightest This token sets line height equal to the font size (no extra leading), equivalent to 100%. Tighter than Line Height Tight. | |
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. | |
1.2 1.2 renders as 16.8px with 14px font. | Line Height Heading This is the default line height for headings. | |
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. | |
1.5 1.5 renders as 21px with 14px font. | Line Height This is the default line height for body text. | |
20px 20px renders as 20px with 14px font. | Line Height Form This is the default line height for form inputs, textareas and buttons. | |
Size
8 tokens · nord
| 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. | |
10px | Size Icon XS This is a x-small size for icons. Most commonly used inside small form fields and buttons. | |
12px | Size Icon S This is a small size for icons. Most commonly used for icons inside buttons and select menu toggles. | |
16px | Size Icon M This is a medium size for icons. Most commonly used for icons that sit inside large buttons. | |
24px | Size Icon L This is a large size for icons. Most commonly used for illustrative purposes. | |
36px | Size Icon XL This is a x-large size for icons. Most commonly used for illustrative purposes. | |
52px | Size Top Bar This is the default height of the top bar. It is also used for the small header variant. | |
72px | Size Icon XXL This is a xx-large size for icons. Most commonly used for illustrative purposes. | |
Space
6 tokens · nord
| Example | Description | Token |
|---|---|---|
4px | Space XS This is a x-small space. | |
8px | Space S This is a small space. | |
16px | Space M This is a medium space. | |
24px | Space L This is a large space. | |
36px | Space XL This is a x-large space. | |
72px | Space XXL This is a xx-large space. | |
Transition
3 tokens · nord
| 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. | |
0.2s ease | Transition Slowly Use this design token for a slow transition. Used for example in modals, tooltips, collapsing elements, and more. | |
0.4s ease | Transition Mobile Use this design token for mobile menu transitions. Used for example in the mobile version of popout and dropdown. | |
Z-index
12 tokens · nord
| Example | Description | Token |
|---|---|---|
-999999 | Z-Index: Deep Deep z-index is used to stack something behind everything else. | |
1 | Z-Index: Default The default z-index for components and elements inside components. | |
100 | Z-Index: Masked Default z-index for masked interface elements. | |
200 | Z-Index: Mask Default z-index for masking interface elements. | |
300 | Z-Index: Sticky Default z-index for sticky interface elements. | |
400 | Z-Index: Navigation Default z-index for navigation. | |
500 | Z-Index: Top bar Default z-index for top bar. | |
600 | Z-Index: Overlay Default z-index for modal and popup overlays. | |
700 | Z-Index: Spinner Default z-index for spinners, stacking on top of overlay. | |
800 | Z-Index: Popout Default z-index for popouts that stacks on top of all other elements. | |
900 | Z-Index: Modal Default z-index for modals that stacks on top of overlays and other elements. | |
1000 | Z-Index: Toast Default z-index for toast messages that stacks on top of all other elements including modals. | |
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.
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):
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:
/* 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:
// 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:
<link rel="stylesheet" href="https://nordcdn.net/ds/tokens/9.0.4/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:
// 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:
// 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:
// 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:
// 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:
.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:
// 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.
- Require common.js module:
const tokens = require("@nordhealth/tokens") - Use console log to output a list of all tokens:
console.log(tokens) - If everything works, you should now see a long list of Design Tokens in your console.
Examples
- The very page you're looking at is using tokens: Nord Design Tokens
- For more concrete examples, see Nordhealth Pay prototype.
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.