Nov'24 - Apr'25

Nov'24 - Apr'25

B2B2C, Design Systems

B2B2C, Design Systems

Design, Develop, Deliver: DSL’s Journey to a scalable Design System

Design, Develop, Deliver: DSL’s Journey to a scalable Design System

Design, Develop, Deliver: DSL’s Journey to a scalable Design System

Built a scalable design system that ensures consistency across DSL platforms, enhances collaboration between design and development, and minimizes time spent on redesigns, QA cycles, and bug fixes.

Built a scalable design system that ensures consistency across DSL platforms, enhances collaboration between design and development, and minimizes time spent on redesigns, QA cycles, and bug fixes.

— Overview

Dreamscape Learn (DSL) is an immersive learning platform that merges virtual reality (VR) and interactive digital experiences to revolutionize education.

With multiple development teams working across different DSL platforms, we faced challenges in maintaining a cohesive user experience and streamlining collaboration between designers and engineers.

To support scalable growth, I led the foundation, documentation, and rollout of a centralized DSL Design System, ensuring cohesive UI patterns, efficient collaboration, and reusable components tailored to internal tooling needs.

Team

  • Michelle Torres – Senior Immersive Designer

  • Myself – UX Designer

  • Dev Team

— The Problem: A Fragmented Inefficient Workflow

As our projects at DSL scaled, I noticed a growing challenge: the absence of a cohesive structure within our design system.

Multiple DSL projects used ad hoc components, causing:

  • One-off Components without shared guidelines

  • Lack of a Single Source of Truth

  • Scalability Issues

  • Duplicate Work

  • Slow Design-to-Development Handoff

Developer Quote

"We often receive designs that don’t align with our codebase, leading to extra work in development."

Developer Quote

"We often receive designs that don’t align with our codebase, leading to extra work in development."

Developer Quote

"We often receive designs that don’t align with our codebase, leading to extra work in development."

— Business Challenge: Why This Needed to Be Fixed

Beyond the immediate pain points, the bigger issue was scalability.

Without a standardized design system, the ability to launch new features quickly and maintain a seamless user experience was at risk.

HMW

create a scalable, unified design system that ensures consistency, speeds up workflows, and improves collaboration between design and development ?

HMW

create a scalable, unified design system that ensures consistency, speeds up workflows, and improves collaboration between design and development ?

HMW

create a scalable, unified design system that ensures consistency, speeds up workflows, and improves collaboration between design and development ?

— Solution: Enter the Design System

Modular, scalable Figma components

A library of predefined, flexible components that adapt to different use cases.

Video explaining the construction and functionality of components, states, variations, unique naming for clarity and detailed annotations.

Video explaining the construction and functionality of components, states, variations, unique naming for clarity and detailed annotations.

Video explaining the construction and functionality of components, states, variations, unique naming for clarity and detailed annotations.

Developer-Ready Code 

Components mapped to code-based counterparts in Storybook, ensuring a seamless transition from design to development.

Comprehensive Documentation

Detailed annotated guidelines on usage, accessibility, and customization for every component.

Scalability & Responsiveness

A system built to evolve with the product, ensuring adaptability for future growth.

The mobile accordion component showcases the nested pod schedule, including user names, remaining seats, session type, and time details, nested under the main pod detail component.

The mobile accordion component showcases the nested pod schedule, including user names, remaining seats, session type, and time details, nested under the main pod detail component.

The mobile accordion component showcases the nested pod schedule, including user names, remaining seats, session type, and time details, nested under the main pod detail component.

— Behind the scenes : How I Achieved a Scalable and Unified Design System

Laying the Foundation

Before jumping into building DSL, I needed to understand the gaps in our current workflow, learn from industry best practices, and define the key requirements for a scalable, developer-friendly design system.

Research and Strategy

  1. Internal Research 
    Identifying inefficiencies in our design and development workflow.

  1. Competitive Benchmarking
    Learning from leading design systems to ensure we built something scalable.

  1. Best Practices & Accessibility
    Ensuring that DSL would be flexible, inclusive, and built to last.

Research and Strategy

  1. Internal Research 
    Identifying inefficiencies in our design and development workflow.

  1. Competitive Benchmarking
    Learning from leading design systems to ensure we built something scalable.

  1. Best Practices & Accessibility
    Ensuring that DSL would be flexible, inclusive, and built to last.

Research and Strategy

  1. Internal Research 
    Identifying inefficiencies in our design and development workflow.

  1. Competitive Benchmarking
    Learning from leading design systems to ensure we built something scalable.

  1. Best Practices & Accessibility
    Ensuring that DSL would be flexible, inclusive, and built to last.

  1. Internal Research: What Wasn’t Working?

To build a system that teams would actually use, I first needed to identify what wasn’t working.

First. I reviewed 100+ screens across DSL Admin, Booking, and Affiliate tools, identifying pattern overlaps, inconsistencies, and redundant components.

I collaborated with 5 cross-functional members (PMs, Devs, QA, Designers) to gather pain points, key flows, and requirements for the focus areas.

Focus Areas

  1. What components are reused most?

  1. What breaks during handoffs?

  1. What causes dev/designer confusion?

Focus Areas

  1. What components are reused most?

  1. What breaks during handoffs?

  1. What causes dev/designer confusion?

Focus Areas

  1. What components are reused most?

  1. What breaks during handoffs?

  1. What causes dev/designer confusion?

Through interviews with 10+ designers, engineers, and PMs, I identified key pain points:

  1. Lack of Documentation → Devs struggled to implement designs correctly.

  1. Scalability Issues → Existing components didn’t support variations.

  1. Inconsistent Naming → Caused confusion across teams.

Developer Quote

“Sometimes a ‘primary button’ means three different things across projects. We need clear definitions.”

Developer Quote

“Sometimes a ‘primary button’ means three different things across projects. We need clear definitions.”

Developer Quote

“Sometimes a ‘primary button’ means three different things across projects. We need clear definitions.”

  1. Competitive Benchmarking

Starting from scratch with a design system was challenging, and structuring components felt overwhelming. While I looked to Atlassian, Apple, and Google for inspiration, their extensive systems weren’t a perfect fit for DSL.

  1. Best Practices and Accessibility

The turning point came when I adopted Atomic Design principles, breaking components into atoms, molecules, and organisms. This approach brought clarity, making organization, scalability, and collaboration with developers much more efficient.

Through formal and informal research, I identified accessibility gaps early, reducing biases and ensuring DSL was inclusive, adaptable, and usable for all.

Strategy

I prioritized learning before designing by investing time in understanding user needs across diverse abilities and experiences.

Strategy

I prioritized learning before designing by investing time in understanding user needs across diverse abilities and experiences.

Strategy

I prioritized learning before designing by investing time in understanding user needs across diverse abilities and experiences.

— Component Framework

Building DSL from the Ground Up

The turning point came when I adopted Atomic Design principles, breaking components into atoms, molecules, and organisms. This approach brought clarity, making organization, scalability, and collaboration with developers much more efficient.

The turning point came when I adopted Atomic Design principles, breaking components into atoms, molecules, and organisms. This approach brought clarity, making organization, scalability, and collaboration with developers much more efficient.

DSL Design System Structure

  1. Foundations (Atoms)

  1. Components (Molecules)

  1. Patterns (Organisims)

DSL Design System Structure

  1. Foundations (Atoms)

  1. Components (Molecules)

  1. Patterns (Organisims)

DSL Design System Structure

  1. Foundations (Atoms)

  1. Components (Molecules)

  1. Patterns (Organisims)

Phase 1: Establishing Design Foundations

I began by defining the visual language of the system.

These foundational tokens ensured consistency across all components and laid the groundwork for responsive design and accessibility compliance.


Categories

  1. Colors (tokens for consistency)

  1. Typography

  1. Iconography

  1. Breakpoints Values

  1. Buttons

  1. Elevation

Categories

  1. Colors (tokens for consistency)

  1. Typography

  1. Iconography

  1. Breakpoints Values

  1. Buttons

  1. Elevation

Categories

  1. Colors (tokens for consistency)

  1. Typography

  1. Iconography

  1. Breakpoints Values

  1. Buttons

  1. Elevation

Phase 2: Building Reusable Components

I combined foundational elements into scalable, flexible components like buttons, form fields, and interactive elements.

Challenge

How do I maintain consistency while allowing flexibility?

Challenge

How do I maintain consistency while allowing flexibility?

Challenge

How do I maintain consistency while allowing flexibility?

Solution

I used variants and variables to ensure seamless adaptability, allowing quick adjustments without breaking the system’s structure or consistency.

Solution

I used variants and variables to ensure seamless adaptability, allowing quick adjustments without breaking the system’s structure or consistency.

Solution

I used variants and variables to ensure seamless adaptability, allowing quick adjustments without breaking the system’s structure or consistency.

Image showcasing multiple tab variants, providing flexible options tailored to different page and feature needs.

Image showcasing multiple tab variants, providing flexible options tailored to different page and feature needs.

Image showcasing multiple tab variants, providing flexible options tailored to different page and feature needs.

Phase 3: Creating Modular UI Patterns

Designed 35+ atomic & compound components.

In this phase, I combined atomic components into scalable UI patterns.

These patterns were designed to be dropped into different DSL tools with minimal customization, speeding up delivery while maintaining visual consistency.

