avatarAmy J. Andrews

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

9949

Abstract

span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">ViewDetailButton</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Button</span>></span>View Detail<span class="hljs-tag"></<span class="hljs-name">Button</span>></span></span> ); };</pre></div><h1 id="6907">8. Blueprint</h1><p id="6e0b">In <a href="https://blueprintjs.com">Blueprint</a>, components are made of TypeScript and styled with Sass to accelerate the development. This library focuses on data presentation on desktop applications running on modern browsers.</p><p id="b1ee">Install:</p><div id="c9fa"><pre>yarn <span class="hljs-keyword">add</span><span class="language-bash"> @blueprintjs/core react react-dom</span></pre></div><p id="d88a">Usage example:</p><div id="b46f"><pre><span class="hljs-keyword">import</span> { Button } <span class="hljs-keyword">from</span> “@blueprintjs/core”;</pre></div><div id="a5ca"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">PlaceOrderButton</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Button</span> <span class="hljs-attr">text</span>=<span class="hljs-string">’Order’</span> <span class="hljs-attr">onclick</span>=<span class="hljs-string">{order}</span> /></span></span> ); };</pre></div><h1 id="3e02">9. Reactstrap</h1><p id="4cb3">Put simply, <a href="https://reactstrap.github.io">Reactstrap</a> is React Components for Bootstrap 4. If you’re familiar with bootstrap, there’s no need for any further explanation.</p><p id="0ef9">Install:</p><div id="91c6"><pre><span class="hljs-built_in">npm</span> i reactstrap react react-dom</pre></div><p id="d99d">Usage example:</p><div id="a90c"><pre><span class="hljs-keyword">import</span> { Button } <span class="hljs-keyword">from</span> ‘reactstrap’;</pre></div><div id="b23f"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">RegisterButton</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Button</span>></span>Register<span class="hljs-tag"></<span class="hljs-name">Button</span>></span></span> ); };</pre></div><h1 id="f6a3">10. React Toolbox</h1><p id="5a50"><a href="http://react-toolbox.io/#/">React Toolbox</a>’s components follow Google Material Design. This library is built on top of some of the trendiest proposals like CSS Modules, ES6, and Webpack.</p><p id="ee96">Install:</p><div id="fbfd"><pre><span class="hljs-built_in">npm</span> i react-toolbox</pre></div><p id="47f9">Usage example:</p><div id="4e4a"><pre><span class="hljs-keyword">import</span> Dialog <span class="hljs-keyword">from</span> ‘react-toolbox<span class="hljs-regexp">/lib/</span>dialog’;</pre></div><div id="8457"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">CustomDialog</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Dialog</span> <span class="hljs-attr">title</span>=<span class="hljs-string">’Custom</span> <span class="hljs-attr">Dialog</span>’></span>Content<span class="hljs-tag"></<span class="hljs-name">Dialog</span>></span></span> ); };</pre></div><h1 id="f11d">11. Belle</h1><p id="824d"><a href="http://nikgraf.github.io/belle/#/?_k=vs3lom">Belle</a> provides a wide range of components, which are optimized to work well on both desktop and mobile devices. You can customize these components at the base level once for all components or each component individually.</p><p id="4d68">Install:</p><div id="796a"><pre><span class="hljs-built_in">npm</span> i belle</pre></div><p id="e460">Usage example:</p><div id="ccac"><pre><span class="hljs-keyword">import</span> { Button } <span class="hljs-keyword">from</span> ‘belle’;</pre></div><div id="402e"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">CloseButton</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Button</span>></span>Close<span class="hljs-tag"></<span class="hljs-name">Button</span>></span></span> ); };</pre></div><h1 id="7c06">12. React Desktop</h1><p id="3697"><a href="http://reactdesktop.js.org">React Desktop</a> leverages the UI of macOS and Windows to bring the native desktop application to the web.</p><p id="8a25">Install:</p><div id="8ca7"><pre><span class="hljs-built_in">npm</span> i react-desktop</pre></div><p id="3635">Usage example:</p><div id="695b"><pre><span class="hljs-keyword">import</span> { <span class="hljs-type">Text</span> } <span class="hljs-keyword">from</span> ‘react-desktop/macOs’;</pre></div><div id="501f"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">CustomText</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Text</span> <span class="hljs-attr">size</span>=<span class="hljs-string">’18’</span>></span>content<span class="hljs-tag"></<span class="hljs-name">Text</span>></span></span> ); };</pre></div><h1 id="eb0a">13. Grommet</h1><p id="317f"><a href="https://v2.grommet.io">Grommet</a> is the React-based framework. It focuses mainly on accessibility, responsiveness, and theming.</p><p id="4d35">Install:</p><div id="ba52"><pre><span class="hljs-built_in">npm</span> i grommet</pre></div><p id="935a">Usage example:</p><div id="8530"><pre><span class="hljs-keyword">import</span> { Grommet, Heading } <span class="hljs-keyword">from</span> “grommet”</pre></div><div id="bd75"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">CustomHeading</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Grommet</span> <span class="hljs-attr">theme</span>=<span class="hljs-string">{theme}</span>></span> <span class="hljs-tag"><<span class="hljs-name">Heading</span> <span class="hljs-attr">level</span>=<span class="hljs-string">’3’</span>></span>Custom Heading<span class="hljs-tag"></<span class="hljs-name">Heading</span>></span> <span class="hljs-tag"></<span class="hljs-name">Grommet</span>></span></span> ); };</pre></div><h1 id="467e">14. Rebass</h1><p id="c87f"><a href="https://rebassjs.org">Rebass</a> comes with a handful of foundational components. These components are extensible, which gives you the ability to create a great set of UI elements.</p><p id="c451">Install:</p><div id="6e22"><pre><span class="hljs-built_in">npm</span> i rebass</pre></div><p id="67c6">Usage example:</p><div id="6bca"><pre><span class="hljs-keyword">import</span> { Label } <span class="hljs-keyword">from</span> ‘@rebass/forms’;</pre></div><div id="bfab"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">CustomLabel</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Label</span>></span>Username:<span class="hljs-tag"></<span class="hljs-name">Label</span>></span></span> ); };</pre></div><h1 id="48fe">15. Elemental UI</h1><p id="6acc"><a href="http://elemental-ui.com">Elemental UI</a> includes basic components, yet you still can create a wonderful UI using a single component alone or mixing some of them.</p><p id="4631">Install:</p><div id="b587"><pre><span class="hljs-built_in">npm</span> i elemental</pre></div><p id="17e4">Usage example:</p><div id="6964"><pre><span class="hljs-keyword">import</span> { Button } <span class="hljs-keyword">from</span> ‘elemental’;</pre></div><div id="73e7"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">LogoutButton</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Button</span> <span class="hljs-attr">size</span>=<span class="hljs-string">’sm’</span> <span class="hljs-attr">type</span>=<span class="hljs-string">’primary’</span>></span>Logout<span class="hljs-tag"></<span class="hljs-name">Button</span>></span></span> ); };</pre></div><h1 id="d18a">16. React Bootstrap</h1><p id="2787"><a href="https://react-bootstrap.github.io">React Bootstrap</a> is a way to use bootstrap not in the original bootstrap way but the react one.</p><p id="7b0b">Install:</p><div id="676c"><pre><span class="hljs-built_in">npm</span> i react-bootstrap</pre></div><p id="8ce5">Usage example:</p><div id="dd24"><pre>import <span class="hljs-selector-tag">Button</span> <span class="hljs-selector-tag">from</span> “react-bootstrap/<span class

