ベイジではウェブアプリのモック実装やJSのフレームワークでフロントエンド実装をすることが多いです。
フレームワークでの案件が徐々に増えていくにつれ、様々なJSフレームワークに合わせてCSSをマークアップすることが大変で、課題となっています。これらを解決するためにTailwind CSSを導入することを検討しました。
結果的にはアプリのフロントエンド実装にはとてもメリットがあり、課題を解決することもできました。Tailwind CSSの具体的な機能と、実際に導入してみての感想をご紹介します。
Tailwind CSSはユーティリティファーストのCSSフレームワークです。個別にCSSを記述する必要がなく、決められたユーティリティクラスをhtmlに追加するだけでスタイリングが可能です。一般的なCSSの書き方との違いは以下のコードで説明します。
<button class="button" type="button">
ラベル
</button>
このように、先にCSSのクラス名を決めて、そのクラスに合わせてスタイルを追加して行くのが一般的です。
<button class="font-bold items-center justify-center inline-flex duration-300 border-solid rounded bg-primary-100 text-white hover:bg-primary-hover" type="button">
ラベル
</button>
Tailwind CSSはhtmlに直接ユーティリティクラスを組み合わせるだけでスタイリングします。そして、スタイルを編集する場合も特定のCSSクラスを更新してデザインの調整を行います。
Tailwind CSSを使う前は実装の難易度が高く、使いにくいのではと考えていましたが、実際には学習コストは低く、慣れると実装の効率がよくなったと感じました。
実際に導入してみてのメリットは以下のとおりです。
要素に直接ユーティリティクラスを追加してスタイリングするので、付与するクラスの量が非常に多くなり、可読性がとても落ちてしまいます。特にパーツを再利用することが多い場合は不向きです。(後述する@applyを用いることでこのような問題の解決ができます)
その他、Tailwind CSSを使うことで便利に感じた機能を紹介します。
テーマの設定を行うことで、デザインルールに合わせてカラー、余白、その他プロパテを登録することが可能です。
▼tailwind.config.js
module.exports = {
// テーマの設定
theme: {
// BreakPoint
screens: {
'sm': '375px',
'md': '768px',
'lg': '1024px',
'xl': '1200px',
'2xl': '1200px',
},
// Colors Platte
colors: {
primary: {
'hover': '#677cf0',
'150': '#6871a6',
'100': '#293576',
'70': '#7b83ad',
'40': '#99A5AD',
'30': '#c1c6d9',
'10': '#f2f4fc',
},
},
....
},
}
不要なCSSは残っているとパフォーマンスの低下につながりますが、Tailwind CSS側で自動的に使用していないユーティリティクラスを探し出して、削除してくれる機能があります。
▼tailwind.config.js
module.exports = {
// 監視する箇所を設定
content: [
"./public/**/*.{html, js}",
],
}
ユーティリティクラスが大量についたパーツを何度も再利用するとHTMLの可読性が落ちてしまいます。そこで@apply
の機能を使用します。@apply
は以下のように複数のユーティリティクラスを一つのクラスにまとめて指定することができます。
▼style.css
.button {
@apply font-bold items-center justify-center inline-flex ....
}
便利で使いやすいTailwind CSSですが、膨大なユーティリティクラスを覚えて開発するのは大変です。そのため、VSCodeに以下のプラグインをインストールして開発することをおすすめします。
Tailwind CSS IntelliSense
ユーティリティクラスの候補を表示してくれるなどの入力アシスタント機能です。
ユーティリティクラスの順番をルール通りに自動で再配置してくれます。
VSCode内でTailwind CSSの属性クラスを確認できます。
VSCodeで検索したクラス属性からTailwind CSSの公式ドキュメントの該当ページを開いてくれます。
Tailwind CSSは人気がだんだん高まっていて、JSフレームワークを主に使うウェブアプリではとても便利で、実装の効率が上がります。ただ、通常のウェブサイトの開発においては使うメリットはそこまでないと個人的に感じており、使い所を見極める必要があります。