Outcome

  1. Scalable navigation menus that adapt to different content structures.

  1. Responsive card layouts optimized for both web and mobile.

  1. Form fields with built-in validation for a seamless user experience.

Outcome

  1. Scalable navigation menus that adapt to different content structures.

  1. Responsive card layouts optimized for both web and mobile.

  1. Form fields with built-in validation for a seamless user experience.

Outcome

  1. Scalable navigation menus that adapt to different content structures.

  1. Responsive card layouts optimized for both web and mobile.

  1. Form fields with built-in validation for a seamless user experience.

Outcome

  1. Scalable navigation menus that adapt to different content structures.

  1. Responsive card layouts optimized for both web and mobile.

  1. Form fields with built-in validation for a seamless user experience.

Slider showing 'before' and 'after' of the button component: initially limited in properties, now redesigned with structured attributes and variations like size, type, and state.

Slider showing 'before' and 'after' of the button component: initially limited in properties, now redesigned with structured attributes and variations like size, type, and state.

— Documentation and Developer Handoff: Bridging the Gap

I chose Coda as our primary documentation hub. It serves as the single source of truth for all DSL Design System components, guidelines, and best practices.

To ensure seamless implementation, I focused on a documentation-first approach, making it easy for designers, developers, and stakeholders to access, understand, and apply the system.

Each component came with:

  1. Documentation – Usage guidelines, states, best practices

  1. Code Snippets – CSS/React properties for dev handoff

  1. Figma Variants – Ready-to-use flexible components

Each component came with:

  1. Documentation – Usage guidelines, states, best practices

  1. Code Snippets – CSS/React properties for dev handoff

  1. Figma Variants – Ready-to-use flexible components

Each component came with:

  1. Documentation – Usage guidelines, states, best practices

  1. Code Snippets – CSS/React properties for dev handoff

  1. Figma Variants – Ready-to-use flexible components

  1. What’s Inside the DSL Design System Documentation?

  • Component Guidelines – Detailed descriptions, usage best practices, and real-world examples

  • Component Properties – Variants, states, and how to customize them for different needs

  • Figma-to-Code Mapping – Explaining how variables and instances translate into UI components

  • Design Principles – Defining accessibility, responsiveness, and interaction patterns

  • Live Status Tracker – Keeping teams updated on the design, development, and testing progress

  • Interactive Snippets – Providing CSS, React, and code references for developers

  • Component Guidelines – Detailed descriptions, usage best practices, and real-world examples

  • Component Properties – Variants, states, and how to customize them for different needs

  • Figma-to-Code Mapping – Explaining how variables and instances translate into UI components

  • Design Principles – Defining accessibility, responsiveness, and interaction patterns

  • Live Status Tracker – Keeping teams updated on the design, development, and testing progress

  • Interactive Snippets – Providing CSS, React, and code references for developers

  • Component Guidelines – Detailed descriptions, usage best practices, and real-world examples

  • Component Properties – Variants, states, and how to customize them for different needs

  • Figma-to-Code Mapping – Explaining how variables and instances translate into UI components

  • Design Principles – Defining accessibility, responsiveness, and interaction patterns

  • Live Status Tracker – Keeping teams updated on the design, development, and testing progress

  • Interactive Snippets – Providing CSS, React, and code references for developers

Coda Documentation File

Coda Documentation File

Coda Documentation File

Figma Design File

Figma Design File

Figma Design File

  1. Figma Annotations: Bringing Context to Designs

I embedded detailed annotations in Figma to provide real-time design context for developers.

Each component includes:

  1. Variants & States

  1. Spacing & Layout Rules

  1. Accessibility Notes

  1. Implementation Notes

Each component includes:

  1. Variants & States

  1. Spacing & Layout Rules

  1. Accessibility Notes

  1. Implementation Notes

Each component includes:

  1. Variants & States

  1. Spacing & Layout Rules

  1. Accessibility Notes

  1. Implementation Notes

  1. Coda as a Developer-Friendly Reference

Figma provides visual guidance, but Coda offers in-depth implementation support. Each component in Figma links directly to its Coda documentation.

Each component includes:

  1. Code Snippets – CSS and React

  1. Best Practices – Do’s and don’ts for consistency across platforms

  1. Breakpoints & Adaptability – Guidelines for different screen sizes

  1. Version Control & Change Logs – Ensuring teams are always aligned

Each component includes:

  1. Code Snippets – CSS and React

  1. Best Practices – Do’s and don’ts for consistency across platforms

  1. Breakpoints & Adaptability – Guidelines for different screen sizes

  1. Version Control & Change Logs – Ensuring teams are always aligned

Each component includes:

  1. Code Snippets – CSS and React

  1. Best Practices – Do’s and don’ts for consistency across platforms

  1. Breakpoints & Adaptability – Guidelines for different screen sizes

  1. Version Control & Change Logs – Ensuring teams are always aligned

  1. Storybook for Live UI Previews

