Clickto expand
Design Tokens9.0.0
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).
| 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. | |
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. | |
9.57 16.01 5.79 #f6f8f8 | Color Active Default active color for Therapy. | |
4.7 #667680 | Color Icon Default icon color for Therapy. | |
17.06 #0c1a3d | Color Icon Hover Default icon hover color for Therapy. | |
Text
These colors are intended for text and map to Tailwind's text-* utilities (e.g. n:text-weak).
| Example | Description | Token |
|---|---|---|
6.38 #8fa1aa | Color Nav Heading Default heading color for sidebar navigation. | |
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. | |
6.31 #b23015 | Color Text Danger Default text color for danger messages for Therapy. Also used for the danger badge text. | |
4.67 #d24023 | Color Text Error Default text color for error messages for Therapy. Also used for the danger badge text. | |
6.91 #793aaf | Color Text Highlight Highlight text color. Used for the highlight badge text. | |
7.08 #3451b2 | Color Text Info Info text color. Used for the info badge text. | |
6.17 #3559c7 | Color Text Link Default link text color for Therapy. Used for all paragraph level links in an user interface. | |
7.06 #55595d | Color Text Neutral Neutral text color. Used for the neutral badge text. | |
17.93 #11181c | Color Text Neutral Strong Strong neutral text color. Used for the strong neutral badge text. | |
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. | |
5.97 #016d83 | Color Text Progress Progress text color. | |
5.76 #117627 | Color Text Success Default text color for success messages for Therapy. Also used for the success badge text. | |
4.91 #946900 | Color Text Warning Warning text color. Used for the warning badge text. | |
14.47 #332810 | Color Text Warning Strong Strong warning text color. Used for the strong warning badge text. | |
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. | |
4.7 #667680 | Color Text Weaker Weaker text color for Therapy. Used for e.g. disabled buttons, footers, table headings, captions and placeholder texts. | |
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. | |
Border
These colors are intended for borders and map to Tailwind's border-* utilities (e.g. n:border-strong).
| Example | Description | Token |
|---|---|---|
7.52 12.58 4.55 #d8dee4 | Color Border Default border color for Therapy. | |
6.79 11.36 #fac7be | Color Border Danger Danger border color. Used for the danger badge border style. | |
6.9 11.55 #e3ccf4 | Color Border Highlight Highlight border color. Used for the highlight badge border style. | |
4.7 #667680 | Color Border Hover Default border hover color for Therapy. | |
6.89 11.53 #c6d4f9 | Color Border Info Info border color. Used for the info badge border style. | |
7.39 12.35 #d7dce0 | Color Border Neutral Neutral border color. Used for the neutral badge border style. | |
7.43 12.42 #b0e5ee | Color Border Progress Progress border color. | |
5.83 9.75 #bcc5cc | Color Border Strong Strong border color for Therapy for highlighting specific parts in the user interface. | |
6.94 11.6 #b7dfba | Color Border Success Success border color. Used for the success badge border style. | |
7.34 12.27 #f8d87c | Color Border Warning Warning border color. 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).
| Example | Description | Token |
|---|---|---|
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. | |
4.7 10.2 17.06 6.17 #ffffff | Color Button Default button background color for Therapy. | |
9.57 16.01 5.79 #f6f8f8 | Color Button Hover Default button hover background color for Therapy. | |
9.57 16.01 5.79 #f6f8f8 | Color Header Default header background color for modals. | |
9.03 15.1 5.46 #f0f1f3 | Color Nav Hover Default hover color for sidebar navigation. | |
8.48 14.18 5.13 #e9eaed | Color Nav Selected Default selected color for sidebar navigation. | |
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. | |
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. | |
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. | |
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. | |
5.18 #8e4ec6 | Color Status Highlight Default highlight status color for Therapy. Used to highlight specific items in the interface. | |
9.25 15.47 5.59 #f9f1fe | Color Status Highlight Weak Weak highlight status color. Used to highlight specific items in the interface. | |
5.21 #3e63dd | Color Status Info Default info status color for Therapy. Used to convey something informal. | |
9.27 15.51 5.61 #f0f4ff | Color Status Info Weak Weak info status color. Used to convey something informal. | |
4.7 10.2 17.06 6.17 #ffffff | Color Status Neutral Default neutral status color for Therapy. | |
9.17 15.34 5.54 #f1f3f5 | Color Status Neutral Weak Weak neutral status color for Therapy. Used for the badge default state. | |
4.65 #e75436 | Color Status Notification Default notification indicator color for Therapy. Used to convey unread information. | |
4.67 #007f99 | Color Status Progress Default progress status color for Therapy. Used to convey something is in progress. | |
9.4 15.71 5.68 #e7f9fb | Color Status Progress Weak Weak progress status color. Used to convey something is in progress. | |
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. | |
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. | |
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. | |
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. | |
4.7 10.2 17.06 6.17 #ffffff | Color Surface Default application surface color for Therapy. Use this for e.g. card backgrounds. | |
9.53 15.94 5.76 #f7f7f8 | Color Surface Background Default surface background color for Therapy. 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 color for Therapy. Use this for the outermost canvas layer beneath the application background. | |
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. | |
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. | |
Border Radius
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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
| 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.0/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.