Options

="hljs-selector-tag">Button</span>”;</pre></div><div id="67be"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">CustomButton</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Button</span>></span>Custom Button<span class="hljs-tag"></<span class="hljs-name">Button</span>></span></span> ); };</pre></div><h1 id="04ff">17. KendoReact</h1><p id="b0f5">So far we walked through free libraries, now it’s time for the premium one, <a href="https://www.telerik.com/kendo-react-ui/">KendoReact</a>. When it comes to data visualization, you should check out this guy. The price starts at $899 and it’s worth it. In fact, some large companies are using it such as Microsoft, IBM, NASA, SONY, etc.</p><p id="812d">Install:</p><div id="b549"><pre>npm i — save <span class="hljs-meta">@progress</span>/kendo-react-grid <span class="hljs-meta">@progress</span>/kendo-<span class="hljs-keyword">data</span>-query <span class="hljs-meta">@progress</span>/kendo-react-inputs <span class="hljs-meta">@progress</span>/kendo-react-intl <span class="hljs-meta">@progress</span>/kendo-react-dropdowns <span class="hljs-meta">@progress</span>/kendo-react-dateinputs <span class="hljs-meta">@progress</span>/kendo-drawing <span class="hljs-meta">@progress</span>/kendo-react-<span class="hljs-keyword">data</span>-tools</pre></div><p id="d15b">Usage example:</p><div id="a57e"><pre><span class="hljs-keyword">import</span> ‘@progress/kendo-theme-<span class="hljs-keyword">default</span>/dist/all.css’; <span class="hljs-keyword">import</span> { Grid, GridColumn } <span class="hljs-keyword">from</span> ‘@progress/kendo-react-grid’;</pre></div><div id="a125"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">CustomGrid</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Grid</span> <span class="hljs-attr">data</span>=<span class="hljs-string">{products}</span>></span> <span class="hljs-tag"><<span class="hljs-name">GridColumn</span> <span class="hljs-attr">field</span>=<span class="hljs-string">’ProductName’</span> /></span> <span class="hljs-tag"><<span class="hljs-name">GridColumn</span> <span class="hljs-attr">field</span>=<span class="hljs-string">’ProductPrice’</span> /></span> <span class="hljs-tag"><<span class="hljs-name">GridColumn</span> <span class="hljs-attr">field</span>=<span class="hljs-string">’ProductDiscount’</span> /></span> <span class="hljs-tag"></<span class="hljs-name">Grid</span>></span></span> ); };</pre></div><h1 id="28ba">18. Gestalt</h1><p id="cd99">Pinterest developed <a href="https://github.com/pinterest/gestalt">Gestalt</a> following their internal design guideline for developers and designers to talk the same language. Now, you can take it to have a chat with your designer friends.</p><p id="86a3">Install:</p><div id="4dd2"><pre><span class="hljs-comment"># npm</span> <span class="hljs-built_in">npm</span> i gestalt</pre></div><div id="a497"><pre><span class="hljs-comment"># yarn</span> yarn <span class="hljs-built_in">add</span> gestalt</pre></div><p id="9b2d">Usage example:</p><div id="72d0"><pre><span class="hljs-keyword">import</span> { Avatar } <span class="hljs-keyword">from</span> ‘gestalt’; <span class="hljs-keyword">import</span> ‘gestalt<span class="hljs-regexp">/dist/g</span>estalt.css’;</pre></div><div id="00b5"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">CustomAvatar</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Avatar</span> <span class="hljs-attr">size</span>=<span class="hljs-string">’sm’</span> <span class="hljs-attr">src</span>=<span class="hljs-string">’image</span> <span class="hljs-attr">source</span><span class="hljs-attr">name</span>=<span class="hljs-string">’Amy’</span> /></span></span> ); };</pre></div><h1 id="6844">19. React Virtualized</h1><p id="a5c6"><a href="https://github.com/bvaughn/react-virtualized">React Virtualized</a> focuses on presenting large data sets. It’s the perfect library for rendering huge tables, lists, and grids.</p><p id="0b99">Install:</p><div id="b538"><pre><span class="hljs-built_in">npm</span> i react-virtualized</pre></div><p id="2d19">Usage example:</p><div id="6866"><pre><span class="hljs-keyword">import</span> ‘react-virtualized/styles.css’; <span class="hljs-keyword">import</span> {Collection} <span class="hljs-keyword">from</span> ‘react-virtualized’;</pre></div><div id="1292"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">UsersList</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">function</span> <span class="hljs-title function_">cellRenderer</span>(<span class="hljs-params">{index, key, style}</span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">div</span> <span class="hljs-attr">key</span>=<span class="hljs-string">{key}</span> <span class="hljs-attr">style</span>=<span class="hljs-string">{style}</span>></span> {list[index].name} <span class="hljs-tag"></<span class="hljs-name">div</span>></span></span> ); }</pre></div><div id="c385"><pre> <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Collection</span> <span class="hljs-attr">cellCount</span>=<span class="hljs-string">{100}</span> <span class="hljs-attr">cellRender</span>=<span class="hljs-string">{cellRenderer}</span> <span class="hljs-attr">width</span>=<span class="hljs-string">{256}</span> <span class="hljs-attr">height</span>=<span class="hljs-string">{256}</span> /></span></span> ); }.</pre></div><h1 id="c2ae">20. Evergreen</h1><p id="e482"><a href="https://evergreen.segment.com">Evergreen</a> contains a lot of flexible and composable components. It includes almost everything you need to start building UI for a website.</p><p id="0449">Install:</p><div id="ba4f"><pre><span class="hljs-comment">#npm</span> <span class="hljs-built_in">npm</span> i evergreen-ui</pre></div><div id="b391"><pre><span class="hljs-comment">#yarn</span> yarn <span class="hljs-built_in">add</span> evergreen-ui</pre></div><p id="38e1">Usage example:</p><div id="6bb3"><pre><span class="hljs-keyword">import</span> { Button } <span class="hljs-keyword">from</span> ‘evergreen-ui’;</pre></div><div id="a8de"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">CancelButton</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Button</span>></span>Cancel<span class="hljs-tag"></<span class="hljs-name">Button</span>></span></span> ); };</pre></div><h1 id="0c1e">21. FluentUI</h1><p id="30ff">This <a href="https://github.com/microsoft/fluentui">FluentUI</a> comes from a big guy, Microsoft. You know Office, right? If you want to create Office-like UI, go for FluentUI.</p><p id="35a1">Install:</p><div id="5361"><pre><span class="hljs-comment"># npm</span> <span class="hljs-built_in">npm</span> i @fluentui/react</pre></div><div id="5c20"><pre><span class="hljs-comment"># yarn</span> yarn <span class="hljs-keyword">add</span><span class="language-bash"> @fluentui/react</span></pre></div><p id="08e4">Usage example:</p><div id="21c5"><pre><span class="hljs-keyword">import</span> { Button } <span class="hljs-keyword">from</span> ‘@fluentui/react/lib/Button’;</pre></div><div id="c00b"><pre><span class="hljs-keyword">export</span> <span class="hljs-keyword">default</span> <span class="hljs-keyword">function</span> <span class="hljs-title function_">DeleteButton</span>(<span class="hljs-params"></span>) { <span class="hljs-keyword">return</span> ( <span class="language-xml"><span class="hljs-tag"><<span class="hljs-name">Button</span>></span>Delete<span class="hljs-tag"></<span class="hljs-name">Button</span>></span></span> ); };</pre></div><p id="b6f2">Well, I guess that’s it. The 21 React UI libraries above are in your hands now. You should test them one by one and pick the guy that you find the most useful for your next projects.</p><p id="db6b">If you already had some experiences with them, please let me know which ones are your favorite and why?</p><p id="b0d8">Further reading:</p><div id="251f" class="link-block"> <a href="https://readmedium.com/7-simple-ways-to-conditionally-render-components-in-react-a3170d0cd9e0"> <div> <div> <h2>7 Simple Ways to Conditionally Render Components in React</h2> <div><h3>Showing a red username for user type A, a blue one for user type B, or showing dashboard for only logged-in user…</h3></div> <div><p>medium.com</p></div> </div> <div> <div style="background-image: url(https://miro.readmedium.com/v2/resize:fit:320/0*8jXa6j1G5LOOeJjU)"></div> </div> </div> </a> </div></article></body>

