Open16

Tailwind CSSスニペット

MAAAAAAAAAAAMAAAAAAAAAAA
そもそもTailwind CSSとは

導入:

Tailwind CSSは近年人気が高まっているユーティリティファーストのCSSフレームワークです。従来のCSSフレームワークとは異なり、コンポーネントベースではなく、低レベルなスタイルユーティリティクラスを組み合わせて styling を行います。この手法には一長一短がありますが、適切に活用すれば開発の効率化や保守性の向上が期待できます。

本記事では、Tailwind CSSの概要から具体的な使い方、メリット・デメリットまでを解説します。Tailwind CSSに興味がある方は、ぜひ参考にしてみてください。

本論:

  1. Tailwind CSSとは?

Tailwind CSSは、low-levelなスタイルユーティリティクラスを組み合わせることでスタイリングを行うCSSフレームワークです。例えば .text-red-500 はテキストの色を設定し、 .mt-4 は上のマージンを設定するクラスになります。

<div class="text-red-500 mt-4">
  Hello, Tailwind CSS!
</div>

このように、HTMLの要素にクラスを直接割り当ててスタイリングします。伝統的なCSSフレームワークとは異なり、予めデザインされたコンポーネントはありません。

  1. メリット・デメリット

Tailwind CSSを利用するメリットは以下の通りです。

  • 再利用可能なスタイルユーティリティクラスを自由に組み合わせられる柔軟性がある
  • クラスベースでスタイルを切り分けられるため保守性が高い
  • デフォルトのスタイリングがないため、カスタマイズしやすい

一方、デメリットは以下になります。

  • HTMLにスタイルの情報が含まれるため可読性が低下する可能性がある
  • スタイルユーティリティクラスの量が膨大になりがちで管理が難しい
  • 高度な設計が必要になるため、初心者には馴染みにくい
  1. 導入方法

Tailwind CSSを使うための準備として、まずNode.jsをインストールする必要があります。次にCLIツールを使ってTailwind CSSをプロジェクトに導入します。

# tailwind install
npm install -D tailwindcss
npx tailwindcss init

初期設定ファイル tailwind.config.js が生成されるので、content オプションにスタイリングする対象ファイル(.htmlなど)を指定します。

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./src/**/*.{html,js}"],
  theme: {
    extend: {},
  },
  plugins: [],
}

次に src/input.css を作成し、Tailwindの機能をインポートします。

@tailwind base;
@tailwind components;
@tailwind utilities;

最後にビルドコマンドを実行するとCSSファイルが出力されます。

npx tailwindcss -i ./src/input.css -o ./dist/output.css --watch
  1. 実践的な使い方

Tailwind CSSの具体的な使い方を、サンプルとともに解説します。

テキストスタイリング

<!-- 文字色 -->
<p class="text-red-500">赤色のテキスト</p>

<!-- 文字サイズ -->
<p class="text-sm">小さいテキスト</p>
<p class="text-lg">大きいテキスト</p>

<!-- 文字の太さ -->
<p class="font-bold">太字のテキスト</p>

<!-- 装飾 -->
<p class="underline">下線付きのテキスト</p>

配置と間隔

<!-- 水平方向の中央配置 -->
<div class="mx-auto w-48">中央に配置されたボックス</div>

<!-- マージン -->
<div class="mt-4">上に余白が4単位ある</div>

<!-- パディング -->
<div class="p-2">内側に余白が2単位ある</div>

<!-- 配置 -->
<div class="flex justify-between">
  <span>左端</span>
  <span>右端</span>
</div>

レスポンシブデザイン

<!-- スクリーンサイズに応じてフォントサイズを変更 -->
<p class="text-sm md:text-base lg:text-lg xl:text-xl">
  レスポンシブなテキスト
</p>

Tailwind CSSではスクリーンサイズの閾値ごとにブレークポイントを設定できます。上記の例では sm (640px未満)、md (768px以上)、lg (1024px以上)、xl (1280px以上) でフォントサイズが変わります。

様々なユーティリティクラスを組み合わせながら、こういった方法で柔軟なスタイリングが可能になります。

  1. Tailwind CSSを学ぶリソース

Tailwind CSSを学習するために役立つリソースを紹介します。

公式サイト

  • https://tailwindcss.com/

    Tailwind CSSの公式サイトです。導入ガイド、利用例、設定オプションなど、詳細な情報が網羅されています。

書籍

  • Tailwind CSS: The Complete Guide
    Adam Wathan & Steve Schoger 著

    Tailwind CSSの開発者自身が執筆したフルガイドブックです。本格的にTailwind CSSを学習したい人におすすめ。

動画講座

結論:

Tailwind CSSは柔軟でカスタマイズ性が高いCSSフレームワークですが、従来のアプローチとは大きく異なるため一概に評価は分かれるところです。メリット・デメリットを踏まえた上で、ご自身のプロジェクトにどう適用するかを判断することが重要

MAAAAAAAAAAAMAAAAAAAAAAA
作例・基本的なクラスの紹介

こんな感じのカードコンポーネント作りたい場合

スタイルの種類 カテゴリー クラス 説明 追加情報
テキスト フォントの太さ font-bold テキストを太字にする font-normalfont-mediumfont-semiboldfont-extraboldfont-blackもある
テキスト フォントサイズ text-xl テキストを大きくする(1.25rem) text-xstext-smtext-basetext-lgtext-2xltext-3xltext-4xltext-5xltext-6xlもある
テキスト テキストの配置 text-center テキストを中央揃えにする text-lefttext-righttext-justifyもある
テキスト テキストサイズ text-xs から text-9xl テキストサイズを設定。 text-base, text-lg, text-xl など。
テキスト テキスト色 text-color テキストの色を設定。 text-red-500, text-blue-200 など。text-zinc-50 から text-zinc-900 のグレースケールの色も設定可能。
背景 背景色 bg-blue-500 背景色を青色にする 他の色も数字を変えることで指定できる(例:bg-red-200bg-green-700など)
背景 背景色 bg-transparent, bg-color 背景色を設定。 bg-red-500, bg-blue-200 など。
ボーダー 角丸 rounded 要素の角を丸くする rounded-nonerounded-smrounded-mdrounded-lgrounded-fullもある
ボーダー ボーダー幅 border-2 ボーダーの幅を2pxにする borderborder-0border-4border-8もある
ボーダー 境界線 border 要素に標準の境界線を追加。 border-t, border-b のように特定の方向の境界線も設定可能。
ボーダー 境界線の太さ border-0 から border-8 境界線の太さを設定。数値は1pxの倍数。 border-2, border-4 など。
ボーダー 境界線のスタイル border-solid, border-dashed, border-dotted 境界線のスタイルを設定。実線、破線、点線。
ボーダー 境界線の色 border-color 境界線の色を設定。 border-red-500, border-blue-200 など。
ボーダー 角丸 rounded-none から rounded-full 要素の角の丸みを設定。 rounded-sm, rounded-lg, rounded-xl, rounded-2xl, rounded-3xl の6段階。
レイアウト パディング p-4 要素の上下左右に16pxのパディングを追加する pl-4(左)、pr-4(右)、pt-4(上)、pb-4(下)のように方向を指定することもできる
レイアウト マージン m-4 要素の上下左右に16pxのマージンを追加する パディングと同様に、ml-4(左)、mr-4(右)、mt-4(上)、mb-4(下)のように方向を指定することもできる
レイアウト パディング p-0 から p-64 全方向のパディングを設定。数値は4pxの倍数。 pl-4, pr-8 のように特定の方向のパディングも設定可能。
レイアウト マージン(水平方向) mx-auto 水平方向のマージンを自動に設定し、要素を中央揃え。 ml-4, mr-8 のように特定の方向のマージンも設定可能。
レイアウト マージン(上方向) mt-0 から mt-96 上マージンを設定。数値は4pxの倍数。 mb-4, my-8 のように他の方向や複数方向のマージンも設定可能。
レイアウト w-0 から w-screen 要素の幅を設定。 w-1/2, w-1/3, w-2/3 のように画面の一部の幅も設定可能。
shadow-sm から shadow-2xl 要素に影を追加。 shadow-md, shadow-lg, shadow-xl の5段階。
フレックスボックス フレックスの方向 flex-row フレックスアイテムを横方向に並べる flex-row-reverseflex-colflex-col-reverseもある
フレックスボックス フレックスアイテムの配置 justify-center フレックスアイテムを中央揃えにする justify-startjustify-endjustify-betweenjustify-aroundもある

これらは、Tailwind CSSで提供されている多数のユーティリティクラスのほんの一部です。Tailwind CSSを使うことで、ほとんどのスタイリングをHTMLのクラス名だけで実現することができます。

