Building Enjoei's First Design System

Year

2020

Tools

Figma

Role

Product Designer

Upon joining Enjoei, a Brazilian e-commerce company with over 11 years in the market, I discovered there was no design system in place. Interfaces were inconsistent, and design patterns were scattered across multiple files and teams. My role was to lead the creation of the company’s first design system, building it entirely from scratch, from tokens and components to documentation and team alignment.

Upon joining Enjoei, a Brazilian
e-commerce company with over 11 years in the market, I discovered there was no design system in place. Interfaces were inconsistent, and design patterns were scattered across multiple files and teams. My role was to lead the creation of the company’s first design system, building it entirely from scratch, from tokens and components to documentation and team alignment.

Design system interface showing styled buttons, input fields with labels and states, user profile cards, filter chips, brand logos, and reaction counters on a light purple background.

Challenges

At the beginning, there was no development team available to collaborate on the technical side of implementation. The engineers were overloaded with other priorities, so the design system had to move forward initially as a design-driven initiative. This created friction, as developers had to manually build UI elements from scratch, even though the design team was using repeated visual patterns in Figma.

Abstract, rounded flower-like shape in light purple centered on a bright orange background.
Abstract, rounded flower-like shape in light purple centered on a bright orange background.
Abstract, rounded flower-like shape in light purple centered on a bright orange background.
Set of UI buttons with pink and white styles labeled in Portuguese, displayed on a dark purple background with the text 'before rebranding'.
Set of UI buttons with pink and white styles labeled in Portuguese, displayed on a dark purple background with the text 'before rebranding'.
Set of UI buttons with pink and white styles labeled in Portuguese, displayed on a dark purple background with the text 'before rebranding'.

Discovery

I started by auditing the existing interfaces and mapping all visual components in use. This helped me identify duplicates, inconsistencies, and gaps. Based on that, I defined the architecture of the design system, organizing it into two main layers:

Foundations

Colors, typography, spacing and corner radius.

Foundations

Colors, typography, spacing and corner radius.

Foundations

Colors, typography, spacing and corner radius.

Components

Buttons, inputs, modals, etc.

Components

Buttons, inputs, modals, etc.

Components

Buttons, inputs, modals, etc.

Foundations
& Tokens

Foundations & Tokens

Foundations & Tokens

I built the foundations of the design system using variables to drive consistency, scalability, and easy maintenance. By defining tokens for color, typography, spacing and corner radius, all structured as variables in Figma. This way, I managed to create a flexible base that allowed for quick updates, smooth brand transitions, and better alignment between design and code. This approach also improved accessibility and streamlined collaboration across teams.

UI color palette showing primary, secondary, and tertiary brand colors with hex codes and variable names, on a grid layout.

Components

After defining the foundations, I focused on building a consistent and reusable component library. To ensure scalability and ease of maintenance, most components were built around a master component structure, using base elements as the single source of truth, with variations branching from them. From buttons and inputs to more complex UI patterns, each element was designed with flexibility, accessibility and responsiveness as priorities. I used variants, auto-layout and variables to support customization without compromising consistency.

Documentation

All of this was structured and documented in Figma, with clear usage guidelines, best practices, and interactive examples to facilitate adoption and understanding. In parallel, we used Storybook to document the coded components, which served as a practical reference for developers. While the documentation in Figma focused on design intent, component logic, and visual usage, Storybook ensured alignment on implementation details, states and behavior, allowing both designers and developers to work with the same components through tools tailored to their workflows.

Collaboration
& Governance

Even without engineering involvement at the start, I made a point to align regularly with both design and development teams. I held meetings to present the system, clarify objectives, and explain the benefits of adoption. I also used internal communication channels to share updates, foster transparency, and encourage feedback and collaboration.

Slack and Google Meet app icons with rounded corners, displayed side by side on a light gray background.
Slack and Google Meet app icons with rounded corners, displayed side by side on a light gray background.
Slack and Google Meet app icons with rounded corners, displayed side by side on a light gray background.
Enjoei logo in light purple over a dark purple background, with playful, rounded typography forming a mirrored, abstract ‘m’ shape
Enjoei logo in light purple over a dark purple background, with playful, rounded typography forming a mirrored, abstract ‘m’ shape
Enjoei logo in light purple over a dark purple background, with playful, rounded typography forming a mirrored, abstract ‘m’ shape

Impact

The impact was significant: we reduced the time required to design and ship screens and features, minimized rework and misalignment across teams, and improved both design and frontend development speed. We also embedded accessibility and responsiveness standards into the system from the ground up, improving product quality and user experience. A culture of collaboration and continuous learning began to take root across the team.

Design system interface showing styled buttons, input fields with labels and states, user profile cards, filter chips, brand logos, and reaction counters on a light purple background.

Learnings

Designing a system goes far beyond creating components, it's about enabling scale, improving collaboration, and driving product quality. Through my experience leading a design system from scratch, I gained several key insights:

Systems Thinking

I learned to shift from designing isolated screens to building scalable patterns that serve multiple contexts. Thinking in systems means considering logic, rules, and relationships, not just aesthetics.

Systems Thinking

I learned to shift from designing isolated screens to building scalable patterns that serve multiple contexts. Thinking in systems means considering logic, rules, and relationships, not just aesthetics.

Systems Thinking

I learned to shift from designing isolated screens to building scalable patterns that serve multiple contexts. Thinking in systems means considering logic, rules, and relationships, not just aesthetics.

Collaboration & Governance

I saw the value of involving cross-functional teams early on. Clear contribution processes and open communication helped build ownership and alignment across design, development, and product.

Collaboration & Governance

I saw the value of involving cross-functional teams early on. Clear contribution processes and open communication helped build ownership and alignment across design, development, and product.

Collaboration & Governance

I saw the value of involving cross-functional teams early on. Clear contribution processes and open communication helped build ownership and alignment across design, development, and product.

Design Ops Mindset

Through the system, I explored how structure can improve team efficiency. By designing for reuse, I helped reduce rework and enabled faster, more consistent deliveries, turning design into a strategic asset.

Design Ops Mindset

Through the system, I explored how structure can improve team efficiency. By designing for reuse, I helped reduce rework and enabled faster, more consistent deliveries, turning design into a strategic asset.

Design Ops Mindset

Through the system, I explored how structure can improve team efficiency. By designing for reuse, I helped reduce rework and enabled faster, more consistent deliveries, turning design into a strategic asset.

Design–Development Alignment

Working closely with engineering taught me how design translates into code. I developed a better understanding of tokens and states, and how to communicate design decisions in a way that makes implementation smoother.

Design–Development Alignment

Working closely with engineering taught me how design translates into code. I developed a better understanding of tokens and states, and how to communicate design decisions in a way that makes implementation smoother.

Design–Development Alignment

Working closely with engineering taught me how design translates into code. I developed a better understanding of tokens and states, and how to communicate design decisions in a way that makes implementation smoother.

Team

Product Designer:

Mafalda

Product Manager:

Front-end Developer Web:

/

Front-end Developer iOS:

Front-end Developer Android: