FME Form Design System

2 Team Members

April - September 2025

Design System Guy

Overview

‍The updated design system significantly boosting productivity in mockup creation by 70% while ensuring a consistent and cohesive final design output across projects.

This project is a continuation of the work I undertook during the final four months of my internship at Safe Software, where I led the comprehensive development and improvement of the design system. I played a key role in shaping the update process, overseeing the project from start to finish to ensure the system's scalability and relevance to the team’s needs.

Context & Problem Space

When I joined the team, I found the design system scattered and hard to navigate, with updates buried in multiple Figma files. To fix this, I dug into the root issues holding it back.

Design assets were scattered and difficult and hard to find

Components were outdated and misaligned with the product

Updates are not centrally documented and recorded causing inconsistencies

Syncing changes becomes a manual and error-prone task.

Context 1.1 - unorganized library

Context 1.2 - inaccurate design assets

Finding Suitable Principles (Atomic Design)

I explored various principles and frameworks to determine the most effective way to separate components into distinct parts. After careful consideration, I decided to follow the Atomic Design methodology, as it offers a clear and structured approach to building and organizing the design assets.

Atoms

The smallest building blocks, like buttons, input fields, labels, and icons.

Molecules

Combined group of atoms; like a list, an input field with drop-down button.

Organism

Larger components made of molecules, such as tables, adjustable boxes/tabs.

Templates

Structured layouts that arrange organisms without all the final design assets.

Breakdown

To create a more structured, scalable, and efficient design workflow, the design system will be divided into three distinct parts based on areas of the program that are frequently updated or require significant time to create mockups.

Audit

With the help of my team members, we collaboratively summarized all the audits to ensure that each component included all the necessary variations and properties.

Audit 1.1 - broke down complex interface into smaller parts

Audit 1.2 - identified similar components within every interface

Audit 1.3 - listed different component states

Audit Feedback

The Slots

Considering that some components could have different layouts, the team proposed using a slot-based method that combines the instance swap and preferred values approach. This method allows for the creation of reusable components that can be easily swapped or replaced within a predefined structure.

Audit Feedback / Last Prep 📋

After the audits have been reviewed by the team, I received valuable feedback regarding additional methods that could helped me in efficiently create components that reflect the actual build.

Audit feedback 1.1 - slots method

Color Tokens

To maintain consistency in the colors used within the components, I collaborated with another team member experienced in creating design tokens. By leveraging design tokens, we were able to standardize color usage, and simplify future updates.

Audit feedback 1.2 - color tokens

Building the Components

With all the resources prepared, I began building the components. Throughout the process, different team members tested the components to ensure that all properties, including states and variations, were correctly implemented.

Components 1.1 - transformer structure

Components 1.2 - transformer components

Components 1.3 - overall design system layout

Minor addition

Adding Filled Variants

Variants of a component with pre-filled content should also be provided. This allows designers the option to either customize the content according to their needs or use the predefined content as it is. Offering these options ensures efficiency while creating mockups that don’t require specific context.

Minor addition 1.1 - filled variants

Extra Slots

The team agreed that extra slots should be included in the component to allow for future replacement or customization. This approach ensures that the template remains future-proof, enabling updates or additions to be made without the need for a complete rebuild of existing components.

Minor addition 1.2 - extra slots

Documentation

In addition to creating the components, I also created documentation outlining the methods and processes I used to build them. This documentation ensures that other team members responsible for maintaining the design system can seamlessly continue updating existing components and creating new ones as needed by the team.

Documentation 1.1 - component guideline

The Impact

The design system significantly enhanced the quality of the mockups generated by the team. Instead of relying on screenshots of product interfaces, all mockups could now be created directly in Figma, allowing for easy modifications.

Impact 1.1 - impact for the team

Retrospective

  • Designing for designers

    Creating a design system is like trying to build a house for a bunch of architects, they're technically your "users," but they all have wildly specific needs!


  • Be flexible

    While conventional methods for creating components exist, they might not always suit what you're trying to build.

" The art challenges the technology and the technology inspires the art"

— John Lasseter

" The art challenges the technology and the technology inspires the art"

— John Lasseter

" The art challenges the technology and the technology inspires the art"

— John Lasseter