例えば、ボタンを作る際には以下のようなクラス名を使うことができます。

<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
  Click Me
</button>

このように、Tailwind CSSのユーティリティクラスを組み合わせることで、簡単に見た目の良いUIコンポーネントを作ることができます。また、クラス名から直感的にスタイルを理解できるため、メンテナンス性も高くなります。

他にも有用なクラスは多く、例えば以下のようなものが挙げられます。

スタイルの種類 カテゴリー クラス 説明 追加情報
レイアウト 位置指定(Position) static, fixed, absolute, relative, sticky 要素の位置を指定。特に absoluterelative はよく使われる。 top-0, right-0, bottom-0, left-0 などと組み合わせて使用することが多い。
レイアウト Flexbox flex, flex-row, flex-col, flex-wrap, justify-start, justify-end, justify-center, items-start, items-end, items-center Flexboxを使ってレイアウトを組む際に使用。要素の配置や整列を柔軟に制御。 flex-1, flex-auto, flex-initial, flex-none などを使って、アイテムの幅を調整することもできる。
レイアウト Grid grid, grid-cols-1 から grid-cols-12, grid-rows-1 から grid-rows-6, gap-0 から gap-64 Gridレイアウトを組む際に使用。行と列の数を指定し、間隔を設定。 col-span-1 から col-span-12, row-span-1 から row-span-6 を使って、アイテムが占めるセルの数を指定できる。
レイアウト Display block, inline-block, inline, flex, grid, hidden 要素の表示方法を指定。レイアウトを組む上で重要な役割。 table, table-row, table-cell などのクラスを使って、テーブルレイアウトを組むこともできる。
レイアウト Z-index z-0 から z-50 要素の重なり順を指定。数値が大きいほど前面に表示。 z-auto を使うと、要素の重なり順をブラウザのデフォルトに従って自動的に決定できる。
視覚効果 Opacity opacity-0 から opacity-100 要素の不透明度を指定。0 は完全に透明、100 は完全に不透明。 group-hover:opacity-75 のように、疑似クラスと組み合わせて使用することで、インタラクティブな効果を実現できる。
アニメーション Transition transition, transition-all, transition-colors, transition-opacity, duration-150 から duration-1000, ease-linear, ease-in, ease-out, ease-in-out 要素の状態変化に伴うアニメーションを指定。対象のプロパティ、所要時間、タイミング関数などを設定。 delay-75 から delay-1000 を使って、アニメーションの開始を遅らせることもできる。
アニメーション Transform transform, scale-0 から scale-150, rotate-0 から rotate-180, translate-x-0 から translate-x-64, translate-y-0 から translate-y-64, skew-x-0 から skew-x-12, skew-y-0 から skew-y-12 要素の変形を指定。拡大縮小、回転、平行移動、傾斜などが可能。 origin-center, origin-top, origin-top-right, origin-right, origin-bottom-right, origin-bottom, origin-bottom-left, origin-left, origin-top-left を使って、変形の原点を指定できる。
MAAAAAAAAAAAMAAAAAAAAAAA
Inline CSSでいいんじゃない?いいえ、Tailwind CSSには大きな利点があります

Inline CSSを使えば、スタイルを直接HTMLタグに書き込むことができるので、シンプルで手軽だと思うかもしれません。しかし、実際のWebサイト制作では、Tailwind CSSのようなユーティリティファーストのCSSフレームワークを使う方が断然便利です。特に、レスポンシブデザインを実現する際には、Tailwind CSSの真価が発揮されます。

スマホ幅への対応で困らないTailwind CSS

Inline CSSでレスポンシブデザインを実装しようとすると、メディアクエリを駆使して、画面幅に応じてスタイルを切り替える必要があります。しかし、これは非常に面倒で、コードも煩雑になりがちです。

一方、Tailwind CSSでは、あらかじめ用意された豊富なレスポンシブユーティリティクラスを使うことで、簡単にレスポンシブデザインを実現できます。例えば、md:text-lgというクラスを使えば、中屋サイズ(768px以上)の画面幅では、テキストサイズを大きくすることができます。同様に、sm:hiddenというクラスを使えば、小さい画面幅(640px以下)では、要素を非表示にすることができます。

このように、Tailwind CSSのレスポンシブユーティリティクラスを使えば、メディアクエリを直接書く必要がなく、スマホ幅への対応も簡単です。

一貫性のあるデザインを実現するTailwind CSS

Inline CSSを使っていると、スタイルの定義が分散してしまい、一貫性のあるデザインを維持するのが難しくなります。特に、複数の開発者が同じプロジェクトに関わる場合、スタイルの不整合が起こりやすくなります。

Tailwind CSSでは、あらかじめ定義されたデザインシステムに基づいて、一貫性のあるスタイルを適用することができます。例えば、bg-blue-500というクラスを使えば、背景色を青色に設定できますが、この色は、Tailwind CSSのデフォルトのカラーパレットに含まれる色です。このカラーパレットは、プロジェクト全体で共有されるので、どこで使っても同じ色が適用されます。

また、Tailwind CSSでは、フォントサイズ、余白、境界線など、さまざまなスタイルプロパティに対して、統一された命名規則が使われています。これにより、コードの可読性が向上し、チーム全体で一貫性のあるスタイルを適用しやすくなります。

まとめ

Inline CSSは手軽ですが、レスポンシブデザインへの対応や、一貫性のあるデザインの実現には向いていません。Tailwind CSSなら、レスポンシブユーティリティクラスを使ってスマホ幅への対応も簡単ですし、デザインシステムに基づいた一貫性のあるスタイルを適用することもできます。

MAAAAAAAAAAAMAAAAAAAAAAA
サイズ判定のカスタム方法

Tailwind CSSは、デフォルトで5つのレスポンシブブレークポイント(smmdlgxl2xl)を提供しています。これらのブレークポイントは、一般的なデバイスの画面サイズに合わせて設定されていますが、プロジェクトによっては、独自のブレークポイントを設定したい場合もあるでしょう。

実は、Tailwind CSSでは、これらのブレークポイントを簡単にカスタマイズすることができます。ここでは、その方法を解説します。

Tailwind CSSの設定ファイルを作成する

まず、Tailwind CSSの設定ファイル(tailwind.config.js)を作成します。このファイルを使って、Tailwind CSSのさまざまな設定をカスタマイズすることができます。

プロジェクトのルートディレクトリにtailwind.config.jsファイルを作成し、以下のような内容を記述します。

module.exports = {
  purge: [],
  theme: {
    extend: {},
  },
  variants: {},
  plugins: [],
}

レスポンシブブレークポイントを設定する

次に、themeセクションの中で、screensオプションを使って、レスポンシブブレークポイントを設定します。

module.exports = {
  theme: {
    screens: {
      'xs': '480px',
      'sm': '640px',
      'md': '768px',
      'lg': '1024px',
      'xl': '1280px',
      '2xl': '1536px',
    },
  },
}

ここでは、デフォルトのブレークポイントに加えて、xs(480px)というブレークポイントを追加しています。また、sm以降のブレークポイントの値を変更して、独自の値を設定しています。

カスタムしたブレークポイントを使う

設定ファイルを変更したら、あとは通常通り、Tailwind CSSのユーティリティクラスを使ってスタイルを適用するだけです。

<div class="bg-blue-500 xs:bg-red-500 sm:bg-green-500 md:bg-yellow-500 lg:bg-purple-500">
  レスポンシブな背景色
</div>

ここでは、画面幅に応じて、背景色が変化するようになっています。xsでは赤、smでは緑、mdでは黄色、lgでは紫、デフォルトでは青になります。

まとめ

Tailwind CSSのレスポンシブブレークポイントは、設定ファイル(tailwind.config.js)のthemeセクションで、screensオプションを使ってカスタマイズすることができます。独自のブレークポイントを追加したり、デフォルトのブレークポイントの値を変更したりすることで、プロジェクトに合ったレスポンシブデザインを実現できます。

MAAAAAAAAAAAMAAAAAAAAAAA
Tailwind CSSの条件付きユーティリティクラス一覧

Tailwind CSSでは、さまざまな条件に基づいてスタイルを適用するための、条件付きのユーティリティクラスが用意されています。ここでは、それらのクラスを一覧表にまとめました。
はい、その認識で合っています。first:接頭辞を使って、テーブルのヘッダー行に特別なスタイルを適用することができます。他にも、条件付きのユーティリティクラスを使って、テーブルのスタイリングをより細かく制御することができます。

それでは、具体的な使用例を追加した一覧表を再生成しましょう。


Tailwind CSSの条件付きユーティリティクラス一覧

