Introducing Base Web, Uber’s New Design System for Building Websites in React

Nadiia Dmytrenko, Chase Starr, Gergely Nemeth
6 min readbeginner
--
View Original

Overview

The article introduces Base Web, Uber's new design system designed for building web applications using React. It emphasizes the importance of a universal design system to enhance productivity and reduce redundancy in development processes across Uber's numerous internal web applications.

What You'll Learn

1

How to implement Base Web in your React applications

2

Why a design system is essential for team collaboration

3

When to utilize the overrides pattern for component customization

Key Questions Answered

What is Base Web and how does it benefit developers?
Base Web is an open-source toolkit of React components that serves as a foundation for creating web applications. It enhances productivity by providing reusable components and a common design language, reducing the need for engineers to reinvent solutions for different applications.
How does Base Web ensure accessibility for users?
Base Web prioritizes user accessibility by providing tools that help developers create products that work for all visitors. It includes features like reliable keyboard navigation and screen reader compatibility, ensuring that components like drag-and-drop lists are accessible.
What testing strategies does Base Web use to maintain reliability?
Base Web employs visual regression services to screen each React component on every commit, ensuring pixel-perfect layouts. Additionally, it uses Puppeteer for end-to-end testing, which helps verify that updates meet product requirements and do not introduce bugs.
What customization options does Base Web offer developers?
Base Web is designed to be highly customizable, allowing developers to easily theme design tokens like colors and typography. It also provides an overrides API that enables developers to pass custom properties and styles or completely replace components.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Key Actionable Insights

1
Implementing Base Web can significantly streamline your development process by providing a consistent set of components.
Using a design system like Base Web reduces the time spent on creating and maintaining UI elements, allowing teams to focus on building features and improving user experience.
2
Utilize the overrides pattern to customize components without altering the core library.
This approach allows for flexibility in design while maintaining the integrity of the Base Web components, making it easier to adapt to specific project requirements.
3
Leverage the accessibility features of Base Web to ensure your applications are usable by everyone.
By prioritizing accessibility from the start, you can avoid costly redesigns later and ensure compliance with accessibility standards.

Common Pitfalls

1
Failing to adopt a design system can lead to inconsistent user experiences across applications.
Without a unified design language, developers may create disparate interfaces that confuse users and increase onboarding time for new team members.
2
Overcomplicating component customization can lead to maintenance challenges.
It's important to use the overrides pattern effectively to avoid bloated components that are difficult to manage and understand.