Let's say your team is building an application using React (but the same question appears with other library or framework like vuejs, emberjs or angular). You will need classical UI components with classical behavior (breadcrumb, toast, datepicker, and so on…).
What will be your strategy and how do you justify it?
- create a set of components from scratch using your graphic chart?
- use an existing components library (react-toolbox, grommet, rebass, material-ui, …) and overloading the style or behavior for specific application needs?
- use a css library (bootstrap, material.io, …) and build your needed components with this bunch of css and add needed behaviors?
For instance, you need a snackbar, aka toast, aka notification to give feedback to users' actions. Here is a list of existing components, but you have to tweak them to fit the graphic chart of your business application, and even sometimes for specific behavior:
The decision tree is basically: does your company differentiate based on design? If yes, you need to have a greater level of control than off-the-shelf is going to give you. If no, ie. design just needs to be good enough not to get in the way, then you can probably just apply your own colours to something off the shelf.
If building your own, my strategy is what I call "plunder". Take the best bits off the shelf and wrap them up into your own library. Only build the bits you have to build to get the results you need; and don't feel obliged to take the entire mess of any one off-the-shelf option.
I talked about this at Respond 2015 so the slides may help... bit dubious... but anyway: slideshare.net/200ok/ui-libraries-should-ro..