React ui roundup
A one-stop-shop for comparing the features of all the best React frameworks. Useful for designers and engineers alike!
Are you a frontend developer or designer? Do you wish you had a one-stop-shop where you could check out the various implementations of common components? If so - React UI Roundup is for you! The project is written primarily in TypeScript, first published in 2019. Key topics include: ant-design, antd, atlaskit, blueprint, blueprintjs.
React UI Roundup
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Are you a frontend developer or designer? Do you wish you had a one-stop-shop where you could check out the various implementations of common components? If so - React UI Roundup is for you!
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** --> <!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->About
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->I decided to make this project while contributing an Alert component to material-ui. While thinking about that component, it was HUGELY helpful to review other implementations from everything from feature set, DOM structure, CSS usage, theming integration, prop naming, and more. I wanted something where I could stand back at a distance and look at many high-quality implementations of a similar component while I researched - so I made this project.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->An even more better version of this exact document is available at react-ui-roundup.dimitrimitropoulos.com. It has special "Open All" buttons that allow you to open every link in a table with one click! Also, the Framework Statistics section on the website is always up to date since it pulls the data in realtime when you load the page.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Frameworks
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Framework Statistics
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** --><!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->all of the above statistics were last updated Wed, 12 Oct 2022 18:16:19 GMT. For real-time data, see the website.
Framework Features
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Native Dark Mode: The project is made with dark-mode styling in mind. An out-of-the-box dark mode is either used on the docs site itself or well documented and easy to configure.Design Kits: Ready-made resources exist for designers such as Sketch or Figma download packs.RTL Support: Explicit right-to-Left support for use in apps with languages like Arabic, Hebrew, or Persian.Themer: A user-interactable theming area where designers and developers can play around with look and feel without needing to do any programming.Native TypeScript: Is either written in TypeScript (ideally) or has TypeScript definitions directly in the project. DefinitelyTyped does not qualify.
| Name | Native Dark Mode | Design Kits | RTL Support | Themer | Native TypeScript |
|---|---|---|---|---|---|
| Ant Design | :heavy_check_mark: | Figma, Sketch | :heavy_check_mark: | Link | :heavy_check_mark: |
| Atlaskit | :x: | Sketch | :x: | :x: | :x: |
| Blueprint | :heavy_check_mark: | Sketch | :heavy_check_mark: | :x: | :heavy_check_mark: |
| Carbon Design | :heavy_check_mark: | Sketch | :heavy_check_mark: | Link | :x: |
| Chakra UI | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| Elastic UI | :heavy_check_mark: | Sketch | :x: | :x: | :heavy_check_mark: |
| Element | :x: | Axure, Sketch | :x: | Link | :x: |
| Elemental UI | :x: | :x: | :x: | :x: | :x: |
| Evergreen | :x: | Sketch | :x: | :x: | :x: |
| Fluent UI | :heavy_check_mark: | Figma, Sketch | :x: | :x: | :heavy_check_mark: |
| Gestalt | :x: | :x: | :heavy_check_mark: | :x: | :x: |
| Grommet | :x: | Custom, Framer X, Sketch | :heavy_check_mark: | Link | :heavy_check_mark: |
| MUI | :heavy_check_mark: | Adobe XD, Figma, Sketch | :heavy_check_mark: | Link | :heavy_check_mark: |
| Onsen UI | :heavy_check_mark: | :x: | :x: | :x: | :heavy_check_mark: |
| Orbit | :x: | Abstract, Sketch | :heavy_check_mark: | Link | :x: |
| Prime React | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| Quasar | :heavy_check_mark: | :x: | :heavy_check_mark: | Link | :heavy_check_mark: |
| React Bootstrap | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| React Toolbox | :x: | :x: | :x: | :x: | :heavy_check_mark: |
| react-md | :heavy_check_mark: | :x: | :x: | :x: | :heavy_check_mark: |
| Ring UI | :x: | :x: | :x: | :x: | :x: |
| Semantic UI | :x: | Sketch | :heavy_check_mark: | :x: | :x: |
| Smooth UI | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| Zendesk Garden | :x: | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: |
Components
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Alert
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Alerts are used to show an important message to users.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Closable: The alert has an "out of the box" way to dismiss, usually with anonCloseprop.Types: The alert has ready-made variations.
| Framework | Name | Closable | Types |
|---|---|---|---|
| Ant Design | Alert | :heavy_check_mark: | error, info, success, warning |
| Atlaskit | SectionMessage | :x: | change, confirmation, error, info, warning |
| Atlaskit | Flag | :x: | change, confirmation, error, info, warning |
| Chakra UI | Alert | :heavy_check_mark: | error, info, success, warning |
| Element | Alert | :heavy_check_mark: | error, info, success, warning |
| Elemental UI | Alert | :x: | danger, info, primary, success, warning |
| Evergreen | Alert | :heavy_check_mark: | danger, none, success, warning |
| Fluent UI | MessageBar | :heavy_check_mark: | blocked, error, info, remove, severeWarning, success, warning |
| MUI | Alert | :heavy_check_mark: | error, info, success, warning |
| Orbit | Alert | :heavy_check_mark: | critical, info, success, warning |
| Quasar | banner | :x: | |
| React Bootstrap | Alert | :heavy_check_mark: | danger, dark, info, light, primary, secondary, success, warning |
| Ring UI | Alert | :heavy_check_mark: | error, loading, message, success, warning |
| Smooth UI | Alert | :x: | danger, dark, info, light, primary, secondary, success, warning |
| Zendesk Garden | Notification | :heavy_check_mark: | error, info, success, warning |
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Blueprint, Carbon Design, Elastic UI, Gestalt, Grommet, Onsen UI, Prime React, React Toolbox, react-md, and Semantic UI appear to be missing an Alert component. Please file an issue if one now exists.
AppBar
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->The AppBar displays information and actions relating to the current screen.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
API: The API style used for the components contained within the AppBar.Dense: There is a built-in way to make the bar take up less vertical space.Sticky: A prop exists which can set the bar into a mode where it remains at the top of the screen, independent of scroll depth.Theme Mode: The bar can be individually themed to use a theme mode that doesn't match the rest of the app. E.g. dark mode AppBar in a light mode app.
| Framework | Name | API | Dense | Sticky | Theme Mode |
|---|---|---|---|---|---|
| Elastic UI | Header | customComponents | :x: | :heavy_check_mark: | :heavy_check_mark: |
| MUI | AppBar | children | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| React Toolbox | AppBar | props | :x: | :heavy_check_mark: | :x: |
| react-md | AppBar | customComponents | :heavy_check_mark: | :x: | :heavy_check_mark: |
| Ring UI | Header | children | :heavy_check_mark: | :x: | :heavy_check_mark: |
| Zendesk Garden | Header | customComponents | :heavy_check_mark: | :x: | :heavy_check_mark: |
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Ant Design, Atlaskit, Blueprint, Carbon Design, Chakra UI, Element, Elemental UI, Evergreen, Fluent UI, Gestalt, Grommet, Onsen UI, Orbit, Prime React, Quasar, React Bootstrap, Semantic UI, and Smooth UI appear to be missing an AppBar component. Please file an issue if one now exists.
Avatar
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Avatars can be used to represent people or objects.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Badge: A custom badge or status is available or easily configurable.Shapes: Avatars can be easily formed into different styles using a prop or similar mechanism (not custom CSS).Sizes: Avatars can be easily sized between different (and consistent) major sizes.Types: Avatars can be presented to users as icons (i.e. generic fallback illustrations), custom images, or can contain text.
| Framework | Name | Badge | Shapes | Sizes | Types |
|---|---|---|---|---|---|
| Ant Design | Avatar | :heavy_check_mark: | circle, square | default, large, number, small | icon, image, text |
| Atlaskit | Avatar | :x: | circle, square | large, medium, small, xlarge, xsmall, xxlarge | icon, image |
| Chakra UI | Avatar | :heavy_check_mark: | circle | 2xl, 2xs, lg, md, sm, xl, xs | |
| Element | Avatar | :x: | circle, square | large, medium, number, small | image, image, text |
| Evergreen | Avatar | :x: | circle | number | image, text |
| Fluent UI | Persona | :heavy_check_mark: | circle, rounded-square | number | icon, image, text |
| MUI | Avatar | :heavy_check_mark: | circle, rounded-square, square | number | icon, image, text |
| Quasar | avatar | :heavy_check_mark: | circle, rounded-square, square | lg, md, number, sm, xl, xs | icon, image, text |
| Ring UI | Avatar | :x: | circle, rounded-square | 18, 20, 24, 32, 40, 48, 56, number | image |
| Zendesk Garden | Avatar | :heavy_check_mark: | circle, rounded-square | extraextrasmall, extrasmall, large, medium, small | icon, image, text |
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Blueprint, Carbon Design, Elastic UI, Elemental UI, Gestalt, Grommet, Onsen UI, Orbit, Prime React, React Bootstrap, React Toolbox, react-md, Semantic UI, and Smooth UI appear to be missing an Avatar component. Please file an issue if one now exists.
AvatarGroup
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->AvatarGroups stack a set of Avatars into a customized list, often with customized animations and options.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Cascade Direction: A prop exists that allows you to set whether the children overlap above or below each other.Expandable Group: Avatar groups support expandable lists where a user can click to see more members in the list.Max Count: A custom number can be set representing the number of avatars shown.
| Framework | Name | Cascade Direction | Expandable Group | Max Count |
|---|---|---|---|---|
| Ant Design | Avatar.Group | above | :heavy_check_mark: | :heavy_check_mark: |
| Atlaskit | AvatarGroup | below | :heavy_check_mark: | :heavy_check_mark: |
| Chakra UI | AvatarGroup | below | :x: | :heavy_check_mark: |
| Fluent UI | Facepile | no-overlap | :heavy_check_mark: | :heavy_check_mark: |
| MUI | AvatarGroup | below | :x: | :heavy_check_mark: |
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Blueprint, Carbon Design, Elastic UI, Element, Elemental UI, Evergreen, Gestalt, Grommet, Onsen UI, Orbit, Prime React, Quasar, React Bootstrap, React Toolbox, react-md, Ring UI, Semantic UI, Smooth UI, and Zendesk Garden appear to be missing an AvatarGroup component. Please file an issue if one now exists.
Button
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Users trigger actions by clicking on buttons.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Disabled: Adisabledprop exists for use in situations where the user cannot interact with the button.Groupable: A ButtonGroup component exists in the library, or other such pre-made methods for making button groups.Icon: An icon can be included either at the left or right of the text, or button can be used with just an icon and no text (notated asonly).Loading: The button has a pre-made loading state for asynchronous events.Sizes: The button can be easily sized between different (and consistent) major sizes.
| Framework | Name | Disabled | Groupable | Icon | Loading | Sizes |
|---|---|---|---|---|---|---|
| Ant Design | Button | :heavy_check_mark: | :heavy_check_mark: | left, only, right | :heavy_check_mark: | default, large, small |
| Atlaskit | Button | :heavy_check_mark: | :heavy_check_mark: | left, right | :heavy_check_mark: | |
| Blueprint | Button | :heavy_check_mark: | :heavy_check_mark: | left, only, right | :heavy_check_mark: | default, large |
| Carbon Design | Button | :heavy_check_mark: | :heavy_check_mark: | only, right | :heavy_check_mark: | default, field, small |
| Chakra UI | Button | :heavy_check_mark: | :x: | left, only, right | :x: | lg, md, sm, xs |
| Elastic UI | Button | :heavy_check_mark: | :heavy_check_mark: | left, only, right | :heavy_check_mark: | m, sm, xs |
| Element | Button | :heavy_check_mark: | :heavy_check_mark: | left, only, right | :heavy_check_mark: | default, medium, mini, small |
| Elemental UI | Button | :x: | :heavy_check_mark: | :x: | default, extra small, large, small | |
| Evergreen | Button | :heavy_check_mark: | :heavy_check_mark: | left, only, right | :heavy_check_mark: | arbitrary pixel sizes |
| Fluent UI | Button | :heavy_check_mark: | :x: | :x: | ||
| Gestalt | Button | :heavy_check_mark: | :x: | only | :x: | lg, md, sm |
| Grommet | Button | :heavy_check_mark: | :x: | left, only, right | :x: | |
| MUI | Button | :heavy_check_mark: | :heavy_check_mark: | left, only, right | :x: | large, medium, small |
| Onsen UI | Button | :heavy_check_mark: | :x: | :x: | default, large | |
| Orbit | Button | :heavy_check_mark: | :heavy_check_mark: | left, only, right | :heavy_check_mark: | large, normal, small |
| Prime React | Button | :x: | :x: | left, only, right | :x: | |
| Quasar | btn | :heavy_check_mark: | :heavy_check_mark: | left, only, right | :heavy_check_mark: | custom, lg, md, sm, xs |
| React Bootstrap | Button | :heavy_check_mark: | :heavy_check_mark: | :x: | lg, sm | |
| React Toolbox | Button | :heavy_check_mark: | :x: | left, only | :x: | |
| react-md | Button | :heavy_check_mark: | :x: | left, only, right | :x: | |
| Ring UI | Button | :heavy_check_mark: | :heavy_check_mark: | left, only | :heavy_check_mark: | default, large, small |
| Semantic UI | Button | :heavy_check_mark: | :heavy_check_mark: | left, only, right | :heavy_check_mark: | big, huge, large, massive, medium, mini, small, tiny |
| Smooth UI | Button | :heavy_check_mark: | :x: | :x: | base, lg, sm, xl, xs | |
| Zendesk Garden | Button | :heavy_check_mark: | :heavy_check_mark: | only | :x: | default, large, small |
Checkbox
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Users toggle between checked, unchecked (or indeterminate) values with checkboxes.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Custom Icon: A custom icon can be provided in place of the checkbox itself via a prop or a child.Disabled: The checkbox has adisabledstate, indicating the user cannot interact with it.Indeterminate: The checkbox has an indeterminate state.Invalid: The checkbox has aninvalidorerrorstate.Label Placement: The text can be positioned at different places around the checkbox.
| Framework | Name | Custom Icon | Disabled | Indeterminate | Invalid | Label Placement |
|---|---|---|---|---|---|---|
| Ant Design | Checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | right |
| Atlaskit | Checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | right |
| Blueprint | Checkbox | :x: | :x: | :heavy_check_mark: | :x: | left, right |
| Carbon Design | Checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | right |
| Chakra UI | Checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | right |
| Elastic UI | Checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | right |
| Element | Checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | right |
| Elemental UI | Checkbox | :x: | :x: | :x: | :x: | right |
| Evergreen | Checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | right |
| Fluent UI | Checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | left, right |
| Gestalt | Checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | right |
| Grommet | CheckBox | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | right |
| MUI | Checkbox | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | above, below, left, right |
| Onsen UI | Checkbox | :heavy_check_mark: | :x: | :heavy_check_mark: | :heavy_check_mark: | right |
| Orbit | Checkbox | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: | right |
| Prime React | Checkbox | :x: | :heavy_check_mark: | :x: | :x: | right |
| Quasar | checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | left, right |
| React Bootstrap | Form.Check | :x: | :heavy_check_mark: | :x: | :x: | |
| React Toolbox | Checkbox | :x: | :heavy_check_mark: | :x: | :x: | right |
| react-md | Checkbox | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | right |
| Ring UI | Checkbox | :x: | :heavy_check_mark: | :x: | :x: | right |
| Semantic UI | Checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | right |
| Smooth UI | Checkbox | :x: | :heavy_check_mark: | :x: | :x: | right |
| Zendesk Garden | Checkbox | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | right |
DatePicker
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Users select a date or date range using a date picker.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Clearable: Has a prop that allows the user to easily clear the date selection.Custom Locale: A developer can specify a custom locale with a prop.Min/Max: Allows a devloper to easily set a minimum and maximum date.Modes: Allows users to quickly select from different magnituteds of lengths of time.Presets: A super simple way exists to provide the user with preset dates (e.g. "Today", "Last Week", , "Past 3 years").Range: An out-of-the-box solution exists for allowing the user to select date ranges.Time: Users are able to input times.
| Framework | Name | Clearable | Custom Locale | Min/Max | Modes | Presets | Range | Time |
|---|---|---|---|---|---|---|---|---|
| Ant Design | DatePicker | :heavy_check_mark: | :heavy_check_mark: | :x: | day, month, quarter, week, year | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Blueprint | DatePicker | :x: | :heavy_check_mark: | :heavy_check_mark: | day, month, year | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Carbon Design | DatePicker | :x: | :x: | :heavy_check_mark: | day, year | :x: | :heavy_check_mark: | :heavy_check_mark: |
| Elastic UI | DatePicker | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | day | :x: | :heavy_check_mark: | :heavy_check_mark: |
| Element | DatePicker | :heavy_check_mark: | :x: | :heavy_check_mark: | day, month, week, year | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Fluent UI | DatePicker | :x: | :x: | :heavy_check_mark: | day, month, year | :x: | :heavy_check_mark: | :x: |
| Gestalt | DatePicker | :x: | :heavy_check_mark: | :heavy_check_mark: | day | :x: | :heavy_check_mark: | :x: |
| Grommet | DateInput | :x: | :x: | :x: | day | :x: | :x: | :x: |
| MUI | DatePicker | :x: | :x: | :x: | day | :x: | :x: | :heavy_check_mark: |
| Quasar | date | :x: | :x: | :heavy_check_mark: | day, month, year | :x: | :heavy_check_mark: | :heavy_check_mark: |
| React Toolbox | DatePicker | :x: | :heavy_check_mark: | :heavy_check_mark: | day, month, year | :x: | :x: | :x: |
| Ring UI | DatePicker | :heavy_check_mark: | :x: | :heavy_check_mark: | day, month, year | :x: | :heavy_check_mark: | :heavy_check_mark: |
| Zendesk Garden | DatePicker | :x: | :heavy_check_mark: | :heavy_check_mark: | day | :x: | :heavy_check_mark: | :x: |
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Atlaskit, Chakra UI, Elemental UI, Evergreen, Onsen UI, Orbit, Prime React, React Bootstrap, react-md, Semantic UI, and Smooth UI appear to be missing a DatePicker component. Please file an issue if one now exists.
ErrorBoundary
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->ErrorBoundaries are a React 16+ specific feature that uses the componentDidCatch API for handling uncaught errors without unmounting the whole React component tree.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Custom Text: Has a prop or props that can be used to provide a custom title and/or description (as a string, not a ReactNode).Drop-In JSX Fallback: Has a prop that can be used to provide a custom ReactNode fallback that does not receive the date ofcomponentDidCatch.Wrapper JSX Fallback: Has a prop that can be used to provide a custom ReactNode for fallback which receives the data ofcomponentDidCatch.
| Framework | Name | Custom Text | Drop-In JSX Fallback | Wrapper JSX Fallback |
|---|---|---|---|---|
| Ant Design | Alert.ErrorBoundary | :heavy_check_mark: | :x: | :x: |
| Carbon Design | ErrorBoundary | :x: | :heavy_check_mark: | :x: |
| Elastic UI | ErrorBoundary | :x: | :x: | :x: |
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Atlaskit, Blueprint, Chakra UI, Element, Elemental UI, Evergreen, Fluent UI, Gestalt, Grommet, MUI, Onsen UI, Orbit, Prime React, Quasar, React Bootstrap, React Toolbox, react-md, Ring UI, Semantic UI, Smooth UI, and Zendesk Garden appear to be missing an ErrorBoundary component. Please file an issue if one now exists.
Pagination
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Pagination allows long lists to be divided into several pages.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Compact: Has a mode that greatly conserves horizontal space, likely by omitting multiple page selectors.Edge #: Allows configuring the number of items that will be shown at the beginning and end of the range.First/Last: Has ready-made functionality to allow users to quickly select first and last pages (either with a stationary page number or a dedicated button).# of Pages: Allows the number of page items shown to be configurable.Page Size: Allows configuring the number of items that will be shown per page.Style: Has an API the is oriented around pages (but disregards pages) or items (and figures out pages automatically).
| Framework | Name | # of Pages | Compact | Edge # | First/Last | Page Size | Style |
|---|---|---|---|---|---|---|---|
| Ant Design | Pagination | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: | items |
| Atlaskit | Pagination | :heavy_check_mark: | :x: | :x: | :x: | :x: | pages |
| Carbon Design | PaginationNav | :heavy_check_mark: | :x: | :x: | :x: | :heavy_check_mark: | items |
| Elastic UI | Pagination | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | pages |
| Element | Pagination | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: | items |
| Evergreen | Pagination | :x: | :heavy_check_mark: | :x: | :x: | :x: | pages |
| Grommet | Pagination | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | items |
| MUI | Pagination | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | pages |
| Orbit | Pagination | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | pages |
| Prime React | Paginator | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :heavy_check_mark: | items, pages |
| Quasar | pagination | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | pages |
| React Bootstrap | Pagination | :x: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | pages |
| Ring UI | Pager | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: | :heavy_check_mark: | pages |
| Zendesk Garden | Pagination | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | pages |
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Blueprint, Chakra UI, Elemental UI, Fluent UI, Gestalt, Onsen UI, React Toolbox, react-md, Semantic UI, and Smooth UI appear to be missing a Pagination component. Please file an issue if one now exists.
Select
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->A Select allows a user to select a value from a series of options. Much more advanced than the native HTML select.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Async: Has support fo async-loaded lists (for example, a loading state).Disabled: The whole select be disabled with a built-in prop.Disabled Options: Individual options can be easily disabled with a prop.Filterable: Filter the options of the select with keyboard input.Groupable: Can group the options into sub sections within the options list.Icons: Has out-of-the-box (i.e. props) support for start or end icons (or can easily be composed with icons and has examples of such on the docs).Virtual: Either had a prop that you can use to make the items virtualized, or proveds a simple (documented) way to use another library to do it, e.g. react-virtualized.
| Framework | Name | Async | Disabled | Disabled Options | Filterable | Groupable | Icons | Virtual |
|---|---|---|---|---|---|---|---|---|
| Ant Design | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | end | :heavy_check_mark: |
| Atlaskit | Select | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | |
| Blueprint | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
| Carbon Design | Select | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | |
| Chakra UI | Select | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | |
| Elastic UI | SuperSelect | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | :x: | composable | :x: |
| Element | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | |
| Elemental UI | Dropdown | :x: | :x: | :x: | :x: | :heavy_check_mark: | :x: | |
| Evergreen | SelectMenu | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | start | :heavy_check_mark: |
| Fluent UI | Dropdown | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | composable | :x: |
| Gestalt | SelectList | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | |
| Grommet | Select | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | |
| MUI | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | composable | :x: |
| Onsen UI | Select | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | |
| Orbit | Select | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | end, start | :x: |
| Prime React | Dropdown | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | composable | :heavy_check_mark: |
| Quasar | select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: | |
| React Bootstrap | Dropdown | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | |
| React Toolbox | Dropdown | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | |
| react-md | Dropdown | :x: | :x: | :x: | :x: | :x: | end, start | :heavy_check_mark: |
| Ring UI | Select | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | |
| Semantic UI | Dropdown | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | composable | :x: |
| Smooth UI | Select | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | :x: | |
| Zendesk Garden | Select | :x: | :heavy_check_mark: | :heavy_check_mark: | :x: | :x: | start | :x: |
Stepper
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Navigation that guides users through the steps of a task.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Can Be Vertical: The steps can be stacked vertically.Clickable: A user can click on the step itself to navigate.Step Description: A step can have a subtext with a description.Step Error: A step with an error can be easily identified to the user.Step Icon: The steps have a prop whereby they can be given custom icons.
| Framework | Name | Can Be Vertical | Clickable | Step Description | Step Error | Step Icon |
|---|---|---|---|---|---|---|
| Ant Design | Steps | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Atlaskit | ProgressTracker | :x: | :heavy_check_mark: | :x: | :x: | :x: |
| Carbon Design | ProgressIndicator | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Elastic UI | Steps | :heavy_check_mark: | :x: | :x: | :x: | :x: |
| Element | Steps | :heavy_check_mark: | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| MUI | Stepper | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Prime React | Steps | :x: | :heavy_check_mark: | :x: | :x: | :x: |
| Quasar | stepper | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| Semantic UI | Steps | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :x: | :heavy_check_mark: |
| Zendesk Garden | Stepper | :x: | :x: | :x: | :x: | :x: |
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Blueprint, Chakra UI, Elemental UI, Evergreen, Fluent UI, Gestalt, Grommet, Onsen UI, Orbit, React Bootstrap, React Toolbox, react-md, Ring UI, and Smooth UI appear to be missing a Stepper component. Please file an issue if one now exists.
Switch
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Used to toggle between two states: on and off.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Disabled: The switch has adisabledstate, indicating that the user cannot interact with it.Indeterminate: The switch has an ability to display an indeterminate state.Internal Icons: The switch has a prop (or child) to include custom icons within the space of the switch (e.g. acheckmarkand anxicon).Internal Text: The switch has a prop (or child) to include custom text within the space of the switch (e.g. the textonandoff).Lable Placement: Where a label can be attached to the switch.Loading: The switch has aloadingstate that indicates a pending state of a switch action.Sizes: The lable has native, pre-configured size options.
| Framework | Name | Disabled | Indeterminate | Internal Icons | Internal Text | Lable Placement | Loading | Sizes |
|---|---|---|---|---|---|---|---|---|
| Ant Design | Switch | :heavy_check_mark: | :x: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | default, small | |
| Atlaskit | Toggle | :heavy_check_mark: | :x: | :x: | :x: | :x: | large, regular | |
| Blueprint | Switch | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: | left, right | :x: | default, large |
| Carbon Design | Switch | :heavy_check_mark: | :x: | :x: | :x: | right | :x: | default, small |
| Chakra UI | Switch | :heavy_check_mark: | :x: | :x: | :x: | left, right | :x: | lg, md, sm |
| Elastic UI | Switch | :heavy_check_mark: | :x: | :x: | :x: | right | :x: | compressed, default |
| Element | Switch | :heavy_check_mark: | :x: | :x: | :x: | left, right | :x: | |
| Evergreen | Switch | :heavy_check_mark: | :x: | :x: | :x: | :x: | integers | |
| Fluent UI | Toggle | :heavy_check_mark: | :x: | :x: | :x: | left, right | :x: | |
| Gestalt | Switch | :heavy_check_mark: | :x: | :x: | :x: | :x: | ||
| Grommet | CheckBox | :heavy_check_mark: | :x: | :x: | :x: | left, right | :x: | |
| MUI | Switch | :heavy_check_mark: | :x: | :x: | :x: | above, below, left, right | :x: | default, small |
| Onsen UI | Switch | :heavy_check_mark: | :x: | :x: | :x: | :x: | ||
| Prime React | InputSwitch | :heavy_check_mark: | :x: | :x: | :x: | :x: | ||
| Quasar | toggle | :heavy_check_mark: | :x: | :heavy_check_mark: | :x: | left, right | :x: | custom, lg, md, sm, xl, xs |
| React Bootstrap | Form.Check | :heavy_check_mark: | :x: | :x: | :x: | right | :x: | |
| React Toolbox | Switch | :heavy_check_mark: | :x: | :x: | :x: | right | :x: | |
| Ring UI | Toggle | :heavy_check_mark: | :x: | :x: | :x: | left, right | :x: | |
| Smooth UI | Switch | :heavy_check_mark: | :x: | :x: | :heavy_check_mark: | :x: | base, lg, sm, xl, xs | |
| Zendesk Garden | Toggle | :x: | :x: | :x: | :x: | above, below | :x: |
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Elemental UI, Orbit, react-md, and Semantic UI appear to be missing a Switch component. Please file an issue if one now exists.
Tabs
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Users switch between different views with tabs.
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Criteria
Can Be Vertical: The tabs can be stacked vertically.
| Framework | Name | Can Be Vertical |
|---|---|---|
| Ant Design | Tabs | :heavy_check_mark: |
| Atlaskit | Tabs | :x: |
| Blueprint | Tabs | :heavy_check_mark: |
| Carbon Design | Tabs | :x: |
| Chakra UI | Tabs | :heavy_check_mark: |
| Elastic UI | Tabs | :x: |
| Element | Tabs | :heavy_check_mark: |
| Evergreen | Tablist | :heavy_check_mark: |
| Fluent UI | Pivot | :x: |
| Gestalt | Tabs | :x: |
| Grommet | Tabs | :x: |
| MUI | Tabs | :heavy_check_mark: |
| Onsen UI | Tabbar | :x: |
| Prime React | TabView | :x: |
| Quasar | tabs | :heavy_check_mark: |
| React Bootstrap | Tabs | :x: |
| React Toolbox | Tabs | :x: |
| react-md | Tabs | :x: |
| Ring UI | Tabs | :x: |
| Semantic UI | Tabs | :x: |
| Zendesk Garden | Tabs | :heavy_check_mark: |
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->Elemental UI, Orbit, and Smooth UI appear to be missing a Tabs component. Please file an issue if one now exists.
How to Make a Change
<!-- ******************************************************************************** THIS FILE ENTIRE FILE IS AUTOGENERATED!!! PLEASE SEE `markdown/generate-readme.ts` and the files in the `frameworks` directory if you would like to make changes :) ******************************************************************************** -->The README.md and website are both autogenerated from the same source input files. For convenience, there is exactly one file for each project that has all the information for that project, located in the frameworks directory. To update any given data point, simply make a change to one of those files and run yarn generate.
Contributors
Showing top 5 contributors by commit count.
