Compare React UI Frameworks

Intro

Got to pick a UI framework for work. The hopeful gain are unified beautiful design and quicker development. The possible loss could be performance, bugs, learning the framework, risk of unsupported in future, etc.

Where I found the candidates:

I will only look at the frameworks having GitHub stars > 100.

Quick conclusion: There is no super solid framework there, but Material UI and React toolbox are probably more ready.

Selection criteria

  • Basics:
    • [ ] dropdownlist / select
    • [ ] date picker
    • [ ] time picker
    • [ ] tab
    • [ ] slide in menu
    • [ ] dialog / modal / pop up window
    • [ ] dropdown menu
    • [ ] table
    • [ ] responsive
  • Extra:
    • [ ] loading indicator
    • [ ] dropdownlist / select with search/filter function (autocomplete)
    • [ ] multi-select
    • [ ] chart
    • [ ] table with sorting, filtering
    • [ ] gridster layout
    • [ ] theme
  • [ ] tested working for new browsers (Chrome, IE11, IOS)
  • [ ] use ES6 and class syntax
  • [ ] compatible with React 0.14 (ref)
  • [ ] actively updated and supported
  • [ ] should not have bug that broke the whole software reported in GitHub issues
  • [ ] open source

Candidates

NOTE: The GitHub data is collected on Nov 11, 2015.

Not tested:

  • TouchstoneJS, GitHub, 2626 stars, 10 contributors. The demo and doc is under development.
  • REACT UI, GitHub, 294 stars, 1 contributor. Only 1 contributor, a bit worried.
  • Reapp, GitHub, 2970 stars, 14 contributors. It’s intended for hybrid apps, no desktop demo, lacks components.

Here are some Chinese frameworks:

Go through

Material UI

  • material-ui
  • GitHub
  • 11715 stars, 222 contributors

  • Basics:

    • [X] dropdownlist / select
    • [X] date picker
    • [X] time picker
    • [X] tab
    • [X] slide in menu
    • [X] dialog / modal / popup window
    • [X] dropdown menu
    • [X] table
    • [X] responsive
  • Extra:
    • [X] loading indicator
    • [ ] dropdownlist / select with search/filter function (autocomplete)
    • [ ] multi-select
    • [ ] chart
    • [ ] table with sorting, filtering
    • [ ] gridster layout
    • [X] theme (partly support)
  • [X] tested working for new browsers (Chrome, IE11, IOS) (ripple effect appear twice in iPhone, ripple effect not working in IE 11)
  • [ ] use ES6 and class syntax
  • [X] compatible with React 0.14
  • [X] actively updated and supported
  • [X] should not have major bug reported in GitHub issues ()
  • [X] open source

This is almost the most popular one, and it looks really beautiful with material design.

React toolbox

  • React toolbox
  • GitHub
  • 1981 stars, 7 contributors

  • Basics:

    • [X] dropdownlist / select
    • [X] date picker
    • [X] time picker
    • [X] tab
    • [X] slide in menu
    • [X] dialog / modal / popup window
    • [X] dropdown menu
    • [X] table
    • [X] responsive (not sure)
  • Extra:
    • [ ] loading indicator
    • [X] dropdownlist / select with search/filter function (autocomplete)
    • [X] multi-select
    • [ ] chart
    • [ ] table with sorting, filtering
    • [ ] gridster layout
    • [X] theme (partly supported)
  • [ ] tested working for new browsers (Chrome, IE11, IOS) (“Autocomplete” page’s playground will get ‘TypeError’ using IE 11)
  • [X] use ES6 and class syntax
  • [ ] compatible with React 0.14 (not sure)
  • [X] actively updated and supported
  • [X] should not have major bug reported in GitHub issues
  • [X] open source

Material Design, CSS Modules, ES6 syntax, seems promising.

React Bootstrap

  • React Bootstrap
  • GitHub
  • 3869 stars, 127 contributors

  • Basics:

    • [ ] dropdownlist / select
    • [ ] date picker
    • [ ] time picker
    • [X] tab
    • [ ] slide in menu
    • [X] dialog / modal / popup window
    • [ ] dropdown menu
    • [ ] table
    • [ ] responsive (not sure)
  • Extra:
    • [ ] loading indicator
    • [ ] dropdownlist / select with search/filter function (autocomplete)
    • [ ] multi-select
    • [ ] chart
    • [ ] table with sorting, filtering
    • [ ] gridster layout
    • [ ] theme
      (the following is not tested due to too few components)
  • [ ] tested working for new browsers (Chrome, IE11, IOS) (“Autocomplete” page’s playground will get ‘TypeError’ using IE 11)
  • [ ] use ES6 and class syntax
  • [ ] compatible with React 0.14 (seems so)
  • [ ] actively updated and supported
  • [ ] should not have major bug reported in GitHub issues
  • [ ] open source

