Tailwind CSS で開発する際に役に立つサイトとオススメな使い方

# この記事の対象
- TailwindCSSを使ってみたい人
- TailwindCSSを使ってどうやって開発しているのか知りたい人
- TailwindCSSに関する役立つ情報を知りたい人

# 公式ドキュメント

言わずもがなですが[**公式ドキュメント**](https://tailwindcss.com/docs)は読んでおきましょう。

特に以下の**Layout**以下は使う前にさらっと流し目程度に見ておきましょう。
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440704/6cc34567-c35b-14f0-d6fd-f15ed30f12a6.png)

PCの人は左のスクロールバーのところです。

![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440704/f8d31b0f-137f-71d4-df11-a11dde6a618f.png)

スマホの人は右下のメニューボタンを開いたら出てきます。

---




以下は個人的に使ってみた所感です。

#### 公式ドキュメントの良いところ
- どういったUIになるのかが一目で分かりやすい。
- 各ページの下にカスタマイズの方法が載っているのが親切。
- ctrl+Kでの検索機能が分かりやすい。

#### 公式ドキュメントの不便なところ
- 機能ごとのまとまりが分かりにくい。
- ページを移動しないと詳細が分からないので情報へのアクセスに時間がかかる。

次は以上のような公式ドキュメントの不便さを取り除いたものを紹介します。

# チートシート

[Tailwind CheatSheet](https://tailwindcomponents.com/cheatsheet/)というサイトです。

使い方は簡単です。
**CSSでいじりたいプロパティを検索するだけ**です。

※余談ですが、CSSについて全く知らないよという方はまずはCSSの基本を押さえて、どんなプロパティを使うべきなのかをいろんなサイトを見ながら学ぶといいかもしれません。

すると以下の画像のように該当するプロパティに関するものだけを表示してくれます。
しかも、必要最低限の**Classに実際に指定する値**（text-〇〇,flex-colみたいな）だけ表示されるので開発効率が上がりまくます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440704/9f2a069e-ac61-479d-46f1-2c6d89fd4518.png)


しかも**DOCS**を押すとドキュメントの該当ページに飛べるので、カスタマイズしたい時とか見てみるといいかもしれません。


# Tailwind Components

**みんなが Tailwind CSS で作ったコンポーネント**を公開しているサイトです。
ちなみに、先ほどのチートシートもこのサイトのツールの中の一つです。

[Tailwind CSS Components](https://tailwindcomponents.com/) は、一般的なWebサイトにあるナビゲーションバーとかフォームとかを一から自分で作らずに、人のをパクッて自分の好みにカスタマイズできる点が非常に良いです。

試しに**forms**を調べてみましょう。

※ちなみに、トップページでは最近投稿されたコンポーネントや人気のコンポーネントが表示されているので、「そもそもどんなものがあるのか分からん」という方は一度見てみるのもいいかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440704/8e37f635-fadd-e617-4d75-3051540a8113.png)

検索結果はこんな感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440704/86d9d91b-5aa9-faa8-dead-5497dcefc762.png)

実際に見てみると、レスポンシブの設定もしてあったり**Show Code**を押すとコードが表示されているので、そのままコピペしていじっていくのいいですし、構造やプロパティなどを参考に自分で組み上げていくのも面白いです！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440704/053dccfd-a1ec-0ffe-d8b0-6c109fc6485a.png)

**※ただ一つ注意点としては中にはコードの中にフォントを取得しているものやAlpine.jsで書かれているものなど、特定のフレームワークやライブラリで書いているものも一定数存在しているということです。**

自分がよく目にしたのは**Alpine.js**でしたね。x-dataとかx-○○が入っているのは基本Alpine.jsなので使わない人は消しましょう。なので、当たり前ですがコピペする際はコードをよく読んで不必要なものは削除しておきましょう。

多分、Tailwind CSSを初めて触ったり他のJavaScriptのライブラリに触れていない人は気づくのに時間がかかるかもしれませんが、使っていくうちに、**これTailwind CSSとは関係ないやつやん**っていうのが自然と分かるようになります(笑)。

# Icons for Tailwind CSS

[Icons for Tailwind CSS](https://www.tailwindtoolbox.com/icons)は Tailwind Toolboxというサイトの中にある一つの機能です。ボタンとかに使用できるアイコンをsvgで提供してくれます。

色や大きさは自由に選択できます。ただ、若干数が少ないので欲しいアイコンがない場合もあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/440704/7656792c-0bef-af9d-6a00-f82bb3e08577.png)

このサイトは他にも役に立つ情報が結構いっぱい乗っているので気になる方はぜひ見てみてください。

**※ぶっちゃけTailwind CSSってClassに指定すれば動くので、SVGのIconを提供しているところならどこでもいい気がしてきました。**

[CSS.gg](https://css.gg/)
[Heroicons](https://heroicons.dev/)

こういう普通のSVGライブラリでもいいと思いますね。

※念のためですが、Tailwind ToolboxにはTailwind関係の有益な情報がたくさんあるので優先して紹介させていただきました。また、SVGを勧めているのはサイズを変化させてもキレイに描画されるからですね。SVGサイコー。


# オススメの開発手順

1. BootstrapとかMaterialUIのドキュメントのコンポーネントで実現したいコンポーネントの名前を知る。
2. Tailwind Components で1で学んだコンポーネントを検索してコピペ。 
3. チートシートを使って自分好みにアレンジ！

Tooltip,Toasts,Accordion,Modalとか見たことあるけど名前知らないやつがあるので、他のUIライブラリーのドキュメントのコンポーネントを学ぶと、けっこう参考になることが多いです。

Tailwind CSS の良いところはやっぱり全部がClassで指定されているので痒い所に手が届くというか、既存のUIライブラリーでは「もっとここをこうしたいのに・・・(*´Д｀)」というのがTailwind CSSの場合は柔軟に変更できところですね。

ただ、コードが冗長になってしまったりとかすることが多いので、「本当にそのプロパティ必要？」「コンポーネント化できないかな？」という視点は常に持ち続けた方がよさそうです。

# 最後に

この記事を読んでTailwind CSS試してみたいと思った方、ぜひ LGTM おなしゃす！
あと最近、個人開発で初めてWebアプリケーション作ったので、その記事も近日公開しますので、機会があれば読んでやってください！