Creating white-label design system

About the project:

Creating an initial white-label design system was an enlightening process, involving the development of foundational elements and main components tailored to our identity verification product's needs. This journey brought team compromises and lessons, culminating in a fully accessible and usable Figma library.

Product description:

Ondato provides solutions in the field of identity verification, Know Your Customer (KYC), Anti Money Laundering (AML) and such other services. They offer digital identity verification tools and compliance solutions to help businesses authenticate the identities of their users and comply with regulatory requirements.

Goal:

Create an initial design system for re-designing and improving a white-label identity verification product on both web and mobile platforms.

Role:

Design system creation from start to finish with the help and collaboration of my team's developers.

Project overview

Design research and exploration

In redesigning an existing identity verification product, I simultaneously developed the initial design system. I began with conducting a UI audit of its functional main flows, cataloged components, documented text usage, and assessed component appearance with white-label colours.

An existing responsive container for information display, enabled me to concentrate on optimising its usability and addressing the primary challenge of adapting branding colors to client needs.

Later, I explored various design systems, collecting ideas and inspirations, and occasionally borrowing a few elements.

Example of client using KYC flow

Design system development

Deciding on typography

After reviewing past text components, I streamlined typography by using four headings for all content, including modals and error pages, and implemented an 8px rule for hierarchy, with adjustments for usability. Main body text is standardized at 16px for readability across devices, while 14px and 12px are reserved for specific elements like input fields.

Typograhy table

FOUNDATIONS

The range of fixed colours

I developed a greyscale palette with a hint of blue for a cool tone, based on 'Refactoring UI' by Schoger and Wathan, to complement any brand color and extending its use to white label illustrations.

As mentioned, the primary color varies by client and is applied to buttons and illustrations. To extend branding across the product, I also integrated it into input fields, requiring the creation of color variations for input field and button states. I adjusted opacity for input active state and modified the 'Lightness' in the HSL color model for the button's stroke, indicating its active state.

FOUNDATIONS

Settings of the primary colour

FOUNDATIONS

Design system colours and dynamic primary colour application

Primary colour documentation

Simple shadows
The matter of spacings

I initially followed the 8px spacing rule without defining a specific number. When developers saw it as a problem, we compromised and settled on having 9 spacing options. Read more about it here.

Table of spacings' sizes

I didn't prioritise shadows since there was no immediate need for them at this stage. Therefore, I created only two types: one for the content container and the other for modals.

Shadows example

FOUNDATIONS

FOUNDATIONS

Content container (Layout & braking point)

As mentioned earlier, the product employs a content container, which utilizes MIN and MAX paddings inside the container and MIN and MAX margins outside the container. These values dynamically adjust based on the screen width. When the screen width reaches 500px, the design switches to a mobile mode. The specified spacing values control how components are arranged vertically

Content frame with layout instructions and specifications

FOUNDATIONS

Set of buttons

CORE COMPONENTS

Document selection

CORE COMPONENTS

CORE COMPONENTS

Identification methods

CORE COMPONENTS

Input field variations

CORE COMPONENTS

Phone number input variations

Conclusions & lessons learned

The process wasn't straightforward; it involved iterative discussions and compromises with the development team. I'm grateful for their input and the learning opportunity it provided. Here are some key reflections:

2. Reevaluating input field component

I initially applied the 8px spacing rule but adjusted it after developers expressed concerns about code complexity. Following a review of our designs and other design systems, we settled on 9 versatile spacing options, allowing combinations for larger spacings as needed.

1. Spacing strategy

I designed the input field component with multiple variants for versatility, but in retrospect, its complexity exceeded the current product stage's needs, indicating a more use-case-focused approach would have been time-efficient.

3. Reflecting on documentation

In creating the initial design system, I specified main components and developers used Storybook, but as the sole designer, I now see the value in having documented the rationale behind decisions and provided a more detailed usage guide for the components.

Exploration of spacings

Input field component in Figma

Example of specifications