React Components that Implement Google's Material Design.
JavaScript
Latest commit a7dbb18 Jan 22, 2017 @mbrookes mbrookes committed on GitHub [Docs] Add source-code IconButton to Showcase (#5980)
Add source-code IconButton to Showcase
Prioritise open source projects
Remove dead site
Permalink
Failed to load latest commit information.
.github [style] Fix user-agent all with display flex Jan 14, 2017
docs [Docs] Add source-code IconButton to Showcase (#5980) Jan 22, 2017
examples [Examples] Updated both examples to latest push Aug 10, 2016
packages Move `material-ui-babel-es2015-preset` from `packages` to `tools` Nov 13, 2016
scripts Add custom `babel-es2015-preset`, Transpile `index.js` file with `babel` Nov 12, 2016
src Merge pull request #5941 from GusRuss89/patch-1 Jan 17, 2017
test [TableBody] Fix row selection re-render Jan 10, 2017
tools Move `material-ui-babel-es2015-preset` from `packages` to `tools` Nov 13, 2016
.babelrc Move `material-ui-babel-es2015-preset` from `packages` to `tools` Nov 13, 2016
.editorconfig [Core] Use .js extension instead of .jsx Mar 22, 2016
.eslintignore [eslint] Ignore coverage reports Feb 24, 2016
.eslintrc.js Fixed typo in .eslintrc.js Sep 28, 2016
.gitattributes Add gitattributes Dec 12, 2014
.gitignore [Git] Ignore jsconfig.json (VSCode config file) Apr 15, 2016
.gitmodules [Examples] Move to own repositories Jun 25, 2016
.istanbul.yml [Tests] Reorg of karma tests and coverage setup, add jsdom, resolves #… Apr 27, 2016
.travis.yml [travis] Update travis config to exit early on errors and only run co… May 19, 2016
CHANGELOG.md [Docs] Add v0.16.7 to versions.json Jan 15, 2017
CONTRIBUTING.md [style] Fix user-agent all with display flex Jan 14, 2017
LICENSE Initial commit Aug 18, 2014
README.md [README] Fix broken line return Jan 14, 2017
ROADMAP.md [release] v0.16.7 Jan 15, 2017
package.json chore(package): update fs-extra to version 2.0.0 Jan 16, 2017

README.md

Note

For how-to questions and other non-issues, please use StackOverflow instead of Github issues. There is a StackOverflow tag called "material-ui" that you can use to tag your questions.

Material-UI

npm package Build Status Gitter Coverage Status

PeerDependencies Dependencies DevDependencies

Material-UI is a set of React components that implement Google's Material Design specification.

Check out our documentation site for live examples. It's still a work in progress, but hopefully you can see where we're headed.

Recently Updated? Please read the changelog, this README and the documentation before posting an issue.

Required Knowledge

We recommend that you get to know React before diving into material-ui. Material-UI is a set of React components, so understanding how React fits into web development is important.

(If you're not familiar with Node, or with the concept of Single Page Applications (SPAs), head over to the documentation website for a quick introduction before you read on.)

Installation

Material-UI is available as an npm package.

Stable channel

npm install material-ui

Pre-release channel

npm install material-ui@next

Please note that @next will only point to pre-releases; to get the latest stable release use @latest instead.

React-Tap-Event-Plugin

Some components use react-tap-event-plugin to listen for touch events because onClick is not fast enough This dependency is temporary and will eventually go away. Until then, be sure to inject this plugin at the start of your app.

import injectTapEventPlugin from 'react-tap-event-plugin';

// Needed for onTouchTap
// http://stackoverflow.com/a/34015469/988941
injectTapEventPlugin();

Roboto Font

Material-UI was designed with the Roboto font in mind. So be sure to include it in your project. Here are some instructions on how to do so.

Usage

Beginning with v0.15.0, Material-UI components require a theme to be provided. The quickest way to get up and running is by using the MuiThemeProvider to inject the theme into your application context. Following that, you can use any of the components as demonstrated in the documentation.

Here is a quick example to get you started:

./App.js

import React from 'react';
import ReactDOM from 'react-dom';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
import MyAwesomeReactComponent from './MyAwesomeReactComponent';

const App = () => (
  <MuiThemeProvider>
    <MyAwesomeReactComponent />
  </MuiThemeProvider>
);

ReactDOM.render(
  <App />,
  document.getElementById('app')
);

./MyAwesomeReactComponent.js

import React from 'react';
import RaisedButton from 'material-ui/RaisedButton';

const MyAwesomeReactComponent = () => (
  <RaisedButton label="Default" />
);

export default MyAwesomeReactComponent;

Please refer to each component's documentation page to see how they should be imported.

Customization

We have implemented a default theme to render all Material-UI components. Styling components to your liking is simple and hassle-free. This can be achieved in the following two ways:

Examples

There are 2 projects that you can look at to get started. They can be found in the examples folder. These projects are basic examples that show how to consume material-ui components in your own project. The first project uses browserify for module bundling and gulp for JS task automation, while the second project uses webpack for module bundling and building.

The source code for this documentation site is also included in the repository. This is a slightly more complex project that also uses webpack, and contains examples of every material-ui component. Check out the docs folder for build instructions.

Roadmap

The future plans and high priority features and enhancements can be found in the ROADMAP.md file.

Contribute

Material-UI came about from our love of React and Google's Material Design. We're currently using it on a project at Call-Em-All and plan on adding to it and making it better. If you'd like to help, check out the docs folder. We'd greatly appreciate any contribution you make. :)

Thanks

Thank you to BrowserStack for providing the infrastructure that allows us to test material-ui in real browsers.

License

This project is licensed under the terms of the MIT license