21 React UI Component Libraries You Should Start Using from Today

Do not waste your time to create everything on your own

Photo by Pankaj Patel on Unsplash

UI is the hard part. To some extends, it’s harder than the logic in the backend. In fact, users don’t care about what is in the backend because all they see is the frontend part. So, it’s important to captivate users at their first sight.

If you have time, you can code the UI from scratch to have fun. But if time is a luxury, you should go for the ready-to-use UI components from 21 libraries below:

1. React Suite

React Suite contains a lot of components such as tooltips, loaders, icons, buttons, etc. It provides a friendly UI which is well designed for enterprise system products.

Install:

# npm
npm i rsuite
# yarn
yarn add rsuite

Usage example:

import { Button } from ‘rsuite’;
import ‘rsuite/lib/styles/index.less’; // or ‘rsuite/dist/styles/rsuite-default.css’
export default function SignInButton() {
  return (
    <Button>Sign In</Button>
  );
}

2. Shards React

Shards React makes your UI as high quality as possible and will save you a lot of time by providing a massive list of components. You can build almost every kind of UI with this library.

Install:

# npm
npm i shards-react
# yarn
yarn add shards-react

Usage example:

import { Badge } from “shards-react”;
export default function VipBadge() {
  return (
    <Badge theme=’info’>VIP</Badge>
  );
};

