At my work we're currently starting to create a company-internal component library.
It will be a bit of work, but significantly improve our UI development.
The most obvious benefits are:
- Reduced code duplication
- Increased speed
- Improved UI consistency
One benefits that is less obvious, but underpins all those is reduced decision making effort. For designers, developers and the interaction of those groups.
In my opinion a component library is there to limit the possible designs, not just to have some base components.
And with limited possibilities, the thinking process will be faster. Instead of literally endless options, designers only have a few. The same thing goes for developers. They see the design and know which components to use. Overriding styles is not an option, only if it is explicitly mentioned and approved by all stakeholders.
If you're not thinking about component libraries as a way to limit design possibilities, you're only getting half the benefit.
The logic will be abstracted, yes, but the styling will still often be overwritten, which might even need custom logic at some point.
This is how I currently believe we can get the most of our component library.
What is your opinion? Do you think it makes sense? Maybe it would be too limiting for a designer? That it'd hamper their creativity? Or even facilitate it?
Do you know of any other benefits component libraries have?