/react-materialize

Material design for react, powered by materializecss

Primary LanguageJavaScriptMIT LicenseMIT

React Materialize

Join the chat at https://gitter.im/react-materialize/react-materialize Build Status npm version JavaScript Style Guide

Material design components for react, powered by materializecss.

Install

npm install react-materialize

Use

HTML Setup (from materializecss)

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="http://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css">
  </head>
  <body>
    <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/js/materialize.min.js"></script>
    <script src="path/to/your/bundle.js"></script>
  </body>
</html>

JS (ES6)

import { Button, Card, Row, Col } from 'react-materialize';

Docs && Examples

See documentation for live examples. Try out the boilerplate.

Known issues

Create React App

If you are getting errors like $ is not defined or $(...).modal is not a function when using with create-react-app, you'll need to downgrade to react15 (as we don't support react16 yet):

yarn add react@15.x react-dom@15.x

Now add jquery and materialize-css to public/index.html via CDN:

<head>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/css/materialize.min.css" rel="stylesheet">
</head>
<body>
    <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.98.0/js/materialize.min.js"></script>

</body>

How does it compare to X.Y.Z?

The main goal of this project is to provide react component for materializecss, at the current stage, I am trying to implement all possible widgets that are supported by materializecss. Please create an issue on github if you find you desired component is not available.

There are other material design components for react.js, e.g. material-ui, which is more mature and popular than this one. The main advantage of this project over e.g. material-ui is that it provides a grid system similar to react-bootstrap. Another advantage over material-ui is that react-materialize does not include css in the js - which can be cumbersome to some project's architecture.

Contributions

Yes, please!

We have a help-wanted label in the issues page for convenience