Celtra Design System

Celtra Design System

In:
6 min read
0-1 development of a custom design system to unify visual language across three diverging codebases while simultaneously overhauling the platform one project at a time.

Context

Company: Celtra
Timeframe: 2018 - 2019
Role: VP of Product

With the company's fast growth and an influx of new features, the platform quickly outgrew its original design. Some new projects had to be built with legacy UI components for pragmatic reasons; on others, the team was innovating with new visual languages.

Furthermore, the three main parts of the platform were built using different front-end technologies, which prevented us from using the same UI components across the board. We were accumulating technical debt and losing grip on user experience, yet we couldn't afford to stop and consolidate because business circumstances dictated new features over tooling.

Mission

The opportunity finally arose when engineering got the approval for rewriting the platform's core with Vue.js. I partnered up with engineering leads responsible for the overhaul and devised a strategy for finally consolidating visual language and user experience with a design system.

Contributions

  • Architecting optimal workflow stack by evaluating 20+ design tools.
  • Analyzed leading design systems to establish best practices.
  • Designed the foundation of the component library with version control.
  • Oversaw design of all ongoing roadmap projects to prevent UI divergence during 18-month rollout.
  • Supported development teams with implementation until the style guide was established.

Results

Stats not available due to my departure before the v1.0 release


Highlights

Stack research and testing

Our objective was to achieve a lean production workflow, ensure long-term interoperability, and be rational with licensing costs.

Design Version control Prototyping and animation Handover Icons Style guide
• Sketch
• Framer X
• Figma
• InVision Studio
• Adobe XD
• InVision DSM
• Abstract
• Plant
• Framer
• Principle
• Marvel
• Flinto
• Origami Studio
• LottieFiles
• Kite Composer
• Sketch Cloud
• Zeplin
• InVision Inspect
• Nucleo
• Streamline
• FontAwesome
• Noun Project
• VUEDS
• Fractal
• Catalog
• Patternplate
• Bit
• zeroheight

We were bullish on Framer X’s vision of designing with live codebase components. Unfortunately, it was incompatible with our Vue.js stack. InVision's Studio was fresh in beta, buggy, and its import of Sketch files was unreliable. Figma seemed promising; however, at the time it had limited features for managing component libraries, no desktop app, and requiring the entire team to learn a new tool would be a hard sell.

We decided on the combination of Sketch, Abstract, and Principle. It was a safe, immediate bet that would enable us to easily port to Framer, InVision, or Figma in the future if necessary.

Architecture

Studying the leading design systems such as Google’s Material Design, IBM’s Carbon, Airbnb’s DLS, Shopify’s Polaris, Atlassian Design System, etc., and their implementations allowed us to quickly learn from the best and avoid rookie mistakes.

The ambition was to eventually achieve a system that relied on code as the single source of truth by using Airbnb’s React Sketch.app for generating Sketch components and VUEDS for generating documentation.

Meanwhile, we found the Overrideit Sketch plugin to alleviate the pain of finding components within the dropdown menus and a clever hack for auto-resizeable button symbols [pre auto-layout].

Whiteboard sketch of a unified system for design and code implementation

Form vs. function

The biggest initial challenge was finding consensus on diverging views between aesthetics, functional requirements, and simplicity. It took several months of incremental progress and stress-testing (with more than 10 shades of blue) to arrive at a solution that ticked off all the boxes.

We opted for the underline form elements style to simplify UI by reducing the number of nested rectangles and borders. As a B2B product with technically savvy users, we could afford trading a thin layer of clarity on individual parts for an improved clarity of the whole.

Legacy design of campaign management dashboard

Luminosity and contrast

Another area of having to find optimal balance was tweaking the text and semantic color values to meet WCAG AAA requirements, while for decorative colors and backgrounds, the AA rating was sufficient.

Bright and Dark grayscale
Color system optimized for functional same values in both modes and tonal harmony

Type system

To support our customers globally, we required the UTF-8 charset. A custom webfont in at least three font weights would translate to a significant payload. Using the OS’s native type family was an obvious choice to get premium typography and full accessibility while staying within the performance budget.

System fonts weights comparison table
Latin 1 character set specimen comparison layout
Type scale with tracking optimization applied to normalize differences in character width and default kerning
Overlay test ensuring minimal differences in line widths and breaks and thus cross-platform layout consistency

Scale

To achieve clear visual hierarchy and optimize the user experience for the entire spectrum of devices (from 27" external displays to smartphones), we would need every UI element in three sizes: condensed, normal, and fat.

Campaign management dashboard UI design with responsive behavior
Standard 4px grid and multiplier spacial scale

Iconography

Nucleo icon library

Open-standard and media partners ad product categories

Ad formats line-up

Components

Drop down menus variants

Data-driven design

We often run into dilemmas where accommodating a wide range of edge case scenarios would require big trade-offs. By analyzing live data (e.g., quantity of list items, length of titles, time ranges, frequencies, etc.), we were able to optimize UI decisions for realistic value ranges.

Implementation and rollout strategy

The operational constraint of developing a design system while simultaneously using it in production was incredibly challenging but proved extremely effective. It expedited our learning about the platform's intricacies, enabled us to stress-test elements before rolling out the entire system, and prevented us from creating design fiction. Within the next year and a half, we meticulously directed all roadmap projects to ensure all ongoing projects were using the correct components and were aligned with the platform redesign big picture.

New Creative dialog with multitude of configuration screens
Selection of platform screens after redesign

Credits

Design: A. Venta, A. R. Urankar, G. Furcolo
Engineering: U. Pirnat, M. Tribušon

Natan Nikolic — Freelance product designer based in London. Before founding about:blank studio, he was VP of Product at Celtra, and helped European entrepreneurs built startups 0-1.