/awesome-react-components

Catalog of React Components & Libraries

Creative Commons Zero v1.0 UniversalCC0-1.0

Absolutely Awesome React Components & Libraries

This is NOT a comprehensive listing of every React component. No, it's a list of AWESOME components. What does "awesome" mean? Well, it means something that solves a real problem in a unique, beautiful, or exceptional way. And it has recent code commits!

Look for a 🚀 for truly exceptional projects.

Contributing

Please review our contributing guidelines.

Table of Contents

UI Components

Table / Data Grid

  • ag-grid - Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components.
  • autoresponsive-react - Auto Responsive Layout Library For React.
  • essential js 2 grid - The fastest and flexible data grid for react.
  • gigatables-react - Sorting, pagination/infinite scroll, global/column search, AJAX CRUD, and more.
  • griddle-react - Simple Grid Component written in React.
  • react-data-components - React components for sorting, filtering and pagination of data.
  • react-data-grid - Excel-like grid.
  • react-pivot - Data-grid component with pivot-table-like for data display, filtering, and exploration.
  • reactable - Fast, flexible, and simple data tables in React.
  • reactabular - Spectacular tables for React.
  • sematable - Client side sorting, pagination, and text filter for redux/react based apps.

Infinite Scroll

  • react-infinite - A browser-ready efficient scrolling container based on UITableView.
  • react-lazyload - Lazyload your Component, Image or anything matters the performance.
  • react-list - A versatile infinite scroll React component.
  • react-virtualized - React components for efficiently rendering large lists and tabular data.

Overlay

Display overlay / modal / alert / dialog / lightbox / popup

  • boron - A collection of dialog animations with React.js.
  • react-aria-modal - A fully accessible and flexible React modal built according WAI-ARIA Authoring Practices.
  • react-dock - Resizable dockable react component.
  • react-modal - Accessible modal dialog component for React.
  • react-skylight - A react component for modals and dialogs.

Notification

Toaster / snackbar — Notify the user with a modeless temporary little popup

Tooltip

Menu

Menus / sidebars

Sticky

Fixed headers / scroll-up headers / sticky elements

Tabs

Loader

Loaders / spinners / progress bars — Let the user know that something is loading

Carousel

Collapse

Chart

Display data in charts / graphs / diagrams

Tree

Display a tree data structure

UI Navigation

Ways to navigate views

Custom Scrollbar

Audio / Video

  • react-dailymotion - Dailymotion player component for React.
  • react-music - Make beats with React.
  • react-player - A react component for playing a variety of URLs, including YouTube.
  • react-soundplayer - Create custom SoundCloud players with React.
  • react-video - React component to load video from Vimeo or Youtube across any device.
  • react-youtube - React.js powered YouTube player component.
  • video-react - A web video player built for the HTML5 world using React library.

Map

Time / Date / Age

Display time / date / age

  • react-time - Component for React to render relative and/or formatted dates into <time> HTML5 element.
  • react-timeago - A simple time-ago component for ReactJs.
  • timeago-react - Format date with *** time ago statement. eg: '3 hours ago'.

Photo / Image

Display images / photos

Icons

Display icons / icon set / emojis

Paginator

Display a control element to paginate

Markdown Viewer

Display parsed markdow source

Miscellaneous

Form Components

Let the user enter data

Date / Time picker

Date picker / time picker / datetime picker / date range picker

Input Types

Masked inputs, specialized inputs; email / telephone number / credit card / etc.

Autocomplete

Autosuggest / autocomplete / typeahead

Select

Color Picker

Toggle

Slider

Radio Button

Type Select

Let the user select something (e.g. a tag) while typing

Autosize Input / Textarea

Star Rating

Drag and Drop

Sortable List

Let the user define an order on a list

  • react-anything-sortable - Sort any children with touch support and IE8 compatibility.
  • react-sortable-hoc - Higher-order components to turn any list into an animated, touch-friendly, sortable list.
  • react-sortable - A sortable list component built with React.
  • sortablejs - A JavaScript library for reorderable drag-and-drop lists.

Rich Text Editor

Markdown Editor

Image Editing

