CSSフレームワークであるTailwind CSSの特徴とBootstrapとの違いについて
あるサイトをWappalyzerで調査していた際にUIフレームワークがTailwind CSSになっていた。Bootstrapだとよく見るけどTailwind CSSというのは初めて見たので何なのか調べてみるとCSSのフレームワークとのこと。以下に簡単な特徴、Bootstrapとの違い等をメモ。
公式サイト
公式サイト
CDN
https://tailwindcss.com/docs/installation/play-cdn
特徴について
CSSフレームワークになりBootstrapとの違いは以下の通り。
汎用classのみ用意されており組み合わせて使う必要あり
ここが大きな違いでBootstrapだとボタンやアラート等、部品ごとにClassが用意されていたがTailwind CSSは汎用Classのみ用意されており、それらを組み合わせて記述する必要がある。そのためある程度CSSの知識が必要になりそう。
メリットとしてBootstrapよりデザインにオリジナリティを出しやすい(Bootstrapは似たデザインになりがち)。
デメリットとしてはある程度CSSの知識が必要になりそうな点と、Bootstrapよりソースコードが長くなりそうな点。
例えばだけど公式サイトを参考にサンプルページを作成したところ、以下のようなソースコードとなりClass部分の記述がBootstrapに比べて多い。
<html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Tailwind CSSのサンプル</title> <script src="https://cdn.tailwindcss.com"></script> </head> <body> <div class="container"> <form class="w-full mt-5"> <div class="flex flex-wrap -mx-3 mb-6"> <div class="w-full md:w-1/2 px-3 mb-6 md:mb-0"> <label class="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2" for="grid-first-name"> First Name </label> <input class="appearance-none block w-full bg-gray-200 text-gray-700 border border-red-500 rounded py-3 px-4 mb-3 leading-tight focus:outline-none focus:bg-white" id="grid-first-name" type="text" placeholder="Jane"> <p class="text-red-500 text-xs italic">Please fill out this field.</p> </div> <div class="w-full md:w-1/2 px-3"> <label class="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2" for="grid-last-name"> Last Name </label> <input class="appearance-none block w-full bg-gray-200 text-gray-700 border border-gray-200 rounded py-3 px-4 leading-tight focus:outline-none focus:bg-white focus:border-gray-500" id="grid-last-name" type="text" placeholder="Doe"> </div> </div> <div class="flex flex-wrap -mx-3 mb-6"> <div class="w-full px-3"> <label class="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2" for="grid-password"> Password </label> <input class="appearance-none block w-full bg-gray-200 text-gray-700 border border-gray-200 rounded py-3 px-4 mb-3 leading-tight focus:outline-none focus:bg-white focus:border-gray-500" id="grid-password" type="password" placeholder="******************"> <p class="text-gray-600 text-xs italic">Make it as long and as crazy as you'd like</p> </div> </div> <div class="flex flex-wrap -mx-3 mb-2"> <div class="w-full md:w-1/3 px-3 mb-6 md:mb-0"> <label class="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2" for="grid-city"> City </label> <input class="appearance-none block w-full bg-gray-200 text-gray-700 border border-gray-200 rounded py-3 px-4 leading-tight focus:outline-none focus:bg-white focus:border-gray-500" id="grid-city" type="text" placeholder="Albuquerque"> </div> <div class="w-full md:w-1/3 px-3 mb-6 md:mb-0"> <label class="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2" for="grid-state"> State </label> <div class="relative"> <select class="block appearance-none w-full bg-gray-200 border border-gray-200 text-gray-700 py-3 px-4 pr-8 rounded leading-tight focus:outline-none focus:bg-white focus:border-gray-500" id="grid-state"> <option>New Mexico</option> <option>Missouri</option> <option>Texas</option> </select> <div class="pointer-events-none absolute inset-y-0 right-0 flex items-center px-2 text-gray-700"> <svg class="fill-current h-4 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path d="M9.293 12.95l.707.707L15.657 8l-1.414-1.414L10 10.828 5.757 6.586 4.343 8z"/></svg> </div> </div> </div> <div class="w-full md:w-1/3 px-3 mb-6 md:mb-0"> <label class="block uppercase tracking-wide text-gray-700 text-xs font-bold mb-2" for="grid-zip"> Zip </label> <input class="appearance-none block w-full bg-gray-200 text-gray-700 border border-gray-200 rounded py-3 px-4 leading-tight focus:outline-none focus:bg-white focus:border-gray-500" id="grid-zip" type="text" placeholder="90210"> </div> </div> </form> </div> </body> </html>
JavaScript不要のため軽量
Bootstrapだと以下のようにJSファイルも読み込む必要があるが、Tailwind CSSは不要なため軽量。
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
所感
Tailwind CSSはデザインにオリジナリティが出しやすいもののCSSの知識が必要なため、フロント側の作業をする人に向いてるんじゃないかと思う。自分としてはあまりCSSの知識があるとは言えないので引き続きBootstrapを使用する形になりそう。
関連記事
-
tableのtd内にあるcheckboxのクリック範囲を拡大させ、チェック時に親要素であるtdにCSSを割り当てる方法
tableのtd内にcheckboxを設置し、td部分をクリックすることでche ...
-
CSSのdisplayについて
よく使うdisplayだけれども、noneとblock以外で 初めて使うことがあ ...
-
要素の表示or非表示
今まで要素の表示or非表示をCSSで操作する際、 display:none; / ...
-
LINE風のふきだしデザイン
LINE風のふきだしデザインでページを作ってほしいと言われた。 CSSはあまり理 ...
-
videoタグで表示させた動画をjQuery&CSSでフローティングビデオ対応させる方法
Web上の動画をFloatingVideo対応したいという要望を受けた。ページ上 ...