Consistent UX at Scale: Lessons Learned When I Wore the DesignOps Hat

Rate this content
Bookmark

The need for Design Systems comes with the need for scale, efficiency, and consistency in design. Those have been one of the major talking points in the design—and front-end—community for the past years. Some love it; some are more skeptical. In this session, I'm gathering the common denominators I've noticed while working on Design Systems across small, medium, and huge companies, with an eye on points like consistency, themeability, accessibility, the path to deliver designs to actual code, and their adoption.


This talk has been presented at React Day Berlin 2022, check out the latest edition of this React Conference.

FAQ

The speaker is Mateus Obkerke, also known as YT Combinator on Twitter. He works at Medaglia and volunteers at TechLabs Berlin.

Mateus covers accessibility, the delivery process of a design system, and the adoption of a design system within a company.

Accessibility ensures that components work properly for all users, including those with disabilities. It involves addressing issues like proper contrast, screen reader compatibility, and handling various input methods.

Mateus mentions composition primitives (e.g., React Area, Downshift), unstyled components (e.g., Redix, ReachUI, HeadlessUI, Reakit), and fully-styled components (e.g., Material UI).

Automated testing can catch accessibility issues during the build process or through continuous integration. Tools like JSS accessibility, Lighthouse, and XCore help ensure components meet accessibility standards.

Design tokens are invisible pieces of design such as colors, spacing, and typography. They help maintain consistency and can be generated and managed using tools like Figma's REST API and plugins like Figma Tokens.

Mateus suggests using automated tools and CI pipelines to ensure design tokens and components are up-to-date. He also recommends using webhooks and code generation to streamline the process.

'Homebrew components' are custom-built components that are made from basic HTML elements like buttons and divs. These are contrasted with components that are part of the design system.

Manual testing is crucial because automated tests may not catch all issues, especially those that occur under specific conditions like high zoom levels or unique user interactions.

Mateus advises using linters and bots to check for ARIA compliance and incorporating ARIA support into the development process to meet legal and customer requirements.

Matheus Albuquerque
Matheus Albuquerque
31 min
02 Dec, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Today's Talk covers the challenges of implementing accessibility in design systems and the importance of using existing libraries. It also emphasizes the use of design tokens and code generation to ensure consistency across different code bases. The Talk explores automation, webhooks, and type safety in design systems, as well as the importance of measuring adoption and building accessibility. Finally, it suggests establishing a DesignOps team to encourage collaboration between designers and developers.

1. Introduction

Short description:

Hello everyone, welcome here. Today we're going to be talking about consistent UX and how to scale that and things, lessons learned that worked across different scales of products and companies. This is me, I'm Mateus Obkerke. You can find me everywhere as YT Combinator, including on Twitter.

Hello everyone, welcome here. I personally find it great to be here, back to all those conferences. I missed it so much, especially React Berlin.

As you probably know, today we're going to be here, talking about consistent UX and how to scale that and things, lessons learned that worked across different scales of products and companies. This is me, I'm Mateus Obkerke. You can find me everywhere as YT Combinator, including on Twitter. I work at Medaglia and I also volunteer at TechLabs Berlin.

We basically are mentoring people, learning programming and that kind of stuff. All the links for this session are available here, so if you scan the QR code, everything is here including networks and stuff. I do have a disclaimer. It's a lot of interesting topics that we have to fit them in half an hour. So, if anything feels like it deserves a proper follow up discussion, just feel free to reach. Throughout the conference, in the after party, everything.

2. Introduction to Design System Challenges

Short description:

Today, I'm going to be talking about three topics: accessibility, the delivery process of a design system, and understanding the adoption of your design system within your company.

I'd like to start a question. How many of you have worked on a design system? Either as an engineer, as a developer, or designer. Cool! A lot of raisers! So, you know that is definitely something that is not easiest, not a trivial system. Building and scaling that. That's why I'm here today. I'm here to talk about some challenges. Some results of a lot of people working together. The common denominators, as I mentioned, that worked across different companies, etc. It's also a lot about moving across the spectrum of designing and engineering. So, it's a lot about hearing from designers, collecting their feedback about the process, and that kind of stuff. Because we don't have like an hour or hours to discuss, we have to focus on something. So, today, I'm going to be talking about these three topics. Accessibility, the delivery process of a design system, and understanding a little bit about the adoption of your design system within your company. And then we're going to draw some conclusions on top of that.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

The Whimsical Potential of JavaScript Frameworks
React Summit US 2023React Summit US 2023
28 min
The Whimsical Potential of JavaScript Frameworks
Top Content
Watch video: The Whimsical Potential of JavaScript Frameworks
The speaker discusses the whimsical and detailed work of Stripe, particularly their interactive and dynamic pages. They explain the use of React for building whimsical details and tracking mouse position. The speaker introduces React Spring for smooth animation and React3 Fiber for creating a 3D egg model. They also mention the use of Framer Motion and React server components for animating CSS properties.
AI + UX: Product Design for Intelligent Experiences
C3 Dev Festival 2024C3 Dev Festival 2024
28 min
AI + UX: Product Design for Intelligent Experiences
AI design challenges include bias, safety, and security. Trust and transparency are important in AI. Design principles for AI include user control, fighting bias, and promoting good decision-making. AI can enable the design process and investors expect to see it included in products. AI empowers individuals to create and share ideas, but managing expectations is crucial.
Domain Driven Design with Vue Applications
Vue.js London 2023Vue.js London 2023
14 min
Domain Driven Design with Vue Applications
Top Content
Welcome to this talk on domain-driven design in Vue.js application. Today we are going to look into domain-driven design, its benefits and how it works with Vue.js domain-driven design versus the MVVM model. Vue.js thrives in domain-driven design, a design approach that models software to match a domain. DDD emphasizes understanding business logic and creating a domain that reflects the language and concepts. Integrating DDD in Vue.js offers benefits such as effective modeling of complex business domains, structured code reflecting domain logic, and easier onboarding and ownership.
Proven Pinia Patterns
Vue.js London 2023Vue.js London 2023
20 min
Proven Pinia Patterns
Top Content
Pinnia is a lighter, more modular state management solution for Vue apps, offering consistent patterns, TypeScript support, and an intuitive developer experience. PINIA encourages splitting state into manageable domains, improving code splitting, type inferences, team collaboration, and debugging clarity. Pinia provides flexibility in accessing and mutating state, with different approaches for option and setup stores. It also offers features like patch, reset, and onAction methods. Vue Mastery offers comprehensive Pinnia courses and resources for fast learning.
Component Design Patterns
Vue.js London 2023Vue.js London 2023
18 min
Component Design Patterns
The Talk covers clean components and when to create new components, as well as patterns for writing cleaner components and the benefits of VIP patterns. Refactoring and separating code into separate components can make it shorter and easier to read, reducing complexity. The importance of not repeating oneself and the benefits of using smaller components for performance and developer experience are discussed. Composables can help extract logic in large and complex components, and patterns can be incorporated into component libraries and design systems.
Building Figma’s Widget Code Generator
React Advanced Conference 2022React Advanced Conference 2022
19 min
Building Figma’s Widget Code Generator
This Talk introduces Figma's Widget Code Generator and demonstrates how to build a FigJam widget using it. The speaker discusses the implementation of voting functionality, avatar functionality, and remove vote functionality. They also explain how the Widget Code Generator plugin works and how to access properties and modify names using the Figma plugin API.