react-md

React material design

Github星跟踪图

react-md codecov Build Status PRs Welcome Join the chat at Slack Donate

v2 is still in alpha, but nearing completion. Please see the v1 documentation site and branch until then.

Create an accessible React application with the
material design specifications and Scss.

  • Installing packages - How to
    install related components and packages within react-md for building your
    application
  • Creating a new app - How to
    create a new app with react-md
  • Working from v1 - How to use
    migrate from v1 of react-md to v2.
  • Customizing your theme -
    How to implement a different theme for your React application
  • Full documentation - All the remaining documentation
    along with every single guide, API Reference, and examples
  • Library Size - The UMD bundle size for the entire react-md
    library and sizes for some of the pre-built css files.

Highlights/Features

  • Matches the accessibility guidelines from
    www.w3.org
  • Low level customizable components
  • Easily themeable on a global and component level
  • Uses css variables for dynamic themes with fallbacks for older browsers
  • Out of the box dark theme mode support
  • Out of the box left-to-right and right-to-left language support
  • UMD Bundles and pre-compiled css available on https://unpkg.com (see more
    information
    here)
  • Written and maintained in Typescript

Creating a new project

First use create-react-app to create your project:

$ npx create-react-app my-app
$ cd my-app
$ npm start

npx comes with npm 5.2+ and higher, if you have an older version you will need
to install create-react-app globally instead

Or with yarn:

$ yarn create react-app my-app
$ cd my-app

NOTE: You can also add the --typescript flag to bootstrap a react-app with
typescript support

Next, install react-md and node-sass:

$ npm install --save react-md node-sass

Next, create a src/App.scss file to include all the react-md styles and
import the App.scss file in the src/App.js:

@import "~react-md/dist/scss/react-md";

// this will include all the styles from react-md
@include react-md-utils;
 import React from 'react';
 import logo from './logo.svg';
 import './App.css';
+import './App.scss';

Finally, update the public/index.html to include the Roboto font and the
Material Icons font icons stylesheets from Google fonts:

     <meta charset="utf-8" />
     <link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico" />
     <meta name="viewport" content="width=device-width, initial-scale=1" />
     <meta name="theme-color" content="#000000" />
     <!--
       manifest.json provides metadata used when your web app is installed on a
       user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
     -->
     <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
+    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700, Material+Icons">
     <!--
       Notice the use of %PUBLIC_URL% in the tags above.
       It will be replaced with the URL of the `public` folder during the build.
       Only files inside the `public` folder can be referenced from the HTML.

       Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
       work correctly both with client-side routing and a non-root public URL.
       Learn how to configure a non-root public URL by running `npm run build`.
     -->
     <title>React App</title>
   </head>
-  <body>
+  <body class="rmd-typography">

Once you have the styles, fonts, and font icons setup, you can start creating
components from react-md. It is generally recommended to update your base
src/App.js to include some default configuration components:

 import React from 'react';
-import logo from './logo.svg';
-import './App.css';
-import './App.scss';
-
-function App() {
-  return (
-    <div className="App">
-      <header className="App-header">
-        <img src={logo} className="App-logo" alt="logo" />
-        <p>
-          Edit <code>src/App.js</code> and save to reload.
-        </p>
-        <a
-          className="App-link"
-          href="https://reactjs.org"
-          target="_blank"
-          rel="noopener noreferrer">
-          Learn React
-        </a>
-      </header>
-    </div>
-  );
-}
+import {
+  Configuration,
+  Layout,
+  useLayoutNavigation,
+  Text,
+  Button,
+} from 'react-md';
+import './App.scss';
+
+// see @react-md/layout package for info on the main navigation
+const routes = {};
+function App() {
+  return (
+    <Configuration>
+      <Layout
+        {...useLayoutNavigation(routes, pathname)}
+        appBarTitle="My App"
+        navHeaderTitle="My App"
+      >
+        <Text type="headline-4">Hello, world!</Text>
+        <Button theme="primary">Example button</Button>
+      </Layout>
+    </Configuration>
+  );
+}

export default App;

More information can be found on the documentation site's page
about creating projects

Library Size

The base react-md package (non-scoped) is the only package that also provides
pre-built css themes and a UMD bundle. If you are interested in seeing what an
estimated size for this library, check out the results below:

$ yarn dev-utils libsize

The gzipped UMD bundle size is:
 - dist/umd/react-md.production.min.js 55 B

The min and max gzipped CSS bundle sizes are:
 - dist/css/react-md.red-lime-100-light.min.css 61 B
 - dist/css/react-md.deep_orange-blue_grey-100-light.min.css 76 B

Contributing

Please read the contributing guidelines if you
would like to contribute.

主要指标

概览
名称与所有者mlaursen/react-md
主编程语言TypeScript
编程语言JavaScript (语言数: 5)
平台
许可证MIT License
所有者活动
创建于2015-11-23 19:39:04
推送于2025-06-03 21:33:39
最后一次提交
发布数281
最新版本名称react-md@6.1.0 (发布于 2025-05-30 17:53:53)
第一版名称v0.0.2 (发布于 2016-01-24 19:42:55)
用户参与
星数2.3k
关注者数53
派生数299
提交数6.5k
已启用问题?
问题数722
打开的问题数17
拉请求数426
打开的拉请求数0
关闭的拉请求数315
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?