Design System

Design System

Design System

↳ Content

As 17FIT primarily focuses on B2B products with complex settings, many features require user guides and even tutorial videos to help enterprise users understand how to use them. Relying on customer support to convey this information is very time-consuming for a growing company.

17FIT's products span across various devices, including Web, App, PWA, and In-App Browser (Line). With limited design and development resources, there is an urgent need to establish a more consistent design experience.

Moreover, since the backend system framework uses Bootstrap 3.0, many packages are no longer supported. After joining the company, I actively communicated with the management and development teams, gradually promoting the implementation of a Design System.

Expected Benefits

  • Reduce design and development costs.

  • Enable all teams to better utilize design system components to create ideas and quickly experiment and iterate.

  • Free up customer service team's time.

Step 1. Establish design principles based on the company's product vision

As a Product Manager, whether ideating new features or creating new logic, I always prioritize aligning with the company's vision. Therefore, when it comes to product design, I incorporated user experience concepts into the product, thus establishing the initial version of our Design Principles:


Consistency

  • Consistent with real life: maintain consistency with real-life processes and logic, following the language and concepts users are accustomed to;

  • Consistent within the interface: all elements and structures should remain consistent, such as design styles, icons, text, and element positions.


Feedback

  • Control feedback: allow users to clearly perceive their own operations through interface styles and dynamic effects;

  • Page feedback: after an operation, clearly display the current state through changes in page elements.


Efficiency

  • Streamline processes: design concise and intuitive operation processes. Less is more;

  • Clear and precise: use clear and unambiguous language to let users quickly understand and make decisions;

  • Help users identify: keep interfaces simple and straightforward, allowing users to quickly identify rather than recall, reducing user memory burden.


Controllability

  • User decision-making: provide operation suggestions or safety tips based on the situation, but cannot replace user decisions;

  • Controllable results: allow users to freely perform operations, including undo, rollback, and ending current operations.

Establish a workflow for the design phase

Categorize commonly used design components Use Trello for categorization. First, inspect and record all components on each page, and prioritize the most frequently used components. (Trello diagram)

Study other excellent Design Systems

  • IBM: https://www.carbondesignsystem.com/

  • HubSpot: https://canvas.hubspot.com/

  • Material Design: https://material.io/design/introduction

  • Salesforce: https://www.lightningdesignsystem.com/

  • Workday: https://design.workday.com/

  • Zendesk: https://garden.zendesk.com/

Also referred to some UI Frameworks that focus purely on components

  • Ant Design: https://ant.design/

  • Components | CodyHouse: https://codyhouse.co/ds/components

Lay the foundation by first establishing a Style Sheet

In addition to Font and Color scheme, we also established basic specifications for Spacing, Shadow, Border Radius …

Create documents to define components

When categorizing components used in the existing system, we discovered that the same component could have different meanings in different contexts. For example, the "OK" button in an Alert might be on the left side on some pages and on the right side on others. Before communicating with the team, we needed to create documents explaining the purpose of each component and list usage scenarios as much as possible.

Taking Input as an example, we established:

  • Usage time

  • Break down the Input component into its most basic elements

    • Label: state the content that needs to be entered

    • Text: content entered by the user

    • Input: display states such as error or focus

    • Placeholder: guiding text for the user

    • Error message: debugging description text

    • Icon: serves as an action indicator

  • Use cases, including: scenarios, maximum and minimum sizes, alignment...

  • Do's & Don'ts

Design Tokens

We also took this opportunity to introduce Design Tokens, using the Single Source of Truth concept to achieve consistent iteration with front-end development components.

Based on the Style Sheet, we established the following essential tokens:

  • Color

  • Typography

    • font-family

    • font-weight

    • font-size

    • line-height

  • Space (dimensions, padding, margins, etc)

    • spacing

    • border radius

  • Shadow

  • Iconography

Reflection

Although the Design System is not yet fully developed and the above items will continue to be updated, this opportunity allowed us to examine the rules and definitions of each component from the ground up, such as Select & Dropdown, Modal & Alert.

Due to the need to communicate ideas and deliverables with the team, sync meetings went from once a week to twice a week. We also kept information in sync with the front-end team at all times.

The front-end development chose to use Storybook, but currently, the synchronization between Figma and Storybook is not very complete. Therefore, Design Tokens play an important role. However, there are also issues like npm package upgrade conflicts that need to be resolved.

Although this project is progressing at a slow pace, it can already satisfy the goal of rapid output for designers and PMs in ideation and communication.

On earth we'r briefly gorgeous

© 2024 Red, Chou Jui Te

On earth we'r briefly gorgeous

© 2024 Red, Chou Jui Te

On earth we'r briefly gorgeous

© 2024 Red, Chou Jui Te