3. PrimeReact

PrimeReact gives you a variety of components with unique themes to choose from. You can also customize those themes and components to use for your own needs.

Install:

npm i primereact
npm i primeicons

Usage example:

import { InputText } from ‘primereact/inputtext’;
export default function PasswordInput() {
  return (
    <InputText
      value={‘value’}
      onChange={(event) => onPasswordChanged(‘value’)}
    />
  );
};

4. Material-UI

Material-UI is implemented based on Google Material Design Principle. If you’d like to create your website following this principle, don’t skip this one.

Install:

# npm
npm i @material-ui/core
# yarn
yarn add @material-ui/core

Usage example:

import Button from ‘@material-ui/core/Button’;
export default function CustomButton() {
  return (
    <Button color=’primary’>Custom Button</Button>
  );
};

5. Onsen UI

Material and Flat design come into one place in Onsen UI. The thing I like about this library is it makes your web app look like a native one. So, if you’re going for mobile-first, pick this one.

Install:

npm i onsenui react-onsenui

Usage example:

import { Page, Button } from “react-onsenui”
export default function CustomButton() {
  return (
    <Page>
      <Button>Custom Button</Button>
    </Page>
  );
};

6. Atlaskit

Atlaskit is UI component library which help implement Atlassian Design Guideline.

