RMWC - React Material Web Components
RMWC is a React UI Kit built on Google's official Material Components Web library v2.x.x https://rmwc.io/
Features:
- Uses Google's official material-components-web library
- Includes Addon components for ones missing from the official spec
- Works in React 16.3.x and up
- First class Typescript Support
- Server side rendering support
- Individually packaged and released components
Try it in the Code Sandbox
- Javascript Sandbox https://codesandbox.io/s/kpy13vqnr
- Typescript Sandbox https://codesandbox.io/s/kl0w4xp95
Recent updates
V5.5.0 is live with some great new features!
- Added the concept of "danger" buttons for those destructive actions
- SnackbarQueue is a new way to easily create notifications from anywhere in your app
- DialogQueue emulates the browsers built in alert, confirm, and prompt apis and gives you an easy way to create dialogs from anywhere in your app
- Full docs search has been added so make navigating a bit easier
- The docs have a new domain, rmwc.io
- Upgraded to material-components-web 2.x.x which includes a host of fixes and cleanup
V5 is officially out! RMWC has been completely rewritten in Typescript while also knocking out about a years worth of tech debt and improving things across the board. You can expect better typing, better performance, better integration with material-components-web, and just better everything. All of this was done with as few breaking changes as possible, so upgrading should be relatively painless.
Your quick migration guide:
- React 16.3 is the new min version to take advantage of React Fragments, Ref Forwarding, and the new Context Api. If you need React 15 support, you'll have to stay on 4.x.x and below.
- The library has been rewritten in Typescript instead of Flow. At this time, Flow types are no longer supported. Please comment on issue #407 If you're interested in bringing these back
- Changelog couldn't be generated for this release, see the release notes for the full details 🚀 https://opencollective.com/rmwc/updates/5-0-0-a-giant-leap-for-rmwc
View all release notes 👉 https://opencollective.com/rmwc/updates
View the changelog for detailed updates: https://github.com/jamesmfriedman/rmwc/blob/master/CHANGELOG.md
Goals
- To create the thinnest, lightest, and spec compliant wrapper around Google Material Design Components for the Web https://material.io/components/web/
- To utilize the Foundation javascript classes from material-components-web
- To be as unobtrusive and sensible as possible.
- To fill the gaps in material-components-web with custom React community driven components.
Installation
npm i rmwc --save
oryarn add rmwc
Additional information is available in the Installation Guide
Usage
Read the docs on how to Usage
Why?
Read the docs on Methodology
About Breaking Changes
RMWC avoids them at all costs! Read the docs on Methodology
To run the tests
- On MacOS Sierra and higher, install watchman to fix a filesystem issue with
Jest.
brew install watchman
npm test
To run the docs / contribute
git clone https://github.com/jamesmfriedman/rmwc.git
cd rmwc
npm install
npm start
Contributions
This project exists thanks to all the people who contribute. [Contribute].
Backers
Thank you to all our backers! 🙏 [Become a backer]
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]