条件 接頭辞 説明 使用例
レスポンシブ sm:, md:, lg:, xl:, 2xl: 画面幅に応じてスタイルを適用する md:text-lg モバイル画面では縦並びのレイアウトを適用し、デスクトップ画面では横並びのレイアウトを適用する
ホバー hover: マウスホバー時にスタイルを適用する hover:bg-blue-500 ボタンにホバー効果を追加して、インタラクティブな印象を与える
フォーカス focus: フォーカス時にスタイルを適用する focus:outline-none フォーム入力欄にフォーカス時のスタイルを適用して、現在の入力位置をわかりやすくする
アクティブ active: アクティブ時(クリック時など)にスタイルを適用する active:bg-red-500 ボタンをクリックした時に、背景色を変更してフィードバックを与える
無効化 disabled: 無効化された要素にスタイルを適用する disabled:opacity-50 無効化されたボタンの外観を変更して、クリックできないことを明示する
奇数行 odd: 奇数行にスタイルを適用する(テーブルなど) odd:bg-gray-100 テーブルの奇数行に背景色を適用して、読みやすさを向上させる
偶数行 even: 偶数行にスタイルを適用する(テーブルなど) even:bg-gray-200 テーブルの偶数行に背景色を適用して、奇数行とのコントラストをつける
最初の要素 first: 最初の要素にスタイルを適用する first:pt-0 リストの最初の項目の上部マージンを削除して、レイアウトを整える
first:text-blue-500 テーブルのヘッダー行に特別な文字色を適用して、見出しとして強調する
最後の要素 last: 最後の要素にスタイルを適用する last:pb-0 リストの最後の項目の下部マージンを削除して、レイアウトを整える
last:border-b-0 テーブルの最後の行のボーダーを削除して、テーブルの終端を示す
単独の要素 only: 単独の要素(兄弟要素がない場合)にスタイルを適用する only:mb-0 単独の要素の下部マージンを削除して、他の要素とのスペースを調整する
空の要素 empty: 空の要素(子要素がない場合)にスタイルを適用する empty:hidden 空のテーブルセルを非表示にして、レイアウトを整える
子要素 group-hover:, group-focus:, group-active: 親要素の状態に基づいて、子要素にスタイルを適用する group-hover:opacity-75 カード全体にホバー効果を適用し、カード内のテキストの不透明度を変更する

この一覧表では、各条件に対して具体的な使用例を1~2個追加しました。これらの例を参考にすることで、条件付きのユーティリティクラスをさまざまな場面で活用できるはずです。

例えば、first:接頭辞を使ってテーブルのヘッダー行に特別なスタイルを適用したり、last:接頭辞を使ってテーブルの最後の行のボーダーを削除したりすることができます。また、group-hover:接頭辞を使って、カード全体にホバー効果を適用し、カード内の子要素のスタイルを変更することもできます。

これらの使用例を参考に、Tailwind CSSの条件付きユーティリティクラスを活用して、より洗練されたデザインを実現してください。


以上が、具体的な使用例を追加したTailwind CSSの条件付きユーティリティクラスの一覧表になります。これらの例を参考に、条件付きのユーティリティクラスをさまざまな場面で活用し、よりリッチなWebサイトやアプリケーションを制作してみてください。
これらの条件付きユーティリティクラスを使うことで、さまざまな状況に応じて適切なスタイルを適用することができます。例えば、hover:接頭辞を使えば、マウスホバー時にスタイルを変更することができますし、group-hover:接頭辞を使えば、親要素のホバー状態に基づいて子要素のスタイルを変更することができます。

MAAAAAAAAAAAMAAAAAAAAAAA
Tailwind CSSの条件付きユーティリティクラス例

モバイル画面では縦並びのレイアウトを適用し、デスクトップ画面では横並びのレイアウトを適用する例を示しましょう

<div class="flex flex-col md:flex-row">
  <div class="bg-blue-500 text-white p-4 m-2">
    Item 1
  </div>
  <div class="bg-blue-500 text-white p-4 m-2">
    Item 2
  </div>
  <div class="bg-blue-500 text-white p-4 m-2">
    Item 3
  </div>
</div>

このコードでは、以下のようなことが行われています:

  1. 最外層の<div>要素にflexクラスを適用して、Flexboxレイアウトを有効にしています。

  2. デフォルトではflex-colクラスを適用して、子要素を縦並びにしています。これがモバイル画面でのレイアウトになります。

  3. md:接頭辞を使って、ミディアムサイズ(デスクトップ画面)以上の画面幅に対してflex-rowクラスを適用しています。これにより、デスクトップ画面では子要素が横並びになります。

  4. 子要素の<div>要素には、背景色(bg-blue-500)、文字色(text-white)、パディング(p-4)、マージン(m-2)を適用しています。

このコードを実行すると、モバイル画面では以下のように縦並びのレイアウトが表示されます:

+------------+
|   Item 1   |
+------------+
|   Item 2   |
+------------+
|   Item 3   |
+------------+

一方、デスクトップ画面では以下のように横並びのレイアウトが表示されます:

+------------++------------++------------+
|   Item 1   ||   Item 2   ||   Item 3   |
+------------++------------++------------+

first:接頭辞を使って、テーブルのヘッダー行に特別なスタイルを適用する例を示しましょう。

<table class="table-auto w-full">
  <thead>
    <tr>
      <th class="px-4 py-2 first:bg-blue-500 first:text-white">Header 1</th>
      <th class="px-4 py-2 first:bg-blue-500 first:text-white">Header 2</th>
      <th class="px-4 py-2 first:bg-blue-500 first:text-white">Header 3</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td class="border px-4 py-2">Row 1, Cell 1</td>
      <td class="border px-4 py-2">Row 1, Cell 2</td>
      <td class="border px-4 py-2">Row 1, Cell 3</td>
    </tr>
    <tr>
      <td class="border px-4 py-2">Row 2, Cell 1</td>
      <td class="border px-4 py-2">Row 2, Cell 2</td>
      <td class="border px-4 py-2">Row 2, Cell 3</td>
    </tr>
    <tr>
      <td class="border px-4 py-2">Row 3, Cell 1</td>
      <td class="border px-4 py-2">Row 3, Cell 2</td>
      <td class="border px-4 py-2">Row 3, Cell 3</td>
    </tr>
  </tbody>
</table>

このコードでは、以下のようなことが行われています:

  1. <table>要素にtable-autoクラスを適用して、テーブルのレイアウトを自動的に調整しています。また、w-fullクラスを適用して、テーブルの幅を100%にしています。

  2. <thead>内の<th>要素にfirst:接頭辞を使ったクラスを適用しています。

    • first:bg-blue-500:最初の<th>要素の背景色を青に設定。
    • first:text-white:最初の<th>要素の文字色を白に設定。
  3. <tbody>内の<td>要素には、ボーダー(border)、パディング(px-4 py-2)を適用しています。

このコードを実行すると、以下のようなテーブルが表示されます:

+---------------+---------------+---------------+
| Header 1      | Header 2      | Header 3      |
+---------------+---------------+---------------+
| Row 1, Cell 1 | Row 1, Cell 2 | Row 1, Cell 3 |
+---------------+---------------+---------------+
| Row 2, Cell 1 | Row 2, Cell 2 | Row 2, Cell 3 |
+---------------+---------------+---------------+
| Row 3, Cell 1 | Row 3, Cell 2 | Row 3, Cell 3 |
+---------------+---------------+---------------+

最初の<th>要素(ヘッダー行)には、青い背景色と白い文字色が適用されています。これにより、ヘッダー行が目立ち、テーブルの構造が明確になります。

このように、first:接頭辞を使うことで、テーブルのヘッダー行に特別なスタイルを簡単に適用することができます。同様の方法で、last:接頭辞を使えば最後の行にスタイルを適用することもできます。

MAAAAAAAAAAAMAAAAAAAAAAA
ReactでTailwind CSSのクラス名を隠蔽して再利用する方法

ReactでTailwind CSSを使うと、コンポーネントのスタイリングが非常に簡単になります。しかし、Tailwind CSSのクラス名は長くなりがちで、JSXのコード内で直接使うと可読性が下がってしまうことがあります。

そこで、長いクラス名を再利用可能な形で隠蔽する方法を紹介します。この方法を使えば、JSXのコードをすっきりと保ちつつ、スタイリングの一貫性を保つことができます。

クラス名を変数に格納する

まず、長いクラス名を変数に格納しましょう。これは、ES6の機能である変数の分割代入を使って実現できます。

const Card = () => {
  const cardClasses = "p-4 border rounded-lg bg-white shadow-lg w-60 m-auto mt-20 text-sm";

  return (
    <div className={cardClasses}>
      {/* カードの内容 */}
    </div>
  );
};

ここでは、cardClassesという変数にカードのスタイルを表すクラス名を格納しています。そして、<div>要素のclassName属性で、この変数を使っています。

