The goal of this library is to provide a shared vocabulary. A component library is a repository for ideas and solutions to design interaction problems. It is comprised of functioning parts with working code. However, these are not strict rules, but guidelines.
Sometimes it is not possible to make one pattern or component work identically across different parts of a product and in different contexts, so feel free to innovate, but always think about the user first.
The component library provides guidelines different types of users:
- Creators: Provides (developers and designers) with resources (code snippets, style and interaction guidelines) to create a product with consistent quality at a faster pace.
- Developers: Provides guidelines when several people are working on the same codebase. They keep code maintainable, and make it easier for people, often working separately, to collaborate.
- Designers: Provides guidelines when different members of the UX team (or even stakeholders) need to design different parts of a product. Patterns also provide user interaction tips and best practices to ensure UX quality.
- Stakeholders: Provides modular information about how the site is built, letting them focus on the more concrete levels.
In our version of the Atomic Design Model, we treat components as potentially reusable pieces and the library as a living repository that grows organically with our product throughout its lifetime.