A design system is not a static document, but a collaborative living workspace that is constantly adapting to the current needs of your application and user-base. Most of our UX/UI team came from strong user-research driven backgrounds but little to no UI design software experience, so it was difficult conveying inefficiencies in our current Figma design system:
> Control - components were created by a separate department, who we would need to officially request/petition for new or updated components
> Redundancy - Default/Active/Hover states were often created as separate design assets, multiplying the overall size of our library
> Unresponsiveness - Components were not made screen responsive, so components would be immediately disconnected from the library in order to make manual size changes
While the new design system I advocate for is a work in progress, we're happy with the improvements in the following areas:
> Unified - By organizing component libraries, styles, and "master files" under a single project, we added a layer of intention to our design process. When we updated designs in one area, we make the conscious decision whether or not that needs to be applied to the other areas as well (ex. Is this change OS specific? And if so, does it need to be? ) This was my strategy for preventing a diverging design system for Android and iOS. I am a big proponent of OS-agnostic design systems and a design system more tightly consolidated across OS is more agile and scalable.
> Compact - Through Figma's Variant feature, we were able to consolidate dozens of separate design assets into single components
> Responsive - A component system will only last as long as it's useful to the designer, so it was important for us to create components that could adapt to any number of ongoing projects across LINK. Our components were upgraded with both auto-layout and constraints to fit any mobile screen size, (which also helped communicate responsive behavior to our developers)
> Maintainable - By creating components from the smallest possible assets (text, icons, buttons), and gradually nesting them in more and more complex components (forms, lists, menus), we were able to create a modular system that would only require updating a single component to cascade that change to every related design asset.
Of course, a design system is never perfect, and we are constantly brainstorming new ways to optimize our design system so we can spend less time on maintenance and more time on the user experience.