クラス名をオブジェクトに格納する

複数のバリエーションがあるコンポーネントの場合は、クラス名をオブジェクトに格納すると便利です。

const Button = ({ primary }) => {
  const buttonClasses = {
    base: "py-2 px-4 rounded",
    primary: "bg-blue-500 text-white",
    secondary: "bg-gray-200 text-gray-700",
  };

  return (
    <button className={`${buttonClasses.base} ${primary ? buttonClasses.primary : buttonClasses.secondary}`}>
      {/* ボタンの内容 */}
    </button>
  );
};

ここでは、buttonClassesオブジェクトに、ボタンの基本スタイル(base)とバリエーション(primarysecondary)のクラス名を格納しています。そして、<button>要素のclassName属性で、これらのクラス名を条件に応じて組み合わせています。

まとめ

Tailwind CSSのクラス名を変数やオブジェクトに格納することで、JSXのコードをすっきりと保ちつつ、スタイリングの一貫性を保つことができます。この方法は、特に大規模なプロジェクトで威力を発揮します。

MAAAAAAAAAAAMAAAAAAAAAAA
雑にまとめたもの
スタイルの種類 カテゴリー クラス 説明 追加情報 追加情報2
テキストの色 色を指定する text-gray-700 テキストをグレー色にする text-{color}-{shade} の形式で様々な色を指定できる -
テキストのサイズ サイズを指定する text-base テキストのサイズを基本サイズにする text-{size} の形式で様々なサイズを指定できる text-xs, text-sm, text-lg, text-xl, text-2xl, text-3xl, text-4xl, text-5xl, text-6xl など
テキストのサイズ サイズを指定する text-xl テキストのサイズを特大サイズにする text-{size} の形式で様々なサイズを指定できる text-xs, text-sm, text-lg, text-xl, text-2xl, text-3xl, text-4xl, text-5xl, text-6xl など
テキストの配置 配置を指定する text-center テキストを中央揃えにする text-{alignment} の形式で様々な配置を指定できる text-left, text-right, text-justify
フォントの太さ 太さを指定する font-bold フォントを太字にする font-{weight} の形式で様々な太さを指定できる font-normal, font-medium, font-semibold, font-extrabold, font-black
背景色 色を指定する bg-gray-50 背景色をグレー色にする bg-{color}-{shade} の形式で様々な色を指定できる -
余白 パディングを指定する pt-10 上の余白を2.5remにする p{t|r|b|l|x|y}-{size} の形式で様々な余白を指定できる pt-0, pt-1, pt-2, pt-3, pt-4, pt-5, pt-6, pt-8, pt-12, pt-16, pt-20, pt-24 など
余白 パディングを指定する px-6 左右の余白を1.5remにする p{t|r|b|l|x|y}-{size} の形式で様々な余白を指定できる px-0, px-1, px-2, px-3, px-4, px-5, px-6, px-8, px-10, px-12, px-16, px-20, px-24 など
余白 パディングを指定する py-4 上下の余白を1remにする p{t|r|b|l|x|y}-{size} の形式で様々な余白を指定できる py-0, py-1, py-2, py-3, py-4, py-5, py-6, py-8, py-10, py-12, py-16, py-20, py-24 など
余白 マージンを指定する mb-2 下のマージンを0.5remにする m{t|r|b|l|x|y}-{size} の形式で様々なマージンを指定できる mb-0, mb-1, mb-2, mb-3, mb-4, mb-5, mb-6, mb-8, mb-10, mb-12, mb-16, mb-20, mb-24 など
レイアウト グリッドを指定する grid グリッドレイアウトを適用する display: grid; を適用する -
レイアウト アイテムの配置を指定する place-items-center アイテムを中央揃えにする place-items-{alignment} の形式で様々な配置を指定できる place-items-start, place-items-end, place-items-center, place-items-stretch
レイアウト 最大幅を指定する max-w-sm 最大幅を24remに制限する max-w-{size} の形式で様々な最大幅を指定できる max-w-xs, max-w-sm, max-w-md, max-w-lg, max-w-xl, max-w-2xl, max-w-3xl, max-w-4xl, max-w-5xl, max-w-6xl, max-w-7xl など
レイアウト オーバーフローを指定する overflow-hidden オーバーフローを非表示にする overflow-{behavior} の形式で様々なオーバーフロー動作を指定できる overflow-auto, overflow-hidden, overflow-visible, overflow-scroll
ボックスモデル 角丸を指定する rounded 要素を角丸にする rounded-{size} の形式で様々な角丸サイズを指定できる rounded-none, rounded-sm, rounded-md, rounded-lg, rounded-xl, rounded-2xl, rounded-3xl, rounded-full など
ボックスモデル 影を指定する shadow-lg 要素に大きめの影をつける shadow-{size} の形式で様々な影のサイズを指定できる shadow-sm, shadow, shadow-md, shadow-xl, shadow-2xl, shadow-inner, shadow-none など
サイズ 幅を指定する w-full 要素の幅を100%にする w-{size} の形式で様々な幅を指定できる w-0, w-1, w-2, w-3, w-4, w-5, w-6, w-8, w-10, w-12, w-16, w-20, w-24, w-32, w-40, w-48, w-56, w-64 など
スタイルの種類 カテゴリー クラス 説明 追加情報
テキストの色 色を指定する text-red-500 テキストを赤色にする text-{color}-{shade} の形式で様々な色を指定できる
text-blue-500 テキストを青色にする text-{color}-{shade} の形式で様々な色を指定できる
text-green-500 テキストを緑色にする text-{color}-{shade} の形式で様々な色を指定できる
テキストの配置 水平方向の配置 text-left テキストを左寄せにする -
text-center テキストを中央寄せにする -
text-right テキストを右寄せにする -
垂直方向の配置 align-baseline テキストをベースラインに揃える align-top, align-middle, align-bottom もある
テキストの装飾 下線 underline テキストに下線をつける no-underline で下線を消すこともできる
取り消し線 line-through テキストに取り消し線をつける no-line-through で取り消し線を消すこともできる
テキストの大文字・小文字 大文字・小文字を変換する uppercase テキストをすべて大文字にする -
lowercase テキストをすべて小文字にする -
capitalize テキストの先頭文字を大文字にする -
テキストの行間隔 行の高さを指定する leading-none 行の高さを0に設定する leading-tight, leading-snug, leading-normal, leading-relaxed, leading-loose もある
ホワイトスペース 連続するスペースの扱い方 whitespace-normal 連続するスペースを通常通り扱う -
whitespace-nowrap 連続するスペースをまとめる -
whitespace-pre 連続するスペースをそのまま表示する -
whitespace-pre-line 連続するスペースをまとめ、必要な改行は行う -
whitespace-pre-wrap 連続するスペースをそのまま表示し、必要な改行は行う -
スタイルの種類 カテゴリー クラス 説明 追加情報
テキスト フォントの太さ font-thin テキストを極細にする font-extralight, font-light, font-normal, font-medium, font-semibold, font-bold, font-extrabold, font-black もある
テキスト フォントサイズ text-xs テキストを超小さいサイズにする text-sm, text-base, text-lg, text-xl, text-2xl, text-3xl, text-4xl, text-5xl, text-6xl, text-7xl, text-8xl, text-9xl もある
テキスト フォントの色 text-red-500 テキストを赤色にする text-{color}-{shade} の形式で様々な色を指定できる
レイアウト ディスプレイ block 要素をブロックレベル要素として表示する inline, inline-block, flex, inline-flex, grid, inline-grid, hidden なども使用可能
レイアウト フレックス flex 要素をフレックスコンテナとして表示する flex-row, flex-col, flex-wrap, flex-nowrap, flex-1, flex-auto, flex-initial, flex-none なども使用可能
間隔 パディング p-4 要素の上下左右に16pxのパディングを追加する p-{size}, pt-{size}, pr-{size}, pb-{size}, pl-{size} の形式で様々なサイズを指定できる
間隔 マージン m-4 要素の上下左右に16pxのマージンを追加する m-{size}, mt-{size}, mr-{size}, mb-{size}, ml-{size} の形式で様々なサイズを指定できる
サイズ w-64 要素の幅を256pxに設定する w-{size}, w-auto, w-1/2, w-full など様々な指定方法がある
サイズ 高さ h-64 要素の高さを256pxに設定する h-{size}, h-auto, h-full, h-screen など様々な指定方法がある
背景 背景色 bg-blue-500 要素の背景色を青色にする bg-{color}-{shade} の形式で様々な色を指定できる
ボーダー ボーダーの幅 border-2 要素のボーダーを2pxの幅にする border, border-0, border-4, border-8 なども使用可能
ボーダー ボーダーの色 border-green-500 要素のボーダーを緑色にする border-{color}-{shade} の形式で様々な色を指定できる
スタイルの種類 カテゴリー クラス 説明 追加情報
フォントの太さ 太字 font-bold テキストを太字にする font-normalfont-mediumfont-semiboldfont-extraboldfont-blackもある
薄い font-light テキストを薄くする font-thinもある
標準 font-normal テキストを標準の太さにする -
中程度 font-medium テキストを中程度の太さにする -
セミボールド font-semibold テキストをセミボールドにする -
非常に太字 font-extrabold テキストを非常に太字にする -
極太 font-black テキストを極太にする -
フォントサイズ 小さい text-xs テキストを非常に小さくする text-smtext-basetext-lgtext-xltext-2xltext-3xltext-4xltext-5xltext-6xlもある
text-sm テキストを小さくする text-basetext-lgtext-xltext-2xltext-3xltext-4xltext-5xltext-6xlもある
標準 text-base テキストを標準の大きさにする -
大きい text-lg テキストを大きくする text-xltext-2xltext-3xltext-4xltext-5xltext-6xlもある
非常に大きい text-xl テキストを非常に大きくする text-2xltext-3xltext-4xltext-5xltext-6xlもある
極端に大きい text-2xl テキストを極端に大きくする text-3xltext-4xltext-5xltext-6xlもある
非常に極端に大きい text-3xl テキストを非常に極端に大きくする text-4xltext-5xltext-6xlもある
極端に極端に大きい text-4xl テキストを極端に極端に大きくする text-5xltext-6xlもある
極端に極端に極端に大きい text-5xl テキストを極端に極端に極端に大きくする text-6xlもある
極端に極端に極端に極端に大きい text-6xl テキストを極端に極端に極端に極端に大きくする -
フォントファミリー フォントを変更 font-sans サンセリフフォントを使用する font-seriffont-monoもある
font-serif セリフフォントを使用する font-monoもある
font-mono モノスペースフォントを使用する -
MAAAAAAAAAAAMAAAAAAAAAAA
雑まとめ2

