Canon is a design system created specifically for Backstage, built with React, TypeScript, and vanilla CSS. This open-source library is hosted in the Backstage monorepo. While it can be used in other projects, Canon is designed to deliver a consistent, accessible, and extensible experience tailored to Backstage users.
Backstage empowers product teams to build software faster and with greater quality. Its extensibility, however, required us to rethink how to deliver a consistent and accessible user experience. Our goal is to enable plugin creators to design plugins that seamlessly integrate with Backstage's look and feel while still allowing customization to match individual brands.
Instead of reinventing the wheel, we chose to focus on layout and styling while leveraging existing headless component libraries for functionality. This approach allows us to dedicate our efforts to creating a cohesive and flexible theming system.
Canon is designed and maintained primarily by Spotify's Backstage team, leveraging Spotify's expertise in crafting high-quality design and technology. Drawing from our experience in building reliable and intuitive user experiences for the music industry, we've created a design system that looks great and works seamlessly.
Canon is an open-source project and we welcome contributions from the community. If you are interested in contributing to Canon, please read our contributing guide and our code of conduct.
Canon is licensed under the Apache 2.0 license. See the LICENSE file for more details.