Company
Industry
Human Resources, Artificial Intelligence
Design System Desk Research Responsive Web Critical Thinking Prototype User Testing HTML CSS JavaScript Figma UI Design Accessibility

Octane

Fuel50 Design System

Understanding the Business Needs

The Fuel50 app had evolved over a long period of time. Through the years many different teams had worked on many different parts with different technologies and UI frameworks. It was a mixed bag that lacked consistency.

The business knew it needed to create a more uniform and seamless experience but struggled to make a start. This was in part due to limited resources and indecision.

My role was created to ensure there was a dedicated resource which could focus on establishing a robust design system.


Research & Planning

The first thing I did was audit the application and existing designs to establish common elements. I also used this as a base to prioritise which components were in higher demand.

I also surveyed what work was coming up which might require unique components. These were also prioritised in the design system roadmap.


Define Principles & Standards

The design team already had a partial design system based on a version of the Atomic Design methodology, so we continued using that method to organise the new system.

Design system using Atomic Design
Material Design is very opinionated, you can spot it from a mile away!

The development team were struggling to pick a front-end library on which they were going to adopt moving forward, and we had no time to wait, so the design team agreed to align many of our design system components on Material Design, but also try to be as UI library agnostic as possible. This meant not allowing the designs to be to strongly opinionated.

Some UI standards were already established which aligned with the brand, so it was important to adhere to those. But at he same time, they also wanted to ensure everything was WCAG 2.1 AA accessibile, so that meant adjusting some of the existing colours when required.


Select Primary Environment

To cover all interactive states for standard HTML elements, including less obvious ones like focus-visible for keyboard navigation, it was faster and more interactive to build the first version in code with HTML/CSS/JavaScript.

A code based design system

After building components in code, it was then translated to Figma.

A lot of auto layout magic was needed to make this component behave correctly.
A Figma based design system

Establish Base Styles

Beginning with the Atoms (colours, typography, spacing, etc...), the core of the design system needed to be established.

The Fuel50 application is a white-label product, allowing customers to customise the colour scheme.

Themes with variables in Figma

Both the code and Figma versions of the design system took advantage of variables to test different colour schemes.

Themes with CSS variables in code

Core HTML Components

The next level of Atomic Design is the Molecules. These were mostly based on standard HTML tags like buttons, tables and inputs.

This helped us establish rules around preferring :focus-visible vs :focus selected states.

The code based design system could leverage true browser interactions to present the different styles for states. These included animations and keyboard interactions.

Tabbing through button elements

Complex Organisms

CSS will always be ahead of the features available in Figma.

Moving up the Atomic Design methodology, Organisms are components which use two or more lower level elements to form a component.

These also included more bespoke components and elements.

While some things were easily achieved in HTML & CSS, they often proved challenging in Figma. For example, complex layouts for variants or advanced CSS properties which are not available in Figma. But through perseverance I always managed to find a work-around.


Development Partnership

With the bulk of the design system in place, we could then partner with the front-end developers, who had at this point finally settled on a UI library, to update their Storybook implementation.

Workshopping with the development team at Fuel50

Best of Both Worlds

With both versions of the design systems available, we could leverage either environment to produce pixel accurate layouts.

A messages component in Figma

Both environments have their strengths and weaknesses. Figma is more familiar tool with the majority of the design team. While the coded version offers greater power and flexibility for advanced prototyping and can communicate more natively with developers.

A messages component in code