Material-UI Styled Componentsを使用したテーマ付きコンポーネントの作成方法


  1. プロジェクトのセットアップ: Material-UIとStyled Componentsをインストールします。以下のコマンドを使用します。

    npm install @mui/material styled-components
  2. テーマの作成: Material-UIのテーマを作成します。テーマは、アプリケーション全体のデザインに関する設定を提供します。以下は例です。

    // theme.js
    import { createTheme } from '@mui/material';
    const theme = createTheme({
     palette: {
       primary: {
         main: '#f44336',
       },
       secondary: {
         main: '#3f51b5',
       },
     },
    });
    export default theme;
  3. Styled Componentsを使用したコンポーネントの作成: Styled Componentsを使って、テーマを適用したコンポーネントを作成します。以下は例です。

    // Button.js
    import styled from 'styled-components';
    import { Button } from '@mui/material';
    const StyledButton = styled(Button)`
     /* Styled Componentsのスタイルを定義します */
     color: ${({ theme }) => theme.palette.primary.main};
     background-color: ${({ theme }) => theme.palette.secondary.main};
    `;
    export default StyledButton;
  4. テーマのプロバイダーの設定: アプリケーションのルートコンポーネントで、テーマのプロバイダーを設定します。これにより、コンポーネント内でテーマが利用可能になります。

    // App.js
    import React from 'react';
    import { ThemeProvider } from '@mui/material/styles';
    import theme from './theme';
    import StyledButton from './Button';
    const App = () => {
     return (
       <ThemeProvider theme={theme}>
         <StyledButton>テーマ付きボタン</StyledButton>
       </ThemeProvider>
     );
    };
    export default App;

これで、Material-UIのテーマとStyled Componentsを使用してテーマ付きのコンポーネントを作成することができます。この例では、ボタンのテキストの色と背景色をテーマの設定に基づいて変更しています。他のコンポーネントでも同様にテーマを利用することができます。

この方法を応用して、さまざまなコンポーネントを作成し、テーマの設定に基づいてデザインを一貫させることができます。また、テーマの設定を変更することで、アプリケーション全体の見た目を簡単に変更することもできます。

上記のコード例はReactを使用していますが、Material-UIとStyled Componentsは他のフレームワークとも組み合わせて使用することができます。