Elastic Token-Driven Design System

Service

UX Design, UI Design

Client

Onwelo

Year

2024

Atomic Design System Project aimed on rapid adaptation to clients visual identity.

Atomic design is a methodology composed of five distinct stages working together to create interface design systems in a more deliberate and hierarchical manner. Inspired by chemistry, it identifies five stages: Atoms, Molecules, Organisms, Templates and Pages.

Chapter 1: Atoms

Atoms are the smallest piece of a design, but as you’ll see it’s also its foundation.

1.1 Colors

On the path towards flexibility we identified that colors have to be desitnation oriented. Same HEX can be used various times in the project, but it does not have to mean it’s purpose is same every time. For example you can make white #FFFFFF as surface color same as text on the surface of a button, but if you want to translate this token into dark mode problem occurs:

Translating color tokens based on HEX not purpose

As you could see on the picture above white token should remain white on a button surface and change into black on regular surfaces. That’s why those two tokens should be detached.

Translating color tokens based purpose

Concluding we’ve created MaterialUI-inspired color token naming system for maintaining flexibility across various products. Solutions like this limit development resources necessary to kick-start projects.

Token names for base interface colors

1.2 Text

Text has got two base tokens included: Font Family and Type Setup. Similarly to color tokens we suggest naming it purpose-oriented not size oriented. Font Family is a special token type which impacts Type Setup tokens.

Translating text tokens based on size not purpose

As you can see on the example, using size-based tokens takes away flexibility in terms of changing font families, weights and sizes across various components such as text and buttons.

Translating text tokens based on purpose

Purpose-based text token approach creates a lot of styles, which can create difficult entry treshhold. However, it gives a lot more flexibility on re-using components to various projects.

1.3 Grids

We use 3 basic grid setups: 4-collumn for mobile, 8-collumn for tablets and 12-collumn for desktop.

Grids for various screen types

1.4 Shapes

Shapes are a silent member of atoms family, often concidered as just icons, we have to remember that every rectangle or circle used in design is also a shape, but it’s rarely listed as a component.

Part of icon library

1.5 Variables

At this point we concider two types of variables: Corner-Radius token and Margin token. Those two are closely connected, as when you decrease your margins you also have to decrease corner radius difference for optical balance.

Margin and corner radius tokens in use.

1.6 Motion

Motion is key to success but it’s also a vast topic. Our motion system could be the object of a separate case study. For now, we distinguish two types of tokens: $Bezier-Type and $Duration. Certain beziers and durations are predefined for certain action types across whole design system.

Part of motion library, some tokens are visible

Chapter 2: Molecules

Molecules are made up of a collection of many atoms.

2.1 Buttons

Buttons are key elements in interfaces but are also very illustrative in terms of creating molecules from atoms.

Tokens used in button molecule.

Paddings are also important for buttons, because we should maintain optical balance. That’s why we don’t use margin tokens for them. Spot the difference in horizontal paddings on picture underneath:

Paddings in button molecule.

At the moment we distinguish 4 types of buttons in terms of construction: Icon-Right, Icon-Left, No-Icon, Icon-Only; as well as 3 sizes (S, M, L) and 7 purposes: Primary, Secondary, Complementary, Outlined, Text, Danger and Transparent (for custom-color surfaces). Each of them occurs in 5 states: Default, Hovered, Pressed, Focused and Disabled. Estimating this gives 420 types of buttons.

2.2 Other molecules

Same approach is used in other molecules such as: Badges, Checkboxes, Chipses, Collapses, Flies, Inputs, Loaders, Radio Buttons, Search (Specific type of input), Stepers, Switches.

Example of other molecules.

Chapter 3: Organisms

Organisms are made of atoms and at least one molecule.

3.1 Organism construction

Organisms are large components of an interface. Their construction is complex, they contain a lot of atoms and at least one molecule.

Example 1: Token structure with transition example.

Another great example of this approach is podcast card for horizontal-scrolled surfaces (for example carousels):

3.2 Organism reductivity

Organism components are created with maximum data capacity, but reductive approach makes it look good even when component receives smaller data range.

3.4 Combining tokenization and reductivity

When we combine tokenization and reductivity, we gain a lot of visual flexibility:

Chapter 4: Templates

Templates are very advanced type of atomic structure. Templates are mostly ready-to-use sections to build custom pages.

4.1 Listing types

First type of templates are listing types, i.e. recommendations on display patterns

Example 1: Horizontal scrolling display pattern (for various card types)

Example 2: Carousel display pattern

4.2 Large components

Biggest component structures containig a lot of other components.

Chapter 5: Pages

Pages are most advanced structures in the Design System. It’s a collection of ready to use screens built from all types of structures.

5.1 Legal-Driven Screens

Pages which shape or purpose is determined by law, for example: User Data Change, Onboarding Process Screens, Store Refund Process Screens, Clearing and Exporting User Data.

5.2 Content display templates

Display templates for content types available in Squidex CMS.

5.3 Screens for grouping content

Display templates for content types available in Squidex CMS.

5.4 Overlays/Bottom Sheets

Bottom sheets show secondary content anchored to the bottom of the screen. They are often used when user needs to do something while not loosing track on what’s happening elsewhere.

Chapter 6: Proof of concept

All of this would be worthless if we haven’t have shown you some proof to our concept. Let’s dig in!

6.1 Home Page

Following screens contain 3 verisons of a home page made with our design system. One of them is plain, two are product-arranged.

6.2 Content Screens

Following screens contain 3 verisons of a article page made with our design system. One of them is plain, two are product-arranged.

6.3 User profile

Following screens contain 3 verisons of a profile page made with our design system. One of them is plain, two are product-arranged.

Chapter 7: Conclusions

  • Combining component reductivity and tokenization earns a lot of flexibility in terms of fast component adjustment to new projects.
  • Using predefined screens saves time in areas that customers do not pay attention to and expect them just to work.
  • Content is a true king. As far as components set mood to the app, content gives it character.
  • Design system is not a component library. It’s a set of guidelines and thought patterns when designing interfaces.
  • Atomic approach gives opportunity to re-use interfaces in a visually-changed, but still consistent form.
  • Setting a design system this big is a lot of work, but it pays off at the development stage.

Thanks for reading until the end!

Thank you for staying that far. I know I could have provided a lot of more detail, but I tried our best with making it both engaging and meaningful. Unfortunately I can’t share more due to NDA commitments. If you are interested in my work contact me! Behance version here.

related work