@coveord/plasma-tokens
Design tokens of the Plasma Design System extracted from Figma.
What is a design token?
Simply put, a design token is a stored design decision. It can be understood as a variable that holds the result of a choice (in this case made in Figma). Decisions can be made about multiple different subjects, for example colors, typography, spacing, etc. Therefore, it is important to consider that design tokens come in as many types as there are design subjects.
Objective of this package
Distribute design tokens to all Coveo products that rely on the Plasma Design System through code.
Installation
npm install @coveord/plasma-tokens
For TypeScript users: the package provides its own type declarations.
Usage
Tokens are provided through multiple outputs. Choose the format that best suits your needs.
TypeScript
import * as PlasmaTokens from '@coveord/plasma-tokens';
PlasmaTokens.color.primary.actionBlue[6];
Sass
@import '~@coveord/plasma-tokens/scss';
@import '~@coveord/plasma-tokens/scss/Colors';
.something {
background-color: $plasma-color-primary-action-blue-6;
}
CSS
First include the css file you want tokens from in your page.
<link href="/node_modules/@coveord/plasma-tokens/css/Colors.css" rel="stylesheet" />
Tokens in CSS are exposed as CSS variables.
.something {
background-color: var(--plasma-color-primary-action-blue-6);
}
Icons
All icons are located under the icons
folder in .svg
format.
If you want to use icons in a React application, refer to @coveord/plasma-react-icons
.
Internal usage
tokens:fetch
Fetches tokens information from our tokens libraries in Figma and outputs the result in JSON format into the data
folder.
In order to fetch data from our Figma libraries on your local machine, you will need to create a .env
file for yourself that provides the necessary information for the script to run. The file .env.example
will help you know where to get the proper values such as the access token.
--libraries
, -l
Optional option. Use to target one or more specific tokens libraries. If not specified, all libraries will be fetched. See the list of available libraries.
example:
tokens:fetch --libraries Lib1 Lib2
tokens:build
Translates the fetched tokens into all the available output formats.
tokens:lint
Runs Prettier on the source files generated by the tokens:build
command.
This command is automatically run along with the tokens:build
command.
build
Builds from the sources files that were generated by the tokens:build
command the code to be distributed on NPM (creates the dist
folder).
Available token libraries
Library Name | Available Formats | Description |
---|
Icons | svg, typescript | xml markup of the svg elements of all the icons and their variants. |
Colors | typescript, scss, css | Values of the different palettes used throughout plasma, also contains gradients. |