このコードは、React を使用してお問い合わせフォームを作成するものです。TailwindCSS を使用してスタイリングが行われています。以下は、このコードで使用されている TailwindCSS のクラスを表にまとめたものです。

スタイルの種類 カテゴリー クラス 説明 追加情報 追加情報2
レイアウト 余白を指定する space-y-8 垂直方向に要素間のスペースを 2rem 設ける space-y-{size} の形式で様々なスペースサイズを指定できる space-y-0, space-y-1, space-y-2, space-y-3, space-y-4, space-y-5, space-y-6, space-y-8, space-y-10, space-y-12, space-y-16, space-y-20, space-y-24 など
レイアウト 余白を指定する space-y-2 垂直方向に要素間のスペースを 0.5rem 設ける space-y-{size} の形式で様々なスペースサイズを指定できる space-y-0, space-y-1, space-y-2, space-y-3, space-y-4, space-y-5, space-y-6, space-y-8, space-y-10, space-y-12, space-y-16, space-y-20, space-y-24 など
レイアウト 余白を指定する space-y-4 垂直方向に要素間のスペースを 1rem 設ける space-y-{size} の形式で様々なスペースサイズを指定できる space-y-0, space-y-1, space-y-2, space-y-3, space-y-4, space-y-5, space-y-6, space-y-8, space-y-10, space-y-12, space-y-16, space-y-20, space-y-24 など
レイアウト グリッドを指定する grid グリッドレイアウトを適用する display: grid; を適用する -
レイアウト グリッドの列数を指定する grid-cols-2 グリッドの列数を 2 に設定する grid-cols-{count} の形式で様々な列数を指定できる grid-cols-1, grid-cols-2, grid-cols-3, grid-cols-4, grid-cols-5, grid-cols-6, grid-cols-7, grid-cols-8, grid-cols-9, grid-cols-10, grid-cols-11, grid-cols-12 など
レイアウト グリッドのギャップを指定する gap-4 グリッドのギャップを 1rem に設定する gap-{size} の形式で様々なギャップサイズを指定できる gap-0, gap-1, gap-2, gap-3, gap-4, gap-5, gap-6, gap-8, gap-10, gap-12, gap-16, gap-20, gap-24 など
レイアウト Flexbox を指定する flex Flexbox レイアウトを適用する display: flex; を適用する -
レイアウト Flexbox のアイテム配置を指定する justify-center Flexbox のアイテムを中央揃えにする justify-{alignment} の形式で様々な配置を指定できる justify-start, justify-end, justify-center, justify-between, justify-around, justify-evenly
テキストのサイズ サイズを指定する text-3xl テキストのサイズを 1.875rem に設定する text-{size} の形式で様々なサイズを指定できる text-xs, text-sm, text-base, text-lg, text-xl, text-2xl, text-3xl, text-4xl, text-5xl, text-6xl, text-7xl, text-8xl, text-9xl など
テキストのサイズ サイズを指定する text-sm テキストのサイズを 0.875rem に設定する text-{size} の形式で様々なサイズを指定できる text-xs, text-sm, text-base, text-lg, text-xl, text-2xl, text-3xl, text-4xl, text-5xl, text-6xl, text-7xl, text-8xl, text-9xl など
フォントの太さ 太さを指定する font-bold フォントを太字にする font-{weight} の形式で様々な太さを指定できる font-thin, font-extralight, font-light, font-normal, font-medium, font-semibold, font-bold, font-extrabold, font-black
フォントの太さ 太さを指定する font-medium フォントを中太にする font-{weight} の形式で様々な太さを指定できる font-thin, font-extralight, font-light, font-normal, font-medium, font-semibold, font-bold, font-extrabold, font-black
行の高さ 高さを指定する leading-none 行の高さを 1 に設定する leading-{size} の形式で様々な行の高さを指定できる leading-none, leading-tight, leading-snug, leading-normal, leading-relaxed, leading-loose
背景色 色を指定する bg-zinc-100 背景色を zinc-100 に設定する bg-{color}-{shade} の形式で様々な色を指定できる -
背景色 色を指定する bg-blue-500 背景色を blue-500 に設定する bg-{color}-{shade} の形式で様々な色を指定できる -
背景色 色を指定する hover:bg-blue-600 ホバー時の背景色を blue-600 に設定する hover:bg-{color}-{shade} の形式で様々な色を指定できる -
背景色 色を指定する active:bg-blue-700 アクティブ時の背景色を blue-700 に設定する active:bg-{color}-{shade} の形式で様々な色を指定できる -
テキストの色 色を指定する text-zinc-500 テキストの色を zinc-500 に設定する text-{color}-{shade} の形式で様々な色を指定できる -
テキストの色 色を指定する dark:text-zinc-400 ダークモード時のテキストの色を zinc-400 に設定する dark:text-{color}-{shade} の形式で様々な色を指定できる -
テキストの色 色を指定する text-white テキストの色を白に設定する text-{color} の形式で様々な色を指定できる -
ボックスモデル 角丸を指定する rounded-md 要素の角を中程度の丸みにする rounded-{size} の形式で様々な角丸サイズを指定できる rounded-none, rounded-sm, rounded, rounded-md, rounded-lg, rounded-xl, rounded-2xl, rounded-3xl, rounded-full など
ボックスモデル 角丸を指定する rounded-sm 要素の角を小さめの丸みにする rounded-{size} の形式で様々な角丸サイズを指定できる rounded-none, rounded-sm, rounded, rounded-md, rounded-lg, rounded-xl, rounded-2xl, rounded-3xl, rounded-full など
ボックスモデル ボーダーを指定する border 要素にボーダーを追加する border-{width} の形式で様々なボーダー幅を指定できる border, border-0, border-2, border-4, border-8 など
サイズ 高さを指定する h-10 要素の高さを 2.5rem に設定する h-{size} の形式で様々な高さを指定できる h-0, h-1, h-2, h-3, h-4, h-5, h-6, h-8, h-10, h-12, h-16, h-20, h-24, h-32, h-40, h-48, h-56, h-64 など
サイズ 幅を指定する w-full 要素の幅を 100% に設定する w-{size} の形式で様々な幅を指定できる w-0, w-1, w-2, w-3, w-4, w-5, w-6, w-8, w-10, w-12, w-16, w-20, w-24, w-32, w-40, w-48, w-56, w-64, w-1/2, w-1/3, w-2/3, w-1/4, w-2/4, w-3/4, w-1/5, w-2/5, w-3/5, w-4/5, w-1/6, w-2/6, w-3/6, w-4/6, w-5/6, w-full, w-screen など
余白 パディングを指定する px-3 左右のパディングを 0.75rem に設定する p{t|r|b|l|x|y}-{size} の形式で様々な余白を指定できる px-0, px-1, px-2, px-3, px-4, px-5, px-6, px-8, px-10, px-12, px-16, px-20, px-24, px-32, px-40, px-48, px-56, px-64 など
余白 パディングを指定する py-2 上下のパディングを 0.5rem に設定する p{t|r|b|l|x|y}-{size} の形式で様々な余白を指定できる py-0, py-1, py-2, py-3, py-4, py-5, py-6, py-8, py-10, py-12, py-16, py-20, py-24, py-32, py-40, py-48, py-56, py-64 など
余白 パディングを指定する p-4 全方向のパディングを 1rem に設定する p{t|r|b|l|x|y}-{size} の形式で様々な余白を指定できる p-0, p-1, p-2, p-3, p-4, p-5, p-6, p-8, p-10, p-12, p-16, p-20, p-24, p-32, p-40, p-48, p-56, p-64 など
余白 パディングを指定する px-4 左右のパディングを 1rem に設定する p{t|r|b|l|x|y}-{size} の形式で様々な余白を指定できる px-0, px-1, px-2, px-3, px-4, px-5, px-6, px-8, px-10, px-12, px-16, px-20, px-24, px-32, px-40, px-48, px-56, px-64 など
フォーカス アウトラインを指定する focus:outline-none フォーカス時のアウトラインを削除する - -
フォーカス リングを指定する focus:ring-2 フォーカス時のリングを 2px に設定する focus:ring-{width} の形式で様々なリング幅を指定できる focus:ring-0, focus:ring-1, focus:ring-2, focus:ring-4, focus:ring-8 など
フォーカス リングのオフセットを指定する focus:ring-offset-2 フォーカス時のリングのオフセットを 2px に設定する focus:ring-offset-{width} の形式で様々なオフセット幅を指定できる focus:ring-offset-0, focus:ring-offset-1, focus:ring-offset-2, focus:ring-offset-4, focus:ring-offset-8 など
サイズ 最小の高さを指定する min-h-[100px] 要素の最小の高さを 100px に設定する min-h-{size} の形式で様々な最小の高さを指定できる min-h-0, min-h-full, min-h-screen など
MAAAAAAAAAAAMAAAAAAAAAAA
mosyaで好きだと思ったTailwindCSS一覧
スタイルの種類 カテゴリー クラス 説明 追加情報
レイアウト パディング py-4 上下のパディングを1remに設定 p{t|r|b|l|x|y}-{size} の形式で様々な余白を指定できる
レイアウト 最小の高さ min-h-screen 要素の最小の高さをビューポートの高さに設定 min-h-{size} の形式で様々な最小の高さを指定できる
バックグラウンド グラデーション bg-gradient-to-r 背景を左から右へのグラデーションに設定 bg-gradient-to-{direction} の形式で様々な方向のグラデーションを指定できる
バックグラウンド グラデーションの開始色 from-purple-300 グラデーションの開始色を紫の300番に設定 from-{color}-{shade} の形式で様々な色を指定できる
バックグラウンド グラデーションの中間色 via-pink-200 グラデーションの中間色をピンクの200番に設定 via-{color}-{shade} の形式で様々な色を指定できる
バックグラウンド グラデーションの終了色 to-red-200 グラデーションの終了色を赤の200番に設定 to-{color}-{shade} の形式で様々な色を指定できる
バックグラウンド ダークモードのグラデーションの開始色 dark:from-gray-900 ダークモード時のグラデーションの開始色を灰色の900番に設定 dark:from-{color}-{shade} の形式で様々な色を指定できる
バックグラウンド ダークモードのグラデーションの中間色 dark:via-gray-800 ダークモード時のグラデーションの中間色を灰色の800番に設定 dark:via-{color}-{shade} の形式で様々な色を指定できる
バックグラウンド ダークモードのグラデーションの終了色 dark:to-gray-700 ダークモード時のグラデーションの終了色を灰色の700番に設定 dark:to-{color}-{shade} の形式で様々な色を指定できる
フレックスボックス アイテムの配置 items-center フレックスアイテムを縦方向に中央揃えにする items-{alignment} の形式で様々な配置を指定できる
フレックスボックス アイテムの配置 justify-center フレックスアイテムを横方向に中央揃えにする justify-{alignment} の形式で様々な配置を指定できる
レイアウト w-full 要素の幅を100%に設定 w-{size} の形式で様々な幅を指定できる
レイアウト 最大の幅 max-w-md 要素の最大の幅を28remに設定 max-w-{size} の形式で様々な最大の幅を指定できる
レイアウト マージン mx-auto 左右のマージンを自動に設定 m{t|r|b|l|x|y}-{size} の形式で様々なマージンを指定できる
バックグラウンド 背景色 bg-white 背景色を白に設定 bg-{color} の形式で様々な色を指定できる
ボックスシャドウ シャドウ shadow-md 中程度のシャドウを適用 shadow-{size} の形式で様々なシャドウのサイズを指定できる
ボーダー 角丸 rounded-lg 要素の角を大きく丸くする rounded-{size} の形式で様々な角丸のサイズを指定できる
レイアウト オーバーフロー overflow-hidden 要素からはみ出した部分を非表示にする overflow-{visibility} の形式で様々な表示方法を指定できる
バックグラウンド ダークモードの背景色 dark:bg-zinc-900 ダークモード時の背景色を亜鉛の900番に設定 dark:bg-{color}-{shade} の形式で様々な色を指定できる
フレックスボックス アイテムの配置 justify-between フレックスアイテムを両端揃えにする justify-{alignment} の形式で様々な配置を指定できる
レイアウト パディング px-6 左右のパディングを1.5remに設定 p{t|r|b|l|x|y}-{size} の形式で様々な余白を指定できる
テキスト フォントサイズ text-lg テキストのフォントサイズを1.125remに設定 text-{size} の形式で様々なフォントサイズを指定できる
テキスト フォントの太さ font-medium フォントの太さを中程度に設定 font-{weight} の形式で様々なフォントの太さを指定できる
テキスト テキストの色 text-gray-700 テキストの色を灰色の700番に設定 text-{color}-{shade} の形式で様々な色を指定できる
テキスト ダークモードのテキストの色 dark:text-gray-200 ダークモード時のテキストの色を灰色の200番に設定 dark:text-{color}-{shade} の形式で様々な色を指定できる
テキスト テキストの色 text-gray-500 テキストの色を灰色の500番に設定 text-{color}-{shade} の形式で様々な色を指定できる
テキスト ダークモードのテキストの色 dark:text-gray-400 ダークモード時のテキストの色を灰色の400番に設定 dark:text-{color}-{shade} の形式で様々な色を指定できる
レイアウト 高さ h-6 要素の高さを1.5remに設定 h-{size} の形式で様々な高さを指定できる
レイアウト w-6 要素の幅を1.5remに設定 w-{size} の形式で様々な幅を指定できる
テキスト テキストの色 text-red-500 テキストの色を赤の500番に設定 text-{color}-{shade} の形式で様々な色を指定できる
レイアウト マージン ml-4 左のマージンを1remに設定 m{t|r|b|l|x|y}-{size} の形式で様々なマージンを指定できる
グループ グループ group 要素をグループ化する group-{modifier} の形式で様々な修飾子を指定できる
レイアウト 位置 relative 要素を相対的な位置に配置 static, fixed, absolute, sticky なども指定できる
インタラクション カーソル cursor-pointer マウスカーソルをポインターに変更 cursor-{type} の形式で様々なカーソルの種類を指定できる
レイアウト オブジェクトのフィット object-cover 要素内の画像やビデオを親要素に合わせてトリミング object-{fit} の形式で様々なフィットの方法を指定できる
レイアウト 高さ h-64 要素の高さを16remに設定 h-{size} の形式で様々な高さを指定できる
フィルター グレースケール grayscale 画像をグレースケールに変換 grayscale-{amount} の形式で様々な量を指定できる
グループ ホバー時のフィルター group-hover:filter-none グループ内の要素にホバーした際、フィルターを無効化 group-hover:{modifier} の形式で様々な修飾子を指定できる
レイアウト 位置 absolute 要素を絶対的な位置に配置 static, fixed, relative, sticky なども指定できる
レイアウト インセット inset-0 要素の上下左右を0に設定 inset-{size} の形式で様々なインセットを指定できる
テキスト テキストの色 text-white テキストの色を白に設定 text-{color} の形式で様々な色を指定できる
グループ ホバー時のスケール group-hover:scale-[120%] グループ内の要素にホバーした際、要素を120%に拡大 group-hover:scale-{amount} の形式で様々な拡大率を指定できる
トランジション トランジション transition 要素の状態変化にトランジションを適用 transition-{property} の形式で様々なプロパティを指定できる
レイアウト 高さ h-5 要素の高さを1.25remに設定 h-{size} の形式で様々な高さを指定できる
レイアウト w-5 要素の幅を1.25remに設定 w-{size} の形式で様々な幅を指定できる
レイアウト マージン mx-3 左右のマージンを0.75remに設定 m{t|r|b|l|x|y}-{size} の形式で様々なマージンを指定できる
レイアウト マージン mt-1 上のマージンを0.25remに設定 m{t|r|b|l|x|y}-{size} の形式で様々なマージンを指定できる
レイアウト 高さ h-1 要素の高さを0.25remに設定 h-{size} の形式で様々な高さを指定できる
バックグラウンド 背景色 bg-gray-200 背景色を灰色の200番に設定 bg-{color}-{shade} の形式で様々な色を指定できる
ボーダー 角丸 rounded 要素の角を丸くする rounded-{size} の形式で様々な角丸のサイズを指定できる
バックグラウンド ダークモードの背景色 dark:bg-gray-800 ダークモード時の背景色を灰色の800番に設定 dark:bg-{color}-{shade} の形式で様々な色を指定できる
レイアウト 位置 left-0 要素を左端に配置 left-{size} の形式で様々な位置を指定できる
レイアウト 位置 top-0 要素を上端に配置 top-{size} の形式で様々な位置を指定できる
レイアウト 高さ h-full 要素の高さを100%に設定 h-{size} の形式で様々な高さを指定できる
バックグラウンド 背景色 bg-yellow-500 背景色を黄色の500番に設定 bg-{color}-{shade} の形式で様々な色を指定できる
レイアウト w-1/2 要素の幅を50%に設定 w-{fraction} の形式で様々な幅の割合を指定できる
テキスト フォントサイズ text-sm テキストのフォントサイズを0.875remに設定 text-{size} の形式で様々なフォントサイズを指定できる
レイアウト マージン mt-3 上のマージンを0.75remに設定 m{t|r|b|l|x|y}-{size} の形式で様々なマージンを指定できる
MAAAAAAAAAAAMAAAAAAAAAAA
nino+で頻出するTailwindCSS
スタイルの種類 カテゴリー クラス 説明 追加情報 追加情報2
アニメーション 持続時間 duration-75 アニメーションやトランジションの長さを75ミリ秒に設定 transition-duration: 75ms; を適用 他の持続時間クラス: duration-100, duration-150, duration-200, duration-300, duration-500, duration-700, duration-1000
アスペクト比 比率 aspect-[2/4] 要素の縦横比を2:4に設定 aspect-ratio: 2 / 4; を適用 他の比率も同様に指定可能
サイズ w-20 要素の幅を5rem (通常は80px) に設定 width: 5rem; を適用 他の幅クラス: w-0, w-1, w-2, w-3, w-4, w-5, w-6, w-8, w-10, w-12, w-16, w-24, w-32, w-40, w-48, w-56, w-64, w-auto, w-px, w-1/2, w-1/3, w-2/3, w-1/4, w-2/4, w-3/4, w-1/5, w-2/5, w-3/5, w-4/5, w-1/6, w-2/6, w-3/6, w-4/6, w-5/6, w-1/12, w-2/12, w-3/12, w-4/12, w-5/12, w-6/12, w-7/12, w-8/12, w-9/12, w-10/12, w-11/12, w-full, w-screen, w-min, w-max, w-fit
ポジショニング インセット inset-0 要素の上下左右を親要素に対して0に設定する top: 0; right: 0; bottom: 0; left: 0; を適用する 他にも inset-x-0, inset-y-0, top-0, right-0, bottom-0, left-0 などの指定が可能
ポジショニング 位置 relative 要素を相対位置に配置する position: relative; を適用する 他の位置クラス: static, fixed, absolute, sticky
レイアウト 位置 relative 要素を通常の文書フローに従って配置し、 top、right、bottom、leftプロパティで相対的に配置 position: relative; を適用 他の位置クラス: static, absolute, fixed, sticky
レイアウト オーバーレイ sticky 要素を指定した位置に固定し、スクロールしてもその位置に留まる position: sticky; を適用 他のオーバーレイクラス: z-0, z-10, z-20, z-30, z-40, z-50, z-auto
レイアウト オーバーレイ top-8 要素の上端を基準線から8単位 (32px) 下に配置 top: 2rem; を適用 (1単位 = 0.25rem = 4px) 他の位置クラス: top-0, top-px, top-0.5, ..., top-96 など
スペーシング パディング p-6 要素の上下左右に6単位 (24px) のパディングを適用 padding: 1.5rem; を適用 (1単位 = 0.25rem = 4px) 他のパディングクラス: p-0, p-px, p-0.5, ..., p-96 など
レイアウト ボックスの装飾 border 要素に1px幅のボーダーを適用 border-width: 1px; を適用 他のボーダークラス: border-0, border-2, border-4, border-8, border-t, border-r, border-b, border-l など
MAAAAAAAAAAAMAAAAAAAAAAA
真ん中に持ってくる系のやつ+ 表のヘッダーを画面に固定するやつ(Ninoさん作)
スタイルの種類 カテゴリー クラス 説明 使用ケース 追加情報
レイアウト 位置 left-1/2 -translate-x-1/2 絶対配置の要素を水平方向に中央に配置します。position: absolute; が設定された要素に対して、left: 50%; で要素の左端を親要素の中央に配置し、transform: translateX(-50%); で要素自体を左に50%移動させることで、要素全体を中央に配置します。 ポップアップ、オーバーレイ、または特定の位置に配置する必要があるその他の要素を中央に配置したい場合に使用します。 絶対配置の要素に使用。right-1/2 -translate-x-1/2 でも同様の効果が得られます。
フレックスボックスとグリッド フレックスボックス justify-center フレックスコンテナ内のアイテムを水平方向に中央揃えにします。display: flex; が設定された親要素に対して、justify-content: center; を適用することで、子要素を水平方向に中央揃えにします。 横並びの要素を中央揃えにしたい場合、例えばナビゲーションメニューやボタングループを中央に配置する場合に使用します。 他の水平方向の配置クラス: justify-start, justify-end, justify-between, justify-around, justify-evenly
スペーシング マージン mx-auto 要素の横幅を最大にせず、左右のマージンを自動設定して中央に配置します。ブロックレベル要素に対して、margin-left: auto; margin-right: auto; を適用することで、要素の横幅が最大にならないようにしつつ、左右のマージンを自動で調整して要素を中央に配置します。 要素の横幅を指定しつつ、ページ内で中央に配置したい場合に使用します。例えば、幅が制限されたコンテナやカードを中央に配置する場合に適しています。 ブロックレベル要素に使用。my-auto で垂直方向の中央揃えが可能です。
タイポグラフィ テキストの配置 text-center インライン要素(テキストなど)を中央揃えにします。text-align: center; を適用することで、要素内のテキストを中央揃えにします。 見出し、段落、ボタンのテキストなどを中央揃えにしたい場合に使用します。 他のテキスト配置クラス: text-left, text-right, text-justify