Image manipulation

Form Component Collections

Miscellaneous

UI Layout

Components to layout the app's UI

UI Animation

Animate transitions

Parallax

  • react-atv-img - A port of @drewwilson’s atvImg (Apple TV 3D parallax effect) library in React.
  • react-parallax-component - Easiest way to add scroll parallax effect on the component.

UI Frameworks

Responsive

Set of components + responsive layout system

  • 🚀 ant-design - demo/docs - A UI Design Language.
  • atlaskit - Atlassian's official UI library. (Please... no more Jira though 😉)
  • belle - Configurable React Components with great UX.
  • blueprint - demo - docs - UI toolkit for the web.
  • carbon - demo/docs - A design system built by IBM. (Wait, since when are IBM known for design?? 🎨)
  • elemental - A flexible and beautiful UI framework for React.js.
  • grommet - The most advanced UX framework for enterprise applications.
  • gestalt - demo/docs - A set of components that supports Pinterest’s design language. (Nice... but surprisingly not as well-designed as I would have thought from Pinterest. 😬)
  • pivotal-ui-react - React components based on a custom version of the Bootstrap library.
  • office-ui-fabric-react - React components for building Microsoft web experiences. (🤔 But I'm not sure I want a "MSFT experience?")
  • rctui - A collection of components for React.
  • react-foundation-apps - Foundation Apps components built with React.
  • react-foundation - Foundation as React components.
  • react-uikit-components - React UIkit Components for the UIKit CSS framework.
  • rebass - Configurable React Stateless Functional UI Components.
  • searchkit - React UI components / widgets. The easiest way to build a great search experience with Elasticsearch.
  • semantic-ui-react - The official Semantic-UI-React integration.

Material Design

  • 🚀 material-ui - React Components that Implement Google's Material Design.
  • OnsenUI - demo/docs - Mobile app development framework.
  • react-essence - Essence - The Essential Material Design Framework.
  • react-materialize - Material design for react, powered by materializecss.
  • react-toolbox - A set of React components implementing Google's Material Design.

Mobile

Component Collections

UI Utilities

Reporter

Report computed styles

Visibility Reporter

Report when a component becomes visible/hidden

Measurement Reporter

Determine and report measurements of an element

Device Input

Turn user input into actions

Keyboard Events

Scroll Events

Touch Swipe

Mouse Events

  • react-aim - Determine the cursor aim for triggering mouse events.

Meta Tags

Set meta tags, <title>, children of

Portal

Render an element at an arbitrary DOM node

  • react-gateway - Render React DOM into a new context (aka "Portal").
  • react-layer-stack - Simple but ubiquitously powerful and agnostic layering system for React.
  • react-portal - React component for transportation of modals, lightboxes, loading bars... to document.body.

Test User Behavior

A/B tests, experiments, ...

  • react-ab - Simple declarative and universal A/B testing component for React.
  • react-experiments - React components for implementing UI experiments.

Code Design

Libraries that help with code design

Data Store

Data flow / data management / data stores / components state / data flow

  • alt - Isomorphic flux implementation.
  • baobab-react - React integration for Baobab.
  • cerebral - A state controller with its own debugger.
  • fluorine-lib - Reactive state and side effect management for React using a single stream of actions.
  • fluxible - A pluggable container for universal flux applications.
  • fluxxor - Flux architecture tools for React.
  • kea - High level architecture for React apps.
  • mobx-react - React bindings for MobX. Create fully reactive components.
  • react-controllables - Easily create controllable components.
  • react-i13n - A performant, scalable and pluggable approach to instrumenting your React application.
  • react-redux-provide - Bridges the gap between Redux and the declarative nature of GraphQL/Relay.
  • react-redux - Official React bindings for Redux.
  • recompose - A React utility belt for function components and higher-order components.
  • redux-batched-actions - Reducer + action to reduce actions under a single subscriber notification.
  • redux-batched-subscribe - Store enhancer for which allows batching subscribe notifications.
  • redux-ui - Easy UI state management for react redux.
  • redux - Predictable state container for JavaScript apps.
  • reflux - A simple library for uni-directional dataflow application architecture with React extensions inspired by Flux.
  • reselect - Selector library for Redux.
  • shasta - Dead simple + opinionated toolkit for building redux/react applications.

Form Logic

  • cerebral-module-forms - A forms handler for Cerebral.
  • formcat - A simple and easy way to control forms in React using the React Context API
  • formsy-react - A form input builder and validator for React JS.
  • newforms - INACTIVE] Isomorphic form-handling for React.
  • plexus-form - A dynamic form component for react using JSON-Schema.
  • react-jsonschema-form - A React component for building Web forms from JSONSchema.
  • react-redux-form - Create forms easily in React with Redux.
  • react-validation-mixin - Simple validation mixin (HoC) for React.
  • redux-form - A Higher Order Component using react-redux to keep form state in a Redux store.
  • tcomb-form - Forms library for react.
  • winterfell - Generate complex, validated and extendable JSON-based forms in React.

