Unity Technologies is a video game software development company known for its real-time development platform, Unity, which is widely used to create video games and simulations for computers, consoles, and mobile devices. During my time, I lead the design of the Unity’s bespoke Design System, App UI from initial ideation to final public release.
2021-2024
Arriving at Unity, the ecosystem of applications built on different frameworks had become fragmented, often leading to poor user experiences. Apps built with the Unity and released in the App Stores were not aligned with any cohesive Design System. My task was to develop and implement a unifying source of truth that would improve product quality and velocity, while also modernizing the visual design of the system.
Unity had the unique challenge of having to build to any platform. We set out to build an extremely extensible design system that can meet the challenge.
Gathering internal and external feedback from the current design process allowed us to identify key pain points and problems that we could solve on the design system level.
Principles
Extensibility
Craft a versatile system capable of seamless integration and optimal performance across diverse platforms and devices.
Reduce Visual Noise
Streamline the user interface by minimizing unnecessary elements, enhancing focus, and improving clarity.
Code First
Emphasize clean, maintainable code architecture and development practices as the foundation of the design system.
To align our teams, we established a set of principles that would guide design process and decision making. These principles were the foundation of the design system.
Defining Design Tokens
To solve for extensibilty and building to multiple platforms, we relied heavily on using W3C standards of design tokens to define the foundational elements of the design system. Spending time experimenting and refining the token structure proved to be a worthwhile investingment.
Core Components
We built a core set of components that would be the foundation of the new design system. We then moved on to doing heavy stress testing to ensure the system was robust and get early feedback. This was a critical step in the process that allowed us to identify and fix issues early, and refine our design tokens.
Stress Tests
We then focused on key platforms like UIToolkit for Unity that would allow us to deliver the most value to our internal and external users. We also focused on building a robust and scalable system that would allow us to build to any platform. React and Web Components would be the next in line.
We wanted to make sure our token set could accmodate light and dark modes, but also be themable to allow for third party developers to build on top of our system. This would allow for a more cohesive experience but also allow for a more diverse set of applications.
The Results