So I'm investigating Facebook's React.js for work (and that, of course, means find some itch to scratch at home and write an app for it using the library, as all good hackers do). One of my initial frustrations is that react.js is more like X11's Xt than it is like OSF/Motif: that is, it is a library for building components, but not a component library. Coming from my recent work in JQueryMobile (and professionally, in SproutCore), this is just too much of a blank slate for me. It isn't that I can't come up with a minimal library for what I might want to do, it is that I find it very frustrating and time-consuming, wasting much time on tweaking DOM elements and CSS styles that would be better spent actually writing application features.
Some people like that sort of thing. I don't. I also don't necessarily like how, as an industry, so much work is repeated by different teams out there to build components that are 90% the same, simply because one wasn't out there yet. This leads to exactly the problems described by the author who inspired my previous post: libraries get 85% done, but get abandoned before that last 15% is finished because all the attention went to a competing library. Since few of these kinds libraries have the support of the 'big' names in the industry (and even if they did, we already have seen how the big corporations can still abandon stuff as well - Google's been growing in infamy in this regard), this ends up stalling development to a degree as everybody just keeps rebuilding that wheel since they can't trust the other wheel makers out there to keep theirs inflated.
Nevertheless, here's a few React.js component libraries and resources to look at, since at least in the short term they may provide you with what you need for a prototype app.
- reactjsx.com - a searchable list of resources, including some of the ones in this list
- React Components - another searchable list
- Complimentary Tools - Facebook's own index of react-compatible or react-focused 3rd party libraries
- material-ui - An implementation of Google's Material Design using React
- react-bootstrap - An implementation of Bootstrap components using react
- react widgets
- TouchstoneJS - still missing a few key features, but showing promise
Another option is to go with a very generic UI layer that is mostly DOM Structure and CSS and wrap the DOM inside a react component to suit your needs. Semantic UI may be a good choice if you go this route.