Grommet

  • Grommet
  • GitHub
  • 188 stars, 24 contributors

  • Basics:

    • [X] dropdownlist / select
    • [X] date picker
    • [ ] time picker
    • [X] tab
    • [X] slide in menu
    • [X] dialog / modal / popup window
    • [X] dropdown menu
    • [X] table
    • [X] responsive
  • Extra:
    • [X] loading indicator
    • [ ] dropdownlist / select with search/filter function (autocomplete)
    • [ ] multi-select
    • [X] chart
    • [ ] table with sorting, filtering
    • [ ] gridster layout
    • [ ] theme
  • [ ] tested working for new browsers (Chrome, IE11, IOS) (“tab” is not working in Chrome)
  • [ ] use ES6 and class syntax
  • [X] compatible with React 0.14
  • [ ] actively updated and supported (lots of issues with no response)
  • [ ] should not have major bug reported in GitHub issues ()
  • [X] open source

Not recommend, although it is actively updated, it seems that it lacks support and has bugs.

Elemental UI

  • Elemental UI
  • GitHub
  • 1755 stars, 16 contributors

  • Basics:

    • [X] dropdownlist / select
    • [ ] date picker
    • [ ] time picker
    • [ ] tab
    • [ ] slide in menu
    • [X] dialog / modal / popup window
    • [ ] dropdown menu
    • [X] table
    • [X] responsive
  • Extra:
    • [X] loading indicator
    • [ ] dropdownlist / select with search/filter function (autocomplete)
    • [ ] multi-select
    • [ ] chart
    • [ ] table with sorting, filtering
    • [ ] gridster layout
    • [ ] theme
      (the following is not tested due to too few components)
  • [ ] tested working for new browsers (Chrome, IE11, IOS)
  • [ ] use ES6 and class syntax
  • [ ] compatible with React 0.14
  • [ ] actively updated and supported (Latest commit 27 days ago)
  • [ ] should not have major bug reported in GitHub issues ()
  • [ ] open source

This framework has a bootstrap-like look, but it contains too few components.

Belle

  • Belle
  • GitHub
  • 1060 stars, 12 contributors

  • Basics:

    • [X] dropdownlist / select
    • [X] date picker
    • [ ] time picker
    • [ ] tab
    • [ ] slide in menu
    • [ ] dialog / modal / popup window
    • [ ] dropdown menu
    • [ ] table
    • [ ] responsive (not sure)
  • Extra:
    • [ ] loading indicator
    • [X] dropdownlist / select with search/filter function (autocomplete)
    • [ ] multi-select
    • [ ] chart
    • [ ] table with sorting, filtering
    • [ ] gridster layout
    • [X] theme
      (the following is not tested due to too few components)
  • [ ] tested working for new browsers (Chrome, IE11, IOS)
  • [ ] use ES6 and class syntax
  • [ ] compatible with React 0.14
  • [ ] actively updated and supported
  • [ ] should not have major bug reported in GitHub issues ()
  • [ ] open source

This framework has a nice flat material-like look, but it contains too few components.

React Components by Khan Academy

  • React Components by Khan Academy
  • GitHub
  • 574 stars, 17 contributors

  • Basics:

    • [X] dropdownlist / select
    • [ ] date picker
    • [ ] time picker
    • [ ] tab
    • [ ] slide in menu
    • [X] dialog / modal / popup window
    • [ ] dropdown menu
    • [ ] table
    • [ ] responsive (not sure)
  • Extra:
    • [ ] loading indicator
    • [ ] dropdownlist / select with search/filter function (autocomplete)
    • [ ] multi-select
    • [ ] chart
    • [ ] table with sorting, filtering
    • [ ] gridster layout
    • [ ] theme
      (the following is not tested due to too few components)
  • [ ] tested working for new browsers (Chrome, IE11, IOS)
  • [ ] use ES6 and class syntax
  • [ ] compatible with React 0.14
  • [ ] actively updated and supported
  • [ ] should not have major bug reported in GitHub issues ()
  • [ ] open source

The development seems very organized and professional. But it contains too few components. Some of them are mixins.

NOTE: It contains:

  • drag and drop
  • Sortable

Conclusion

There are many more frameworks like Semantic UI which are more focused on CSS, but they needs wrapping is the component needs JS. It turns out clearly after the compare: Material UI and React toolbox are the ones that are ahead.

Ant Design by Ant Financial (Alibaba), GitHub, 1549 stars, 36 contributors
This framework gets lots of attention in China because of the team’s technical background.