Install (just add the component you want to use, see list of components here):

# npm
npm i @atlaskit/button
# yarn
yarn add @atlaskit/button

Usage example:

import Button from '@atlaskit/button';
export default function ConfirmButton() {
  return (
    <Button theme='dark'>Confirm</Button>
  );
};

7. Carbon Components

Carbon Components is the one that represents IBM’s Carbon design system. These components aim to create consistency in design and make sure designers and developers are getting along.

Install:

# npm
npm i carbon-components-react carbon-components carbon-icons
# yarn
yarn add carbon-components-react carbon-components carbon-icons

Usage example:

import { Button } from “carbon-components-react”;
export default function ViewDetailButton() {
  return (
    <Button>View Detail</Button>
  );
};

8. Blueprint

In Blueprint, components are made of TypeScript and styled with Sass to accelerate the development. This library focuses on data presentation on desktop applications running on modern browsers.

Install:

yarn add @blueprintjs/core react react-dom

Usage example:

import { Button } from “@blueprintjs/core”;
export default function PlaceOrderButton() {
  return (
    <Button text=’Order’ onclick={order} />
  );
};

9. Reactstrap

Put simply, Reactstrap is React Components for Bootstrap 4. If you’re familiar with bootstrap, there’s no need for any further explanation.

Install:

npm i reactstrap react react-dom

Usage example:

import { Button } from ‘reactstrap’;
export default function RegisterButton() {
  return (
    <Button>Register</Button>
  );
};

10. React Toolbox

React Toolbox’s components follow Google Material Design. This library is built on top of some of the trendiest proposals like CSS Modules, ES6, and Webpack.

Install:

npm i react-toolbox

Usage example:

import Dialog from ‘react-toolbox/lib/dialog’;
export default function CustomDialog() {
  return (
    <Dialog title=’Custom Dialog’>Content</Dialog>
  );
};

11. Belle

Belle provides a wide range of components, which are optimized to work well on both desktop and mobile devices. You can customize these components at the base level once for all components or each component individually.

Install:

npm i belle

Usage example:

import { Button } from ‘belle’;
export default function CloseButton() {
  return (
    <Button>Close</Button>
  );
};

12. React Desktop

React Desktop leverages the UI of macOS and Windows to bring the native desktop application to the web.

Install:

npm i react-desktop

Usage example:

import { Text } from ‘react-desktop/macOs’;
export default function CustomText() {
  return (
    <Text size=’18’>content</Text>
  );
};

13. Grommet

Grommet is the React-based framework. It focuses mainly on accessibility, responsiveness, and theming.