https://play.tailwindcss.com/yarwTVvrPw?file=css

MAAAAAAAAAAAMAAAAAAAAAAA
表っぽくするやつ

スタイルの種類 カテゴリー クラス 説明 使用ケース 追加情報
レイアウト グリッド grid 要素をグリッドレイアウトに変換します。 ページ全体やセクション全体をグリッドレイアウトにしたい場合。 他のグリッドクラスと組み合わせて使用します。
レイアウト 高さ min-h-screen 要素の最小高さをビューポートの高さに設定します。 ページ全体を覆うコンテナを作成したい場合。 フレックスボックスやグリッドレイアウトと組み合わせて使用することが多いです。
レイアウト w-full 要素の幅を親要素の幅に合わせます。 要素を親要素の幅に合わせたい場合。 他の幅関連クラスと組み合わせて使用可能。
レイアウト グリッド grid-cols-[280px_1fr] グリッドレイアウトにカスタム列幅を指定します。最初の列は280px、2番目の列は残りの幅を占めます。 固定幅のサイドバーとそれに続く可変幅のコンテンツエリアを作成する場合。 カスタム値を使用して、特定のレイアウトニーズに対応できます。
スタイルの種類 カテゴリー クラス 説明 使用ケース 追加情報
レイアウト 境界 border-r 要素の右側にボーダーを追加します。 サイドバーなどの境界を示す場合。 border-lborder-t など他の境界クラスと組み合わせて使用可能。
レイアウト 境界 border-b 要素の下側にボーダーを追加します。 下側に境界を示す場合。 他の境界クラスと組み合わせて使用可能。
レイアウト 背景 bg-gray-100/40 背景色を半透明のグレーに設定します。 淡い背景色を使用したい場合。 ダークモード用の dark:bg-gray-800/40 と組み合わせて使用。
レイアウト 背景 dark:bg-gray-800/40 ダークモード時の背景色を半透明のグレーに設定します。 ダークモード対応時に使用。 ライトモード用の背景クラスと組み合わせて使用。
レイアウト 表示 block 要素をブロック表示にします。 ブロックレベルの要素として表示する場合。 インライン要素やフレックス要素と併用可能。
フレックスボックス フレックス flex 要素をフレックスボックスレイアウトに変換します。 フレックスボックスレイアウトを適用したい場合。 フレックスディレクションやジャスティファイコンテンツと組み合わせて使用。
フレックスボックス 高さ h-full 要素の高さを親要素の高さに合わせます。 フレックスボックスやグリッドコンテナ内で要素を全高にしたい場合。 他の高さ関連クラスと組み合わせて使用可能。
フレックスボックス 高さ max-h-screen 要素の最大高さをビューポートの高さに設定します。 高さをビューポートに制限したい場合。 他の高さ関連クラスと組み合わせて使用可能。
フレックスボックス 高さ h-[60px] 要素の高さを60pxに固定します。 固定高さの要素を作成したい場合。 カスタム高さのクラス。
フレックスボックス ギャップ gap-2 要素間のギャップを設定します。 要素間にスペースを追加したい場合。 他のギャップ関連クラスと組み合わせて使用可能。
フレックスボックス アイテム items-center フレックスアイテムを縦方向に中央揃えにします。 フレックスコンテナ内でアイテムを中央揃えにしたい場合。 他のアライメントクラスと組み合わせて使用可能。
フォーム 入力 appearance-none デフォルトのスタイルを削除します。 カスタムスタイルを適用したいフォーム要素に使用。 入力フィールドやボタンに適用可能。
レイアウト w-full 要素の幅を親要素の幅に合わせます。 要素を親要素の幅に合わせたい場合。 他の幅関連クラスと組み合わせて使用可能。
フォーム 入力 pl-8 入力フィールドの左パディングを設定します。 アイコンと一緒に入力フィールドを使用する場合。 パディング値はカスタマイズ可能。
カラー テキスト text-gray-500 テキストの色をグレーに設定します。 主要なテキストの強調に使用。 他のテキストカラークラスと組み合わせて使用可能。
カラー テキスト dark:text-gray-400 ダークモード時のテキストの色を薄いグレーに設定します。 ダークモード対応時に使用。 ライトモード用のテキストカラークラスと組み合わせて使用。
スタイルの種類 カテゴリー クラス 説明 使用ケース 追加情報
フレックスボックス フレックス flex 要素をフレックスボックスレイアウトに変換します。 フレックスボックスレイアウトを適用したい場合。 フレックスディレクションやジャスティファイコンテンツと組み合わせて使用。
フレックスボックス 方向 flex-col フレックスアイテムを縦方向に配置します。 フレックスボックスの方向を設定したい場合。 flex-row など他の方向クラスと組み合わせて使用可能。
フレックスボックス フレックス flex-1 フレックスアイテムの成長を1に設定します。 フレックスコンテナ内でアイテムを均等に成長させたい場合。 他の成長関連クラスと組み合わせて使用可能。
フレックスボックス ギャップ gap-4 要素間のギャップを設定します。 要素間にスペースを追加したい場合。 他のギャップ関連クラスと組み合わせて使用可能。
フレックスボックス ギャップ md:gap-8 中サイズ以上のスクリーンで要素間のギャップを設定します。 レスポンシブデザインに対応する場合。 他のギャップ関連クラスと組み合わせて使用可能。
レイアウト パディング p-4 全方向に4単位のパディングを追加します。 要素に均等なパディングを追加したい場合。 他のパディングクラスと組み合わせて使用可能。
レイアウト パディング md:p-6 中サイズ以上のスクリーンで全方向に6単位のパディングを追加します。 レスポンシブデザインに対応する場合。 他のパディングクラスと組み合わせて使用可能。
フレックスボックス アイテム items-center フレックスアイテムを縦方向に中央揃えにします。 フレックスコンテナ内でアイテムを中央揃えにしたい場合。 他のアライメントクラスと組み合わせて使用可能。
フレックスボックス 配置 justify-between フレックスアイテムを左右両端に配置します。 スペースの分配をしたい場合。 他の配置関連クラスと組み合わせて使用可能。
フォーム フォント font-semibold テキストの太さを設定します。 強調したいテキストに使用。 他のフォント関連クラスと組み合わせて使用可能。
フォーム テキスト text-lg テキストのサイズを大きく設定します。 大きめのテキストを使用したい場合。 他のテキストサイズクラスと組み合わせて使用可能。
フォーム テキスト md:text-2xl 中サイズ以上のスクリーンでテキストのサイズを設定します。 レスポンシブデザインに対応する場合。 他のテキストサイズクラスと組み合わせて使用可能。
フォーム パディング py-1 上下に1単位のパディングを追加します。 要素に上下のパディングを追加したい場合。 他のパディングクラスと組み合わせて使用可能。
フォーム パディング px-2 左右に2単位のパディングを追加します。 要素に左右のパディングを追加したい場合。 他のパディングクラスと組み合わせて使用可能。
フォーム 入力 w-full 要素の幅を親要素の幅に合わせます。 要素を親要素の幅に合わせたい場合。 他の幅関連クラスと組み合わせて使用可能。
フォーム 入力 h-full 要素の高さを親要素の高さに合わせます。 要素を親要素の高さに合わせたい場合。 他の高さ関連クラスと組み合わせて使用可能。
フォーム 入力 resize-none 要素のリサイズを無効にします。 入力フィールドのサイズを固定したい場合。 テキストエリアに使用。
フォーム 境界 border 要素に境界を追加します。 要素の境界を強調したい場合。 他の境界クラスと組み合わせて使用可能。
フォーム シャドウ shadow-sm 小さなシャドウを追加します。 要素に微妙なシャドウを追加したい場合。 他のシャドウクラスと組み合わせて使用可能。
フォーム 角丸 rounded-lg 要素の角を大きく丸めます。 要素の角を丸めて柔らかい印象を与えたい場合。 他の角丸クラスと組み合わせて使用可能。
MAAAAAAAAAAAMAAAAAAAAAAA
Tailwind CSSの便利なユーティリティクラス一覧