For developers, seeing components in action speeds up implementation. I integrated Storybook.

UI Preview to

  1. Interact with live components – Test different states and properties

  1. View real-time code previews – Get CSS/React snippets instantly

  1. Ensure design-to-code parity – Direct mapping from Figma to production

UI Preview to

  1. Interact with live components – Test different states and properties

  1. View real-time code previews – Get CSS/React snippets instantly

  1. Ensure design-to-code parity – Direct mapping from Figma to production

UI Preview to

  1. Interact with live components – Test different states and properties

  1. View real-time code previews – Get CSS/React snippets instantly

  1. Ensure design-to-code parity – Direct mapping from Figma to production

  1. Testing & QA

I also included usage + QA checklist templates to reduce friction during dev implementation.

Design QA Goals

  1. Reduce back-and-forth on spacing/alignment issues

  1. Align component behavior with interaction logicAlign component behavior with interaction logic

  1. Ensure accessibility (contrast ratios, keyboard navigation)

Design QA Goals

  1. Reduce back-and-forth on spacing/alignment issues

  1. Align component behavior with interaction logicAlign component behavior with interaction logic

  1. Ensure accessibility (contrast ratios, keyboard navigation)

Design QA Goals

  1. Reduce back-and-forth on spacing/alignment issues

  1. Align component behavior with interaction logicAlign component behavior with interaction logic

  1. Ensure accessibility (contrast ratios, keyboard navigation)

Result

Design QA bug rate dropped by ~40% within 3 sprints post-adoption

— Impact: Transforming Workflow and Efficiency

  1. Measurable Outcomes

  • 90% component reusability across DSL portals

  • 30% faster design → dev handoff

  • 40% drop in visual QA bugs

  • Improved dev-design trust and reduced UI debt

Project Manager Quote

"The implementation of DSL brought measurable improvements across design, development, and product scalability."

Project Manager Quote

"The implementation of DSL brought measurable improvements across design, development, and product scalability."

Project Manager Quote

"The implementation of DSL brought measurable improvements across design, development, and product scalability."

Developer Quote 1

"DSL took the guesswork out of UI implementation. Now, I can focus on building great experiences instead of recreating components from scratch."

Developer Quote 1

"DSL took the guesswork out of UI implementation. Now, I can focus on building great experiences instead of recreating components from scratch."

Developer Quote 1

"DSL took the guesswork out of UI implementation. Now, I can focus on building great experiences instead of recreating components from scratch."

Developer Quote 2

"Before DSL, aligning design and development was a challenge. Now, everything is structured, reusable, and easy to scale."

Developer Quote 2

"Before DSL, aligning design and development was a challenge. Now, everything is structured, reusable, and easy to scale."

Developer Quote 2

"Before DSL, aligning design and development was a challenge. Now, everything is structured, reusable, and easy to scale."

  1. Challenges and Lessons Learned

Defining What to Include in the System

Challenge: The scope kept expanding as different teams wanted everything standardized.

Solution

Defined core vs. contextual components, only systemizing reusable elements.

Solution

Defined core vs. contextual components, only systemizing reusable elements.

Solution

Defined core vs. contextual components, only systemizing reusable elements.

Structuring Components for Maximum Reusability

Challenge: Some components were too rigid, making customization difficult.

Solution

Introduced configurable properties, balancing consistency with flexibility.

Solution

Introduced configurable properties, balancing consistency with flexibility.

Solution

Introduced configurable properties, balancing consistency with flexibility.

Managing Variants Without Overcomplicating

Challenge: Too many variants led to complexity and maintenance issues.

Solution

Streamlined to only essential variants and used overrides instead of duplications.

Solution

Streamlined to only essential variants and used overrides instead of duplications.

Solution

Streamlined to only essential variants and used overrides instead of duplications.

Further Steps

Accessibility Refinements

Enhancing usability based on real-world testing.

Accessibility Refinements

Enhancing usability based on real-world testing.

Accessibility Refinements

Enhancing usability based on real-world testing.

Expanding Component Library

Adding new components as projects evolve and new use cases emerge.

Expanding Component Library

Adding new components as projects evolve and new use cases emerge.

Expanding Component Library

Adding new components as projects evolve and new use cases emerge.

Figma-to-Code Sync

Strengthening the link between design and development.

Figma-to-Code Sync

Strengthening the link between design and development.

Figma-to-Code Sync

Strengthening the link between design and development.

More projects

made with coffee, peer pressure & accidental naps

© Yukki

made with coffee, peer pressure & accidental naps

© Yukki

made with coffee, peer pressure & accidental naps

© Yukki

Back to top