top of page
Top

Semla Design System

a solid foundation for design consistency, collaboration, and scalability.

Brand-Logo_Fyndiq.png
Frame 83.png

About

I joined Fyndiq as their second designer on deck. When I joined, there was already a Design System (DS) in place utilising Atomic Design principles as a base. However, the documentation and organization of the components was limited and not synchronized with the live website, causing bottle necks in our developing process.  

​

The Semla Design System is a result of improved documentation, organization, and definition of components. Today we can deliver more consistent, designs that contribute to a more cohesive user experience,

My Role

I am in charge of updating all the existing design components in the Figma file and making sure they are in parity with the actual code on the website.  I also design and define new components when needed for new features and updates on the website. Currently, I am in the process of documenting everything in Zeroheight. 

The Team

- Product Designer

-Sr. UX Designer
- Front-end Engineer Team 

Old state of the Design System

One of the main challenges that I encountered when designing and using the design components was the inconsistency between the Figma file designs and the live website. 

It was hard to know which components were already implemented on the website and how to use them for my designs. In this project, I set out to reorganize the entire design system. That involved increasing our influence on implementation, creating proper documentation, and synchronizing our work better with the developers.

Screenshot 2023-11-05 at 14.47.44.png

Fyndiq’s first design system (before I joined Fyndiq)

Learning the basics of a design system

When I started, I had little to no idea how to organize all the components. Fortunately, there are many open source design systems, like Shopify, Altassian, and Material design, that have served me to learn from, and take as inspiration.

Key improvement points: 

After reading and learning from other design systems it was clear that we had to reorganize everything and decide a place where everything could be documented. Following are the main areas for improvement of our design system.

  • Documentation of the foundations of our DS: Such as colors, typography, and spacing.
     

  • Find a way to keep track of the components’ status
     

  • Clear documentation on how a component should behave and be used
     

  • Visualize the specifications of every component

Design iterations

Documentation and status keeping

Since we were already using Atomic Design, I continued using the principles as a reference. I started by writing an explanatory text on Atomic Design and how we should leverage it at Fyndiq to develop our own DS. Then, I documented all the existing components and linked them to Figma.

Notion documentation.png

Notion documentation of our design system

In Figma, we created separate pages for every Atomic Design concept, i.e., tokens, atoms, molecules, organisms, and templates. Each page contains detailed documentation and specifies how every component should be used.

Semla 2.0.png

Top: documentation of some our atoms 
Bottom: documentation of our interactions

Additionally, I created a table in Figma where we could keep track of the status of our components. I divided them into five columns:  Component Name, Design Status, Storybook Status, Production Status, and Comments.

​

Using this table as reference, we started having design-system meetings every week with the developers to discuss the status, prioritize component, Q&As, and other topics related to our DS. 

First iteration for keeping status.png
Pages DS 2.0.png

Table to keep track of the status of our components

Current state of the Design System

One of the biggest challenges when working with a design system is to make it scalable while maintaining simplicity.

​

To address this challenge we have came up with several improvements: 
 

  • We incorporate usability, accessibility, and coding best practices into every component to enable ease of use and learning for designers and developers 
     

  • We utilize dynamic documentation tools like Storybook, Chromatic, Figma, and Notion to establish clear guidelines and allow experimentation
     

  • We have created clear communication channels to discuss DS related topics
     

  • We have set up transparent workflows for using the system

Example of the list item component in Storybook
Components with variants.gif

Left: List item component in storybook

Right: List item component in Figma

We refined the status table. We now include all the states and variants of every component with their respective status. 

List item.png

Updated table of the status of our components

I put extra focus on the documentation, as I have realized that documentation is key to successfully implement the components. 

Screenshot 2023-11-06 at 14.41.57.png
How I defined new compoennts.png

Examples of a component ready to hand-off to the dev team

Screenshot 2023-10-25 at 21.42.44.png

Latest components' status table

Figma constantly release updates to help bridge the gap between designers and developers. It comes with its pros and cons as I have to constantly learn and update how to work with Figma to keep up with the updates, when we are still not in that maturity level. On the other hand, it does keep the flows and designs easy to use. Currently, I am working on adapting the components to the latest Figma version update; Variables, Conditionals, and Dev mode.

Next steps

  • The design system is still being developed. We still have some components that have not been updated in production. However, we now have a clear overview and documentation on what is left to do and what is needed to implement it
     

  • Our main objective is to implement on the website all the missing components and have 100% synchronised Figma files with the live website
     

  • We want to include tokens, CSS classes, and code snippets directly to the Figma file to use the same naming conventions in Figma and the code
     

  • A design system is never finished. It should not be built to last indefinitely but be designed to evolve and adapt. We need to constantly update and keep up with our user needs and the product development,

Key take-aways

  • Collaboration is key: As a designer, it is important to understand how the development team works.  and implement the components to find best way to improve our workflows and onboarding. 
     

  • Keep learning: As tools keep evolving and improving, it is important to keep ourselves in the loop and find ways to improve our current ways of working.
     

  • Ask and get frequent feedback:  It is okay to not know everything. I have learned to not be afraid of asking questions and  get feeback from the developers in regards of how would they implement a component, or how do they think we should work. At the end, the main objective of working with the DS is to make our workflows better. 

bottom of page