rmwc

A React wrapper for Material Design (Web) Components

Github星跟蹤圖

CircleCI
codecov
npm
npm
npm
Chat
Backers on Open Collective
Sponsors on Open Collective

RMWC - React Material Web Components

RMWC is a React UI Kit built on Google's official Material Components Web library v3.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

Like this project? Try out some of my others ?

Recent updates

v6.0.0 is coming!

TL;DR

  • npm i rmwc@next or npm i @rmwc/button@next.
  • Coming out sometime early spring

Since the creation of RMWC, React and Javascript have continued their blazing pace of change. For context, this project was initially written in FlowTyped with a bunch of classes, and Google's part was plain old JS. Fast forward 2.5 years and React has undergone a paradigm shift with hooks while Typescript continues to expand... Also, a while back, Google released their own React wrapper that was very similar to this project. It was recently declared abandonware which has lead to an increase in interest in RMWC since it should be a relatively simple migration. Needless to say, RMWC needs some love! It's time for some spring cleaning.

The goals of V6 are simple.

  • A full internal API rewrite to hooks
  • A full internal conversion of components to idiomatic functional React components. Currently there is an abstraction called 'componentFactory' which is a barrier to entry for 3rd party contributors. With this change, anyone wanting to contribute should be able to jump in and get going.
  • Removal of all existing deprecations.
  • Smaller bundle size
  • Better performance
  • Some new components :)
  • More exhaustive testing

Will it be hard to migrate?

  • No, breaking changes will still be kept to a minimum and documented in the migration guide / changelog
  • The removal of previously deprecated features will always be considered a breaking change.
  • While unit test coverage is fairly high, the change in paradigm from classes to hooks does open up the possibility for unexpected bugs.
  • Some of the more enterprising folks that have hacked around the internals of this library to fix or subvert behaviors, so those hacks can't be guaranteed to continue working.

Feel free to kick the tires and get in any feature requests or bugs in the meantime. 5.7.x will continue to receive minor patches and bugfixes until the v6 release.

v5.7.2 is a maintenance release fixing a few non critical bugs

v5.7.0 is out with some great new features and fixes!

  • A new Tooltip component has been added
  • The Typography component can now use semantic tags defined by RMWCProvider
  • Added a fading tab transition as well as tab indicators
  • Bugfixes for Selects, Sliders, Lists, and Chips
  • Updated all dependencies
  • See the changelog for more details.

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 or yarn 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]










主要指標

概覽
名稱與所有者rmwc/rmwc
主編程語言JavaScript
編程語言JavaScript (語言數: 5)
平台
許可證MIT License
所有者活动
創建於2017-08-15 11:55:31
推送於2025-06-30 18:35:13
最后一次提交2025-06-30 18:35:12
發布數285
最新版本名稱v14.3.5 (發布於 2024-10-24 08:01:03)
第一版名稱v0.0.1-alpha1 (發布於 2017-09-08 19:10:02)
用户参与
星數1.7k
關注者數29
派生數150
提交數3.5k
已啟用問題?
問題數666
打開的問題數25
拉請求數576
打開的拉請求數9
關閉的拉請求數415
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?