in Late 2020
[Friend]: David! random question: we're starting a new internal project and re-evaluating which component library to use. frankly Ant Design seems nice and better MaterialUI which I've mostly used over the years. it's nice to have all the feature support of these mainstream libraries, but i'm curious what you think / if you have recs?
Ant design:
Upsides
- defaults are good and easy to get started, lots of components
- comes with default animations etc that are nice
- some customization is quite easy
- large user base (#2 I believe)
- they have 1+ full time people working on it I believe
Bigger issues
- doesnt really help you layout multiple components in an easy way without thinking too much. This means you end up having to do a bunch of padding, margin or layout components and then getting consistency can be annoying
- low customizability, theres a way to theme but its sometimes an uphill battle. If you want to make a component behave slightly differently you will need to recreate it yourself sometimes and then try to add classnames and styles to make it match ant designs. this isn't easy at all. Instead you can apply your own classnames on top of ant design and then try to override styles but this can get nasty as well. For example the dropdown component must include a menu component only, but that menu component is limited to being a list. You kinda need to fight that if you want to render something else. That causes some stylesheet overrides that get nasty so you can render other items instead that need to provide their own padding rather than using the ant design margins
Small issues
- docs have omissions and often dont give you full types (says Function but doesnt give parameter types for instance). Can go dig in github repos but often comments are in chinese
- not always the best accessibility on components with some of the choices they make
- default component styles are quite small and are very much guided by the chinese companies who fund and use ant design