📘

Tailwind CSSとStyled ComponentsをReactで併用する

2023/10/02に公開

Tailwind CSS と Styled Components は、フロントエンド開発において人気のあるスタイリングのツールです。
今回は、これらを React の環境で併用する方法を解説します。

1:Global Styles の適用

Tailwind のリセットスタイルやベーススタイルを全体に適用します。

// styles/GlobalStyles.tsx
import { createGlobalStyle } from "styled-components";

const GlobalStyle = createGlobalStyle`
  @import 'tailwindcss/base';
  @import 'tailwindcss/components';
  @import 'tailwindcss/utilities';
`;

export default GlobalStyle;

2:Styled Components で Tailwind のクラスを利用

以下の例では、Styled Components 内で@apply ディレクティブを使用して Tailwind のユーティリティクラスを適用しています。

// components/Button.tsx
import styled from "styled-components";

const Button = styled.button`
  @apply bg-blue-500 text-white py-2 px-4 rounded;
`;

export default Button;

3:React コンポーネントでの使用

Tailwind と Styled Components が組み合わされた Button コンポーネントを React 内で利用します。

// components/App.tsx
import React from "react";
import Button from "./Button";
import GlobalStyle from "../styles/GlobalStyles";

const App: React.FC = () => {
  return (
    <div className="App">
      <GlobalStyle />
      <Button>Click Me!</Button>
    </div>
  );
};

export default App;

このようにして、React と TypeScript の環境下で Tailwind と Styled Components を併用することが可能です。
ただし、@apply は全ての Tailwind ユーティリティクラスをサポートしているわけではありませんので、注意が必要です。

これにより、React と TypeScript のプロジェクト内で、
Tailwind のユーティリティファーストのアプローチと Styled Components の CSS-in-JS のアプローチの双方のメリットを活用することができます。

Discussion