【Next.js＋TailwindCSS】Next.jsにTailwindCSSを導入しtailwind.config.jsでカスタマイズする

# はじめに

TailwindCSSでコーディング時に同じ記述を何度も記述してしまい、汚くなってしまったので、繰り返し使用するクラスの作り方や使用したい色を設定する方法の一部をまとめました。

## 分かること

- バックグラウンドにしたい画像の定義
- 使いまわしたい色の定義
- \<h1>タグや\<p>タグ等、タグの基本スタイルを登録する
- クラス名を設定して装飾する

## 環境

- Next.js：11.0.2
- Tailwind CSS：2.2.15
- React：17.0.2


# Tailwind CSS について

Next.jsでtailwind.cssのプロジェクトを作成されていない方は[Next.jsにTailwindCSSを導入する方法](https://fwywd.com/tech/next-tailwind)の通りに進めると作成できます。


【参考】

https://fwywd.com/tech/next-tailwind

https://tailwindcss.com/docs/guides/nextjs



## Tailwind CSSとは？

TailwindCSSやNext.jsについての説明はこちらの記事に簡単にまとめましたので、良ければご覧ください。

https://qiita.com/takara03/items/59fc2fb81aa209b2f742



## tailwind.config.jsとは？

Tailwind CSSの設定用ファイル。パフォーマンスの最適化や、カスタマイズが簡単に行えます。

# tailwind.config.js

<font color="red">※「tailwind.config.jsの作成」から「必要に応じてスタイルを反映させる設定」までは[Next.jsにTailwindCSSを導入する方法](https://fwywd.com/tech/next-tailwind)に含まれている内容です。</font>

## tailwind.config.jsの作成

初期化しtailwind.config.js作成を行う

```terminal
# npm
npx tailwindcss init -p

# yarn
yarn tailwindcss init -p
``` 

## パフォーマンス最適化の設定

【purge】
ビルド生成時の未使用のスタイルを除外し、パフォーマンスの最適化を行う。
例は、pagesとcomponentsディレクトリ内を対象範囲とする。

```javascript:taiwind.config.js
module.exports = {
  //追記
  purge: ['./pages/**/*.{js,ts,jsx,tsx}', './components/**/*.{js,ts,jsx,tsx}'],
  darkMode: false, // or 'media' or 'class'
```

## 必要に応じてスタイルを反映させる設定

【mode】
JIT(just-in-time)modeを適用して必要に応じてスタイルを反映するため、カスタマイズが容易になる。

```javascript:taiwind.config.js
module.exports = {
  //追記
  mode: 'jit',
  purge: ['./pages/**/*.{js,ts,jsx,tsx}', './components/**/*.{js,ts,jsx,tsx}'],
  darkMode: false, // or 'media' or 'class'
```

## バックグラウンドで使用する画像の定義

以下の例は'about','future','skills'という名前で3つ背景画像を定義。
画像はpublicフォルダにimagesフォルダを作成し、そこへ格納しています。
※　最初わかりやすいように'bg-about'という名前で登録しましたが、その場合、うまく動きませんでした。

![貼り付けた画像_2021_10_24_16_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1338748/c12b28ea-0cfb-aede-13dc-59d9f7f07a7c.png)

![tailwind_config_js_—_next-tailwind.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1338748/897a0e27-6cf4-19db-8e53-b8897ff7dfe4.png)


```javascript:Main.jsx
//背景画像className指定例：bg-〇〇
<section id="about" className="bg-about bg-cover py-14 text-center">

</section>
```

## 汎用的に使えるように色を設定する

何度も使用したい色のコードを定義し、簡単に設定できるようにする。
classNameの指定の仕方は文字・背景等の色指定と同じです。

![tailwind_config_js_—_next-tailwind.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1338748/97ca8bb8-d322-ee63-e67b-781afebdce5f.png)

## ベーススタイルの設定 (style.css)

繰り返し使用するスタイルの設定。
同じパターンの使い回しを何度も記述するのは、見づらく大変なので、これを使用することで、だいぶスッキリとした印象です。
※　style.cssに記述しています。

![style_css_—_next-tailwind.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1338748/6d359300-3b95-48cf-8fef-b9037e4cab50.png)



# その他　参考サイト一覧

- [Trailwind　CSSの導入](https://zenn.dev/chabatake_i/articles/tailwindcss_introduction)
- [ベーススタイルを追加する](https://tailwindcss.jp/docs/adding-base-styles)
- [コンポーネントの抽出](https://tailwindcss.jp/docs/extracting-components)
- [Configuration](https://tailwindcss.com/docs/configuration)
- [Using with Preprocessors](https://tailwindcss.com/docs/using-with-preprocessors)
- [Functions & Directives](https://tailwindcss.com/docs/functions-and-directives)






# まとめ

初め、とりあえずただひたすらに記述していったため、コードがわかりにくくなってしまいました。
一通り簡単に記述してから、ベーススタイルの設定等を行い、修正したためもっと早い段階で理解できていたら効率よくプログラミングができていたと思います。

同じような方のお役に少しでも立てたら嬉しいです！
次からはもう少し、効率よくきれいに書けるようになってる気がします...!!