Design tokens

The Design tokens W3C Group describes the Design tokens format as is:

Design tokens are a methodology for expressing design decisions in a platform-agnostic way so that they can be shared across different disciplines, tools, and technologies. They help establish a common vocabulary across organisations.

Pinceau uses Design tokens as a standard format to describe values in its configuration file.

Most of the examples you may have already seen from the configuration file may seem like a plain key/value object, but here is what it looks like after being normalized:

tokens.config.ts
defineTheme({

                        
media: {

                        
tablet: '(min-width: 768px)',

                        
desktop: '(min-width: 1024px)',

                        
},

                        

                        
color: {

                        
white: '#FFFFFF',

                        
black: '#191919',

                        
primary: '#ED4D31',

                        
secondary: '#4560B0',

                        
tertiary: '#FBEFDE',

                        
},

                        

                        
space: {

                        
1: '0.25rem',

                        
2: '0.5rem',

                        
3: '0.75rem',

                        
4: '1rem',

                        
}

                        
})

                      
Normalized
const theme = {

                        
media: {

                        
tablet: {

                        
value: '(min-width: 768px)'

                        
},

                        
desktop: {

                        
value: '(min-width: 1024px)'

                        
}

                        
},

                        
color: {

                        
white: {

                        
value: '#FFFFFF'

                        
},

                        
black: {

                        
value: '#191919'

                        
},

                        
primary: {

                        
value: '#ED4D31'

                        
},

                        
secondary: {

                        
value: '#4560B0'

                        
},

                        
tertiary: {

                        
value: '#FBEFDE'

                        
}

                        
},

                        
space: {

                        
1: {

                        
value: '0.25rem'

                        
},

                        
2: {

                        
value: '0.5rem'

                        
},

                        
3: {

                        
value: '0.75rem'

                        
},

                        
4: {

                        
value: '1rem'

                        
}

                        
}

                        
}

                      

Why Design tokens ?

Design tokens are a methodology for expressing design decisions in a platform-agnostic way so that they can be shared across different disciplines, tools, and technologies. They help establish a common vocabulary across organisations.

Pinceau is a tool made to make it easier to implement styling coming from a global theme definition.

Having a standard format to store and expose your design decisions makes it a lot easier for us to build tooling on top of your theme without enforcing a structure for it.

It both enables you to write styling how it pleases you and us to create tooling that is future-proof.

Should I write my tokens with value ?

Most of the time, there should be no need for it.

Reaching for myColor: { value: 'red' } over myColor: 'red' has no impact on outputs.

What it might be useful for is:

  • Using other Design tokens attributes for you to consume them later
  • Using the $schema key for this specific token
  • Creating a sync with tokens generated by tools like Figma Tokens
  • You like it better this way ๐Ÿ‘ฉโ€๐ŸŽจ