Install:

npm i grommet

Usage example:

import { Grommet, Heading } from “grommet”
export default function CustomHeading() {
  return (
    <Grommet theme={theme}>
      <Heading level=’3’>Custom Heading</Heading>
    </Grommet>
  );
};

14. Rebass

Rebass comes with a handful of foundational components. These components are extensible, which gives you the ability to create a great set of UI elements.

Install:

npm i rebass

Usage example:

import { Label } from ‘@rebass/forms’;
export default function CustomLabel() {
  return (
    <Label>Username:</Label>
  );
};

15. Elemental UI

Elemental UI includes basic components, yet you still can create a wonderful UI using a single component alone or mixing some of them.

Install:

npm i elemental

Usage example:

import { Button } from ‘elemental’;
export default function LogoutButton() {
  return (
    <Button size=’sm’ type=’primary’>Logout</Button>
  );
};

16. React Bootstrap

React Bootstrap is a way to use bootstrap not in the original bootstrap way but the react one.

Install:

npm i react-bootstrap

Usage example:

import Button from “react-bootstrap/Button”;
export default function CustomButton() {
  return (
    <Button>Custom Button</Button>
  );
};

17. KendoReact

So far we walked through free libraries, now it’s time for the premium one, KendoReact. When it comes to data visualization, you should check out this guy. The price starts at $899 and it’s worth it. In fact, some large companies are using it such as Microsoft, IBM, NASA, SONY, etc.

Install:

npm i — save @progress/kendo-react-grid @progress/kendo-data-query @progress/kendo-react-inputs @progress/kendo-react-intl @progress/kendo-react-dropdowns @progress/kendo-react-dateinputs @progress/kendo-drawing @progress/kendo-react-data-tools

Usage example:

import ‘@progress/kendo-theme-default/dist/all.css’;
import { Grid, GridColumn } from ‘@progress/kendo-react-grid’;
export default function CustomGrid() {
  return (
    <Grid data={products}>
      <GridColumn field=’ProductName’ />
      <GridColumn field=’ProductPrice’ />
      <GridColumn field=’ProductDiscount’ />
    </Grid>
  );
};

18. Gestalt

Pinterest developed Gestalt following their internal design guideline for developers and designers to talk the same language. Now, you can take it to have a chat with your designer friends.

Install:

# npm
npm i gestalt
# yarn
yarn add gestalt

Usage example:

import { Avatar } from ‘gestalt’;
import ‘gestalt/dist/gestalt.css’;
export default function CustomAvatar() {
  return (
    <Avatar
      size=’sm’
      src=’image sourcename=’Amy’
    />
  );
};

19. React Virtualized

React Virtualized focuses on presenting large data sets. It’s the perfect library for rendering huge tables, lists, and grids.

Install:

npm i react-virtualized

Usage example:

import ‘react-virtualized/styles.css’;
import {Collection} from ‘react-virtualized’;
export default function UsersList() {
  function cellRenderer({index, key, style}) {
    return (
      <div key={key} style={style}>
        {list[index].name}
      </div>
    );
  }
  return (
    <Collection
      cellCount={100}
      cellRender={cellRenderer}
      width={256}
      height={256}
    />
  );
}.

20. Evergreen

Evergreen contains a lot of flexible and composable components. It includes almost everything you need to start building UI for a website.

Install:

#npm
npm i evergreen-ui
#yarn
yarn add evergreen-ui

Usage example:

import { Button } from ‘evergreen-ui’;
export default function CancelButton() {
  return (
    <Button>Cancel</Button>
  );
};

21. FluentUI

This FluentUI comes from a big guy, Microsoft. You know Office, right? If you want to create Office-like UI, go for FluentUI.

Install:

# npm
npm i @fluentui/react
# yarn
yarn add @fluentui/react

Usage example:

import { Button } from ‘@fluentui/react/lib/Button’;
export default function DeleteButton() {
  return (
    <Button>Delete</Button>
  );
};

Well, I guess that’s it. The 21 React UI libraries above are in your hands now. You should test them one by one and pick the guy that you find the most useful for your next projects.

If you already had some experiences with them, please let me know which ones are your favorite and why?

Further reading:

React
Reactjs
JavaScript
Programming
Coding
Recommended from ReadMedium