Tailwind CSSは、HTMLの要素に直接スタイルを適用するためのユーティリティクラスを多数提供しています。これらのクラスを使うことで、CSSを書かなくてもほとんどのスタイリングを行うことができます。以下の表は、よく使われるユーティリティクラスの一部をまとめたものです。

スタイルの種類 カテゴリー クラス 説明 追加情報
テキスト フォントの太さ font-bold テキストを太字にする font-normalfont-mediumfont-semiboldfont-extraboldfont-blackもある
テキスト フォントサイズ text-xl テキストを大きくする(1.25rem) text-xstext-smtext-basetext-lgtext-2xltext-3xltext-4xltext-5xltext-6xlもある
テキスト テキストの配置 text-center テキストを中央揃えにする text-lefttext-righttext-justifyもある
背景 背景色 bg-blue-500 背景色を青色にする 他の色も数字を変えることで指定できる(例:bg-red-200bg-green-700など)
ボーダー 角丸 rounded 要素の角を丸くする rounded-nonerounded-smrounded-mdrounded-lgrounded-fullもある
ボーダー ボーダー幅 border-2 ボーダーの幅を2pxにする borderborder-0border-4border-8もある
レイアウト パディング p-4 要素の上下左右に16pxのパディングを追加する pl-4(左)、pr-4(右)、pt-4(上)、pb-4(下)のように方向を指定することもできる
レイアウト マージン m-4 要素の上下左右に16pxのマージンを追加する パディングと同様に、ml-4(左)、mr-4(右)、mt-4(上)、mb-4(下)のように方向を指定することもできる
フレックスボックス フレックスの方向 flex-row フレックスアイテムを横方向に並べる flex-row-reverseflex-colflex-col-reverseもある
フレックスボックス フレックスアイテムの配置 justify-center フレックスアイテムを中央揃えにする justify-startjustify-endjustify-betweenjustify-aroundもある

これらは、Tailwind CSSで提供されている多数のユーティリティクラスのほんの一部です。Tailwind CSSを使うことで、ほとんどのスタイリングをHTMLのクラス名だけで実現することができます。

例えば、ボタンを作る際には以下のようなクラス名を使うことができます。

<button class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">
  Click Me
</button>

このように、Tailwind CSSのユーティリティクラスを組み合わせることで、簡単に見た目の良いUIコンポーネントを作ることができます。また、クラス名から直感的にスタイルを理解できるため、メンテナンス性も高くなります。