Material-UIのCSSを上書きする方法


  1. グローバルCSSの上書き: Material-UIでは、グローバルなCSSを上書きするためのテーマオブジェクトを提供しています。これを使用して、アプリケーション全体のスタイルを変更することができます。
import { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';
const theme = createMuiTheme({
  overrides: {
    // グローバルなスタイルの上書き
    MuiButton: {
      root: {
        background: 'red',
        color: 'white',
      },
    },
  },
});
function App() {
  return (
    <ThemeProvider theme={theme}>
      {/* アプリケーションのコンポーネント */}
    </ThemeProvider>
  );
}

上記の例では、MuiButtonコンポーネントのルート要素の背景色とテキスト色を上書きしています。

  1. コンポーネントのスタイルの上書き: Material-UIの各コンポーネントには、クラスネームを指定してスタイルを上書きするオプションがあります。
import { makeStyles } from '@material-ui/core/styles';
import Button from '@material-ui/core/Button';
const useStyles = makeStyles({
  customButton: {
    background: 'red',
    color: 'white',
  },
});
function App() {
  const classes = useStyles();
  return (
    <Button className={classes.customButton}>
      カスタムボタン
    </Button>
  );
}

上記の例では、customButtonクラスを使用してボタンのスタイルを上書きしています。

  1. CSS-in-JSライブラリの使用: Material-UIはCSS-in-JSライブラリである@emotion/reactstyled-componentsと組み合わせて使用することもできます。これにより、より高度なスタイルのカスタマイズが可能になります。
import { styled } from '@mui/system';
const CustomButton = styled('button')({
  background: 'red',
  color: 'white',
});
function App() {
  return <CustomButton>カスタムボタン</CustomButton>;
}

上記の例では、@mui/systemパッケージを使用してstyled関数をインポートし、カスタムボタンのスタイルを定義しています。

これらはMaterial-UIのCSSを上書きするいくつかの一般的な方法です。プロジェクトの要件や好みに応じて、適切な方法を選択してください。