@ds-starter/tokens
v0.2.0
Published
> **@ds-starter/tokens** is the part of the [Design System Starter (DSS) Template](https://github.com/XOP/design-system-starter) > The package is created for demo purposes and is not intended for production usage > See it in action: > - [DSS Storybo
Downloads
8
Readme
DSS Tokens @ Design System Starter Template
@ds-starter/tokens is the part of the Design System Starter (DSS) Template
The package is created for demo purposes and is not intended for production usage
See it in action:
Overview
Design tokens package is the core dependency for @ds-starter/ui
and very important for consistent design in the apps.
Design tokens are available in 2 formats - CSS custom properties (variables) and JS objects.
Palette
JS export allows using color tokens as plain color values for respective themes, i.e. rgb(91, 96, 98),
and references to CSS variables, which is a more flexible approach to theming, i.e. var(--awsm-color-neutral-base).
Naturally, in the latter case project should also import the corresponding CSS files.
Configuration
Palette is generated with Unicornix, a one-stop solution for the themeable accessible palettes.unicornix.config.ts contains a reasonable config that allows to easily modify base and supporting colors in multiple formats.
Installation
npm i @ds-starter/tokensUsage
As mentioned, there are different scenarios of how tokens can be utilized.
CSS
@import '@ds-starter/tokens/css/tokens.css';
/* ... */
body {
font-size: var(--awsm-font-size-n);
line-height: var(--awsm-line-height-normal);
color: var(--awsm-color-content-regular);
}JS with CSS references
Note that CSS references only apply to colors.
import { tokens } from '@ds-starter/tokens';
// note, this import can be alternatively done via CSS
import '@ds-starter/tokens/css/tokens.css';
// ...
const AccentDiv = () => (
<div style={{ background: tokens.color.accent.strong }}></div> // background: var(--awsm-color-accent-strong)
);JS with plain values
There is almost no changes in implementation,
the only difference is named import.
There are 2 themes exported - light and dark.
import { tokensLight as tokens } from '@ds-starter/tokens';
// ...
const AccentDiv = () => (
<div style={{ background: tokens.color.accent.strong }}></div> // background: rgb(18, 103, 228)
);Development
After any tokens changes simply run build command:
pnpm buildIf you want to preview changes without compilation, run generation script:
pnpm genReferences
- Palette is generated with Unicornix
- Design tokens schema is inspired by Design Tokens Generator
- Build is powered by Vite
