Skip to content
What they are, why we use them, and how we name them.

Design tokens are the smallest building blocks of our design system. They are name and value pairs that represent design decisions. These decisions concern visual attributes such as color, spacing, typography, animation, etc.

Collectively, our design tokens form a design language that is systematic, cohesive, and tied to our brand. We use our design tokens to construct the components that make up Telescope and product experiences for web and mobile.

Core tokens are the primitive values in our design language. Their names describe their value, rather than their purpose. Core tokens can be used directly and some are referenced by our other type of token: semantic tokens.

1c853cae-7a66-8016-907f-f08580930620.png

Our semantic tokens generally map to our core tokens. In a way, they’re the opposite of core tokens, since they’re opinionated and named after their purpose, rather than their value.

1c853cae-7a66-8053-acef-dd0cb63871ed.png

Our core color tokens are based on our brand colors. This helps Pleo look and feel the same to our customers across channels, products and platforms.

Design tokens facilitate consistency in general, since they give us a limited set of values to pick from. Semantic tokens take this consistency to another level. They enable us to pick the same values for the same situations across platforms and product areas.

1c853cae-7a66-809d-b4f9-d8d4200ded6f.png

Semantic tokens make it easier and faster to make design decisions. For instance, if you need to pick a color for the border of an interactive UI element in a hover state, you use color-border-interactive-hover. No need to look through the product and mockups to find out whether to use shade800 or shade900.

1c853cae-7a66-803a-bfc3-e9dedcf930df.png

If we ever change our brand colors, design tokens make it relatively easy to update our product accordingly. We would simply make our core color tokens map to the new brand colors. Similarly, if we decide links should be blue, we can remap the semantic token color-content-interactive-link from pink800 to blue800.

1c853cae-7a66-8022-b6ea-e0ab729bb348.png

Every semantic color token maps to two core color tokens: one for light mode and one for dark mode. As a result, if you use semantic color tokens, you can design or develop for one theme and get the other theme for “free”.

1c853cae-7a66-807d-87d9-ea7301ce4f18.png

Tokens are used both by designers and developers. As such, they provide a shared language that facilitates communication between these two groups. Clear communication enables better and more pleasant collaboration.

Although Telescope’s components cover many use cases, there will always be a need to create custom components. By designing and building custom components with design tokens, the benefits listed above are also reaped by product teams.

Our core tokens have short and simple names that reference the values they are mapped to. Examples include spacing2, opacity20, and arc8.

Our semantic tokens have names that reference their intended use and follow the naming scheme attribute-property-role-variant-state. Attribute and role are required, while the other naming scheme parts are optional.

Attribute indicates which visual attribute the token concerns. The currently available attributes are color and shadow.

1c853cae-7a66-80f2-85a3-c8c2ea74c439.png

Property indicates which UI element property the token applies to. background, border, and shadow speak for themselves, while content refers to both text and icons.

1c853cae-7a66-8058-8065-f8aa73c9a041.png

Role indicates the UI element’s role in the UI. The two most used roles are interactive and static. Use interactive for UI elements that react to a user’s interaction (click/tap).

1c853cae-7a66-804b-98f0-e6be541b4744.png

Use static for UI elements that don’t react to a user’s interaction (click/tap).

1c853cae-7a66-803f-aa4e-dc963bf766e5.png

Variant is used for tokens that share the same attribute, property, and role, but have different values. Frequently used variants are loud and quiet. Use loud when the UI element needs to stand out.

1c853cae-7a66-8081-9f92-d70f982c06df.png

Use quiet when the UI element needs to attract less attention.

1c853cae-7a66-80e5-b290-eee32d30c19b.png

State indicates the interactive state of the UI element (e.g. hover, disabled, selected, etc.).

1c853cae-7a66-8015-932c-fcc354b312a7.png