Suitcase design system — from theory to practice

Willy Fontenelle
9 min readAug 24, 2023

--

Integrating product design work across different teams and technologies

Context

In early 2022, the work scope of the Hurb product teams was growing with new demands and the need for interface designs that scale more efficiently became ever greater. In addition, inconsistencies were also growing considering the entire ecosystem of the company, whether in the context of design or between the different Web, iOS and Android technologies.

For this, we integrated the first team with people exclusively dedicated to the design system. Some similar initiatives ran in parallel, such as libraries of styles and components in Figma, but they still weren’t faithful to what existed in production. On the side of the web front-end team, there was already a technical documentation of components in the Storybook, which would become the main starting point for our evolutions.

Web component library in the Storybook tool

During the first phase of the work, we spoke directly with the main stakeholders, whether in design, product or development. We set up a task force involving the technical teams to map the existing inventory and define the next steps together with the leaders.

In the same way, the proximity and feedback of product designers would be fundamental to each progress or update, as well as the support provided by us with the best practices especially for this initial period, always studying other design systems in the market and innovations.

Scope definition

We seek to look at the “clusters” of what we can consider as important for the maintenance and evolution of a design system and that, as a result, would help define the next steps:

How is the health of the design system?

For a design system to work, reflecting on the business and end user of the product, it needs to be healthy, mirrored on all its fronts and with the lowest number of failures (or bugs).

Only then does it reflect positively on the product development process, facilitating communication between design and development during the handoff and validation (QA) stage.

How much are we helping in the process?

There is no point in having the most complete and healthy design system possible if it is not usable and aligned with the routine and processes of the people who use it.

And here’s the challenge: if designers deliver screens (images, prototypes) and developers deliver lines of code, how to reach a consensus to support the day-to-day of both as much as possible?

Are the DS fronts consistent?

Finally, all of this will result in deliveries of the “real” product that impact the company’s end users, so all of this must converge to something consistent, coherent and very well aligned with the guidelines and positioning of the company’s brand, the “ standardization”.

All of this goes far beyond using the correct color palette, the font defined in the visual identity or respecting logo sizes, but also preserving the experience across different devices, application and maintenance on different platforms.

By monitoring these points, we get thermometers on our design system to be our guides, KPIs and triggers for initiatives, tasks and next steps.

Success indicators

At the beginning, in an environment with many inconsistencies between libraries and bottlenecks in the handoff stages between designers and developers, it was necessary to map the elements developed to understand the real scenario on each front.

Rating criteria

With the entire team, we raised some key points to measure the quality of a component of the design system, criteria that would be our guides to keep the elements healthy.

Project

In design, we defined criteria that would ensure that the component was functional for use with the tool and perceivable criteria in line with the principles that were defined in the Hurb product and brand.

Technology

For the code, the greatest importance was to guarantee the functioning of the element with revisions and tests defined by the engineering team and the alignment with the design definitions.

Documentation

In the documentation the main objective was to ensure that the good use of the component is preserved.

Prioritization

Finally, we defined that some criteria could also support the visibility of the next steps, bringing inputs to the team’s day-to-day and backlog definition.

Monitoring

Based on the raised criteria, we evaluated all components of the web library and related what was available in other libraries, generating a data source to support the mapping of evolutions regarding the health of the design system.

Design system — tokens and components health tracking worksheets

Structure, processes and files

With the scope of work and our success metrics defined, the challenge revolves around the organization as a team.

Our internal documentation in the Coda tool gained strength from studies on where the elements of the design system would be manifested and their influence on the team’s deliveries.

Studies on interaction layers and internal documentation

We adopted the kanban methodology to continuously evolve, with steps always aligned with development tasks to tie processes and workflows together.

We adopted the kanban methodology to continuously evolve, with steps always aligned with development tasks to tie processes and workflows together.

We also defined the organization of files in Figma to respect the timing of each task, from exploring a new hypothesis to final collaborations and validations.

Files of primary use by the team involved in the design system

All this internal structure of the system design team helped to prepare the ground for the organization of the usage files, understanding what the best approach for the design libraries would be.

Consumer libraries and designer knowledge

Roadmap

We managed to evolve the team’s day-to-day activities and generate a squad routine with a process to guide the tasks, weekly ceremonies on continuous evolutions and a well-defined structure of libraries and files, all that was left was to define the path we wanted to take.