Router

Props from server

Component properties asynchronously fetched over the network

  • react-async - Asynchronously fetch data for React components.
  • react-refetch - A simple, declarative, and composable way to fetch data for React components.
  • react-resolver - Async rendering & data-fetching for universal React applications.
  • react-router-relay - Relay integration for React Router.
  • redial - Universal data fetching and route lifecycle management for React etc.
  • redux-async-connect - Request async data, store in redux state, and connect to your component.
  • redux-connect - Provides decorator for resolving async props in react-router.

Communication with server

CSS / Style

HTML Template

Isomorphic Apps

Boilerplate

Scaffold / starter kit / Yeoman generator / stack ensemble / seed

Miscellaneous

Utilities

i18n

Internationalization / L10n / localization / translation

  • react-globalize - Bringing the i18n functionality of Globalize, backed by CLDR, to React.
  • react-i18next - Internationalization for react done right. Using the i18next i18n ecosystem.
  • react-intl - Internationalize React apps.
  • react-translate-maker - Universal internationalization (i18n) open source library for React.

Framework bindings / integrations

Integrations with Third Party Services

Performance

UI

Inspect

Lazy Load

  • react-infinite-grid - A React component which renders a grid of elements.
  • react-infinite - A browser-ready efficient scrolling container based on UITableView.
  • react-lazy-load - React component that renders children elements when they enter the viewport.
  • react-lazyload - Lazyload your Component, Image or anything matters the performance.
  • react-virtualized - React components for efficiently rendering large lists and tabular data.

App Size

Dev Tools

Test

  • carte-blanche - An isolated development space with integrated fuzz testing for your components.
  • chai-enzyme - Chai.js assertions and convenience functions for testing React Components with enzyme.
  • enzyme - JavaScript Testing utilities for React.
  • jest-cli - Painless JavaScript Testing.
  • legit-tests - Chainable, easy to read, React testing library.
  • react-unit - Lightweight unit test library for ReactJS.
  • redux-ava - Write AVA tests for redux pretty quickly.
  • redux-test-recorder - A redux middleware to automatically generate tests for reducers through ui interaction.
  • ui-harness - Create, isolate and test modular UI components in React.
  • unexpected-react - Plugin for unexpected to enable testing the full React virtual DOM, and also the shallow renderer.

Redux

Inspect

  • fluxguard - PROD change monitoring that highlights all DOM + design changes.
  • react-inspector - Power of Browser DevTools inspectors right inside your React app.
  • react-json-inspector - React JSON inspector component.
  • reactotron - A CLI and OS X app for inspecting your React JS and React Native apps.

Miscellaneous

Miscellaneous

  • html-to-react-components - Extract annotated portions of HTML into React components as separate modules.
  • htmltojsx - Automatically AJAXify plain HTML with the power of React. It's magic!.
  • jsonx - React JSON Syntax.
  • mozaik - Mozaïk is a tool based on nodejs / react / d3 / stylus to easily craft beautiful dashboards.
  • react-blessed - A react renderer for blessed.

Static Website Generator

  • gatsby - Transform plain text into dynamic blogs and websites using React.js.
  • phenomic - Modern static* website generator based on the React and Webpack ecosystem.