5 React Component Toolkits


July 14, 2017
Update 2017-7-21: Added 4 more toolkits. Thanks to everyone who commented with additions!

Have you ever built a Dropdown, Table or other component in React and feel like you are reinventing the wheel?

It turns out, you are! These common components have been built over and over again.

There are tons of one-off React components out there, but right now I’m focused on toolkits. These are large libraries of React components.

Toolkits are particularly great for prototyping because they help you put together an app quickly.

Caveat: These toolkits might not be the best thing if you have a designer handing you a design that you need match exactly. Many of them support theming, but often it is difficult to do a complete redesign.

Styling

Before I get to the list, let’s talk about how you actually use these toolkits.

All these toolkits can be installed with npm install and then used with import or require(). Usually you can import just the components you need.

Here’s the catch: to get at the styles / CSS you sometimes have to do more work. Each of these toolkits provides the styles in one or more of the following ways:

  • Static File: The CSS is provided as a file that you can include on your HTML page with a <link> tag. Alternatively many Webpack configurations will allow you to 'import' the CSS so that it becomes part of your bundle.
  • CSS Modules: The CSS gets automatically imported with each component, but you may have to modify your Webpack config (and you have to be using Webpack or something similar in the first place).
  • Inline: The styles are inlined on the component elements, so you don’t have to do any extra work. This is easy for you, but there are performance drawbacks.

Now, on to the list!

The List

1. Material-UI

This is a super popular project with 27,000+ stars. It is one of the projects that implements Google’s material design recommendations.

I would go with this one if you like Google’s material design.

2. React-Bootstrap

If you like bootstrap, you’ll love React-Bootstrap. This is a very faithful port of bootstrap to React. So much so, that they are relying on the original bootstrap CSS files - only the JS has changed. These are Bootstrap 3 components. For Bootstrap 4, see Reactstrap, below.

3. React Toolbox

This is another Google Material design project. It appears to be of high quality, but I would have trouble picking this project over our #1 pick Material-UI, which has more components and more traction.

4. Blueprint

This is a huge component library that to my eyes looks a bit similar to Bootstrap. I plan on browsing the components in this library for inspiration even if I don’t use the library itself.

I believe that instead of a static file the styles can be imported as SCSS but the documentation didn’t seem to clear on this point.

5. React Native Web

This one is unique. It allows you to render react native components on the web. This is super useful if you are building a cross-platform app.

This one has my favorite demo because it uses storybook. Storybook is not only great for viewing components as you can see here but also great for developing and testing components. More on that in a future post.

4 More Bonus Toolkits

Thanks to the comments I found out about 4 more toolkits. Here they are in no particular order:

6. Ant Design

This is a little bit more than a set of components - it is a framework. All I mean by that is they provide you with some commands to set up a project that follows their conventions and uses some packages/plugins that are specific to ant design.

If you don't set up a project in the way that they recommend, using these components is a bit tricky. You'll need a babel plugin created by the ant design people: babel-plugin-import. This makes them an outlier when it comes to how they set up their styles.

This is a nice big set of components, but I was a bit thrown off by the grammar in the documentation. It was translated from Chinese and could use a few edits.

7. Semantic UI React

Another nice big set of polished components. This is a set of React components built on top of a pre-existing CSS framework: Semantic UI.

8. Reactstrap

Similar to Semantic UI React and React-Bootstrap, this is a set of React components built to work with an existing CSS framework. In this case the framework is Bootstrap 4.

Compare this library to React-Bootstrap, above, which is built to work with Bootstrap 3.

9. Bloomer (Bulma)

Not a lot of stars on this project, but it is a React implementation of the very popular Bulma CSS framework.

Conclusion

Even if you don't want components that look exactly like those provided in the above toolkits, I strongly suggest that you take a look at at least one toolkit.

You might find something you need, and if not, reading the implementations can be enlightening. These are components that have had a ton of developer eyes 👀 looking at them and testing them.

And don't forget to subscribe! I'll keep bringing useful tools and libraries to your attention.

ABOUT THE AUTHOR

Andrew H Farmer
Hey, I'm Andrew. Welcome to my blog on Modern JavaScript with React. I'm constantly searching the web to stay up-to-date on the latest frontend web tools so you don't have to. Got a question? Tweet me @ahfarmer!