We looked at the indicators, some requests, technical needs and got a guide for the next steps.

Estimation of initiatives and definition of the first versions

Definition of the initial version

Even so, it was important for the company to have an initial milestone, and defining a first version would help us turn the key so that all product teams could start to follow the continuous evolutions and thus start a first transition period.

The business documentation began to emerge, where we detail all the elements defined for the first version and everything that users need to use to accompany the evolution of the design system.

Business documentation in the Supernova tool
Materials for contextualization and targeting about tokens, tasks and others

Suitcase launch

In April 2023, we finally launched the first version of the design system, with the collaboration of all teams for suggestions and choice of the final name. We also created our own visual identity in line with the company’s values and concept.

We chose to use the Supernova tool to make the documentation available to the public, relying on technology integration features that could help us deliver more scalability in future releases. For the launch, a presentation was made for the entire company, telling a little about the main challenges and how we got to that moment.

Access the official documentation at hurbdesign.supernova-docs.io/suitcase

Foundations

To meet the minimum health criteria, after a series of alignments in design and technology, we arrived at a common denominator for the definitions of styles and visual elements for all teams. Our design tokens would be made available as a single source of truth serving different contexts of use.

Design tokens manifest design decisions in unique, absolute style variables, named semantically and distributed across design tools and code languages.

Colors

Even before the definitions of usage colors, color palettes were created that would serve as support even for eventual changes in the future. To better balance the color tones used not only in digital products, but even in illustrations or marketing pieces, a primitive color palette was created. Using it, the semantic color palette carries more than just the names of the colors, but also functions specific to them.

Initial definition of primitive color palette and reduction for contrast improvement

However, to meet criteria of accessibility, visual weight and combinations, usage colors respect application definitions, such as texts, icons, backgrounds and borders or even states of use or relevance. By using context colors as a dependency, we could easily switch themes and contrast modes. We also separate tokens for general use from those that would be used exclusively for components, containing specific states and functions.

Specific applications help in defining usage rules

Layout

Complementing the colors, we also defined tokens for measures, shapes and other design specifications and clearer rules of use, establishing hierarchical roles and better visibility for different layout elements.

Variations for spacing, sizes, icons, borders and shadows applied to layouts

Icons

We organized the library of available icons and documented the types of variations, where they should be applied in the interface and the process for suggesting new icons.

Filled and hollow icons and application rules for each

Typography

For all the texts, a separate study was carried out. By defining tokens for sizes, spacing, weights and more, we tie together the possibilities of styles for use, establishing a hierarchy of information and still respecting best practices for responsiveness.

Using text styles to preserve hierarchy and responsiveness

Components

For our components, it would be fundamental from the beginning to monitor their health through pre-established criteria. In an initial stage, we mirror all the components available in the web front end library and make them available to designers as a way to reduce the noise of non-standard implementations and deliver more efficiency.

Health monitoring of the components according to the raised criteria

Then, together with the teams and following our evolution roadmap, we started to act component by component, understanding its limitations and possible design and accessibility improvements and documenting rules of use.

Availability and evolution of components respecting their variations and states in design libraries

Branding and Content

As a documentation to be used by the entire company, we have also separated two sections aimed at unifying resources and guidelines aligned with the positioning and visual identity of the brand, as well as how it communicates with its customers. All of this always counting on the collaboration of the main people involved in marketing and writing/content.

In addition to building interfaces, the brand documentation brought important information to align the company’s communication

New deliveries

Ufa! We arrived at a first version, but the team’s performance continues to evolve and the new deliveries need to be defined.

Some lessons learned along the way helped to refine the roadmap, review some aspects of the process and, above all, better understand the scope of action.

Definition of requirements for version releases
Alignment of the scope of action with the leaders

Continuous improvement

Throughout the process, some surveys with designers, product managers and developers served as a thermometer on the deliveries of the first stages, but it was also possible to receive important insights for the next stages.

Continuous surveys with important feedback regarding the use of the documentation

We maintained the continuity of these surveys in parallel with routine tasks, creating the culture of always having continuous discovery to reinforce the teams’ adoption and feed a board of insights and hypotheses to support the refinement of the next steps.

Bank of insights generated a backlog to be prioritized for the evolution of the design system

--

--

Willy Fontenelle

Product Designer | UI/UX | Design System | Front-end React