Carina Design System

Growing a design system for better designer-developer collaboration

Cvent is an SaaS platform for event management, marketing, and registration. They'd been making software for event planners, marketers, attendees, and vendors for 20 years, but their UX team was only a few years old. For my 11-week product design internship, I worked on the design system team on 3 different projects.

The Cvent Design System, which was named Carina, was a year in the making. As one of the three designers working solely on Carina, I was responsible for making some early decisions required to scale the design system and start shipping it. I also contributed 3 different components.

Roles

  • User Research
  • Wireframing
  • Prototyping
  • Visual Design
  • Documentation

Team

  • 1 Design Manager
  • 2 Principal Product Designers, including my manager
  • 2 Engineers
  • 1 Engineering Product Manager
  • 1 Product Design Intern (me!)

Time

June 2019 - August 2019 (11 weeks)

Tools Used

  • Sketch
  • InVision
  • Abstract
  • Jira
  • Confluence
  • Framer

3 Projects

Ellipses Control: Complex Input Fields

View Full Case Study →

Design Tokens

View Full Case Study →

Designing Components

View Full Case Study →
Project 1

The Ellipses Control: An Input Field for Enterprise Tasks with Varying Complexity

The Ellipses Control was a component that appeared in the legacy Cvent products. It was a form field with an ellipses button attached to it. The button pulled up a modal window that helped users select input for the form field, or create a new value.

Since Cvent's products were made for event planners, often planning large-scale, complex events, the Ellipses Control allowed for use cases where event planners might not know exactly what to input; for example, a vendor's name.

My job was to redesign the Ellipses Control for Carina while following Carina's design principles of being simple, inviting, and fresh.

Insights

  • The Ellipses Control was a convenient, catch-all component for complex input tasks. There was no limit to the type of controls and content that previous developers had tried to put in an Ellipses Control Modal — advanced search, multi-step flows, creating, and more.
  • However, there were clear use cases that the Ellipses Control attempted to address, like the ability to easily create items to select during form input, selecting complex data that has multiple relevant attributes, or selecting data that is not easy to recall.
  • We decided not to move the component forward in Carina, and instead make rules for addressing these special use cases.

Solution

Carina's design principles are about being fresh, simple, and inviting. A complex table hidden in an ambiguous control did not follow those principles. Instead of a one-size-fits-all solution, I came up with a range of solutions for the variety of use cases I found in the Cvent products, organized by complexity level.

1. A guide for migrating the legacy Ellipses Control to Carina, based on the complexity each the use case

2. Two new extensions to the Combobox component: Creatable Combobox and Detailed Combobox

The need for these components came directly from the use cases that were previously (poorly) addressed with the Ellipses Control.

Creatable Combobox

Detailed Combobox
View Full Process →
Project 2

Design Tokens: Improving developer-designer collaboration at Cvent

Background

Design Tokens are the building blocks of any design system. They are variables that store color, typography, and sizing values. Instead of using hard-coded values, tokens are used to promote scalability and adaptability as the design system evolves.

To a developer at Cvent, a design token might look like this:

background:
$backgroundColor.interactive.fill.base;
//value: rgb(0, 106, 225)

To a designer, they looked more like the image to the right.

Designers were not using tokens, and developers were frustrated that they had to open Sketch files to figure out what colors to use when coding Carina components. On the other hand, designers didn't understand how tokens worked, or why they couldn't just give the RGB color code.

My job was to come up with a solution that would help bridge the gap between designers and developers when it came to using tokens and handing off designs.

Insights

  • After setting up several meetings weekly with designers and developers, and drawing inspiration from how non-Carina designers handled the hand-off process, I realized the real problem was that designers were handing off their designs without understanding how the devs would develop them. Furthermore, the designers had a completely different color system from the developers.
  • The coded token system was created without the designers' usage of color in mind, and didn't match up correctly with the way designers used the colors. I found that the most ideal solution was to re-architect the whole system with semantically-correct names, however, this was not possible with the developers' timeline.
  • I proposed a temporary solution based on all the current constraints: thorough training and documentation for designers in order to sync them with the current token system, as well as a handoff template for Carina designs.

Solution

A design system is only effective if people are willing to adopt it. Creating a successful design system isn't just designing components and choosing colors. It also involves the documentation, promotion, and education of the design system. This principle guided my solution, which came after many rounds of iterating on different ideas.

1. A 1-hr training workshop and Q&A session, teaching 20+ designers how to use Carina Design Tokens for better handoff
I didn't get any screenshots of the workshop, so here's me pretending to give the workshop on Zoom later :-)

2. Detailed documentation for the Carina Design Wiki on what tokens are, how they work, and how to use them

3. A new design handoff template centered around token usage.

View Full Process →
Project 3

Creatable Combobox, Detailed Combobox, Text Link, and Dueling Picklist

As a Carina Design System designer, I was asked to contribute additional components to the design system. I worked directly with developers, an accessibility designer, and the Carina Design Manager. In addition to the design of each component, I was responsible for coming up with different interaction states, accessibility guidelines, and usage guidelines for other designers.

Components

1. Creatable & Detailed Combobox

Creatable combobox
Detailed combobox

2. Text Link

3. Dueling Picklist

Tools and Workflow

During this time, I got familiar with many different tools and workflows:

  • Scrum & Jira: I was part of a sprint team consisting of a PM, several developers, and 2 other designers. I was assigned several tickets and attended sprint meetings daily.
  • Sketch: Although I already knew how to use Sketch, I learned how to use design system features such as Libraries, Components, Text Styles, and Layer Styles.
  • Abstract: As I iterated on the design library, I needed to use version control to keep track of my changes. I quickly picked up Abstract, a version control manager for Sketch, as I was already proficient in Git.
  • Invision: We kept all the components in the design system up-to-date in an Invision project.
  • Framer X: For one of my components, it was necessary to prototype the interaction.
  • WCAG: Accessibility was a huge part of my designs. I researched accessibility guidelines and spoke with an Accessibility Designer regularly to ensure my designs were accessible.
View Full Process →