MENU

ReactでマテリアルUIの環境構築

目次

はじめに

今回はReactでマテリアルUIの環境構築をする手順について説明します。

基本公式通りです。

あわせて読みたい
MUI: The React component library you always wanted MUI provides a simple, customizable, and accessible library of React components. Follow your own design system, or start with Material Design.

実装

create-react-appでプロジェクトを作成する

yarn create react-app my-app
cd my-app
yarn start

上記のコマンドでプロジェクトを作成しましょう。

マテリアルUIと必要なライブラリをインストール

package.jsonのある階層で以下のコマンドを叩きます。

yarn add @mui/material @emotion/react @emotion/styled

これでインストール完了です。

ボタンを表示させてみる

- import logo from './logo.svg';
import './App.css';
+ import Button from '@mui/material/Button';

function App() {
  return (
    <div className="App">
+      <Button sx={{ m: 5 }} variant="contained">Hello World</Button>
-      <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>
  );
}

export default App;

上記のようにファイルを修正しhttp://localhost:3000/にアクセスします。

下記のように表示されれば成功です。

リセットCSSの設定

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
+ import CssBaseline from '@mui/material/CssBaseline';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
+    <CssBaseline />
    <App />
  </React.StrictMode>
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

これにてリセットCSSが導入されました。

グローバルCSSの設定

srcの下に「plugins」というフォルダを作成しその中に、「mui.js」を作成します。
以下のようにファイルに記載してください。

import { orange } from '@mui/material/colors';
import { createTheme } from '@mui/material/styles';

const theme = createTheme({
    palette: {
        // primaryの色を設定
        primary: {
            main: orange[300],
        },
    },
    components: {
        // ボタンのデザインを設定
        MuiButton: {
            styleOverrides: {
                containedPrimary: {
                    color: 'white',
                    borderRadius: 0,
                },
            },
        },
    },
});

export default theme;

ボタンのデザインやカラーをグローバルに設定しました。

以下のファイルを修正してください。

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import CssBaseline from '@mui/material/CssBaseline';
+ import { ThemeProvider } from "@mui/material/styles";
+ import theme from './plugins/mui'

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
+    <ThemeProvider theme={theme}>
      <CssBaseline />
      <App />
+    </ThemeProvider>
  </React.StrictMode>
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

これでグローバルにCSSが設定されたはずです。

http://localhost:3000/にアクセスします。

デザインが適用されていれば成功です。

おまけ

あわせて読みたい
Viteで作成したReact(typescript)アプリにeslintとprettierを導入し、huskyで確認の上コミットする。 【方針】 ・開発サーバーを起動中に、ミスがあればeslintエラーを表示してくれる。・eslint-plugin-prettierは現在非推奨のため不使用。 【手順】 viteでReact(typescri...
独学に限界を感じたら、プログラミング教室がお勧めです。
エージェントは複数登録することをお勧めします。カウンセリングを通して、業界について勉強することができます。
フリーランス転職希望の方はフリーランス専門のエージェントを利用しましょう。
独学に限界を感じたら、プログラミング教室がお勧めです。
エージェントは複数登録することをお勧めします。
カウンセリングを通して、業界について勉強することができます。
フリーランス転職希望の方はフリーランス専門のエージェントを利用しましょう
よかったらシェアしてね!
  • URLをコピーしました!
目次