💤

【Tailwind和訳】TYPOGRAPHY/Placeholder Color

2021/10/24に公開

この記事について

この記事は、TYPOGRAPHY/Placeholder Colorの記事を和訳したものです。

記事内で使用する画像は、公式ドキュメント内の画像を引用して使用させていただいております。

Placeholder Color

プレースホルダーテキストの色をコントロールするためのユーティリティ。

Class Properties
placeholder-transparent::placeholder color: transparent;
placeholder-current::placeholder color: currentColor;
placeholder-black::placeholder --tw-placeholder-opacity: 1;
color: rgba(0, 0, 0, var(--tw-placeholder-opacity));
placeholder-white::placeholder --tw-placeholder-opacity: 1;
color: rgba(255, 255, 255, var(--tw-placeholder-opacity));
placeholder-gray-50::placeholder --tw-placeholder-opacity: 1;
color: rgba(249, 250, 251, var(--tw-placeholder-opacity));
placeholder-gray-100::placeholder --tw-placeholder-opacity: 1;
color: rgba(243, 244, 246, var(--tw-placeholder-opacity));
placeholder-gray-200::placeholder --tw-placeholder-opacity: 1;
color: rgba(229, 231, 235, var(--tw-placeholder-opacity));
placeholder-gray-300::placeholder --tw-placeholder-opacity: 1;
color: rgba(209, 213, 219, var(--tw-placeholder-opacity));
placeholder-gray-400::placeholder --tw-placeholder-opacity: 1;
color: rgba(156, 163, 175, var(--tw-placeholder-opacity));
placeholder-gray-500::placeholder --tw-placeholder-opacity: 1;
color: rgba(107, 114, 128, var(--tw-placeholder-opacity));
placeholder-gray-600::placeholder --tw-placeholder-opacity: 1;
color: rgba(75, 85, 99, var(--tw-placeholder-opacity));
placeholder-gray-700::placeholder --tw-placeholder-opacity: 1;
color: rgba(55, 65, 81, var(--tw-placeholder-opacity));
placeholder-gray-800::placeholder --tw-placeholder-opacity: 1;
color: rgba(31, 41, 55, var(--tw-placeholder-opacity));
placeholder-gray-900::placeholder --tw-placeholder-opacity: 1;
color: rgba(17, 24, 39, var(--tw-placeholder-opacity));
placeholder-red-50::placeholder --tw-placeholder-opacity: 1;
color: rgba(254, 242, 242, var(--tw-placeholder-opacity));
placeholder-red-100::placeholder --tw-placeholder-opacity: 1;
color: rgba(254, 226, 226, var(--tw-placeholder-opacity));
placeholder-red-200::placeholder --tw-placeholder-opacity: 1;
color: rgba(254, 202, 202, var(--tw-placeholder-opacity));
placeholder-red-300::placeholder --tw-placeholder-opacity: 1;
color: rgba(252, 165, 165, var(--tw-placeholder-opacity));
placeholder-red-400::placeholder --tw-placeholder-opacity: 1;
color: rgba(248, 113, 113, var(--tw-placeholder-opacity));
placeholder-red-500::placeholder --tw-placeholder-opacity: 1;
color: rgba(239, 68, 68, var(--tw-placeholder-opacity));
placeholder-red-600::placeholder --tw-placeholder-opacity: 1;
color: rgba(220, 38, 38, var(--tw-placeholder-opacity));
placeholder-red-700::placeholder --tw-placeholder-opacity: 1;
color: rgba(185, 28, 28, var(--tw-placeholder-opacity));
placeholder-red-800::placeholder --tw-placeholder-opacity: 1;
color: rgba(153, 27, 27, var(--tw-placeholder-opacity));
placeholder-red-900::placeholder --tw-placeholder-opacity: 1;
color: rgba(127, 29, 29, var(--tw-placeholder-opacity));
placeholder-yellow-50::placeholder --tw-placeholder-opacity: 1;
color: rgba(255, 251, 235, var(--tw-placeholder-opacity));
placeholder-yellow-100::placeholder --tw-placeholder-opacity: 1;
color: rgba(254, 243, 199, var(--tw-placeholder-opacity));
placeholder-yellow-200::placeholder --tw-placeholder-opacity: 1;
color: rgba(253, 230, 138, var(--tw-placeholder-opacity));
placeholder-yellow-300::placeholder --tw-placeholder-opacity: 1;
color: rgba(252, 211, 77, var(--tw-placeholder-opacity));
placeholder-yellow-400::placeholder --tw-placeholder-opacity: 1;
color: rgba(251, 191, 36, var(--tw-placeholder-opacity));
placeholder-yellow-500::placeholder --tw-placeholder-opacity: 1;
color: rgba(245, 158, 11, var(--tw-placeholder-opacity));
placeholder-yellow-600::placeholder --tw-placeholder-opacity: 1;
color: rgba(217, 119, 6, var(--tw-placeholder-opacity));
placeholder-yellow-700::placeholder --tw-placeholder-opacity: 1;
color: rgba(180, 83, 9, var(--tw-placeholder-opacity));
placeholder-yellow-800::placeholder --tw-placeholder-opacity: 1;
color: rgba(146, 64, 14, var(--tw-placeholder-opacity));
placeholder-yellow-900::placeholder --tw-placeholder-opacity: 1;
color: rgba(120, 53, 15, var(--tw-placeholder-opacity));
placeholder-green-50::placeholder --tw-placeholder-opacity: 1;
color: rgba(236, 253, 245, var(--tw-placeholder-opacity));
placeholder-green-100::placeholder --tw-placeholder-opacity: 1;
color: rgba(209, 250, 229, var(--tw-placeholder-opacity));
placeholder-green-200::placeholder --tw-placeholder-opacity: 1;
color: rgba(167, 243, 208, var(--tw-placeholder-opacity));
placeholder-green-300::placeholder --tw-placeholder-opacity: 1;
color: rgba(110, 231, 183, var(--tw-placeholder-opacity));
placeholder-green-400::placeholder --tw-placeholder-opacity: 1;
color: rgba(52, 211, 153, var(--tw-placeholder-opacity));
placeholder-green-500::placeholder --tw-placeholder-opacity: 1;
color: rgba(16, 185, 129, var(--tw-placeholder-opacity));
placeholder-green-600::placeholder --tw-placeholder-opacity: 1;
color: rgba(5, 150, 105, var(--tw-placeholder-opacity));
placeholder-green-700::placeholder --tw-placeholder-opacity: 1;
color: rgba(4, 120, 87, var(--tw-placeholder-opacity));
placeholder-green-800::placeholder --tw-placeholder-opacity: 1;
color: rgba(6, 95, 70, var(--tw-placeholder-opacity));
placeholder-green-900::placeholder --tw-placeholder-opacity: 1;
color: rgba(6, 78, 59, var(--tw-placeholder-opacity));
placeholder-blue-50::placeholder --tw-placeholder-opacity: 1;
color: rgba(239, 246, 255, var(--tw-placeholder-opacity));
placeholder-blue-100::placeholder --tw-placeholder-opacity: 1;
color: rgba(219, 234, 254, var(--tw-placeholder-opacity));
placeholder-blue-200::placeholder --tw-placeholder-opacity: 1;
color: rgba(191, 219, 254, var(--tw-placeholder-opacity));
placeholder-blue-300::placeholder --tw-placeholder-opacity: 1;
color: rgba(147, 197, 253, var(--tw-placeholder-opacity));
placeholder-blue-400::placeholder --tw-placeholder-opacity: 1;
color: rgba(96, 165, 250, var(--tw-placeholder-opacity));
placeholder-blue-500::placeholder --tw-placeholder-opacity: 1;
color: rgba(59, 130, 246, var(--tw-placeholder-opacity));
placeholder-blue-600::placeholder --tw-placeholder-opacity: 1;
color: rgba(37, 99, 235, var(--tw-placeholder-opacity));
placeholder-blue-700::placeholder --tw-placeholder-opacity: 1;
color: rgba(29, 78, 216, var(--tw-placeholder-opacity));
placeholder-blue-800::placeholder --tw-placeholder-opacity: 1;
color: rgba(30, 64, 175, var(--tw-placeholder-opacity));
placeholder-blue-900::placeholder --tw-placeholder-opacity: 1;
color: rgba(30, 58, 138, var(--tw-placeholder-opacity));
placeholder-indigo-50::placeholder --tw-placeholder-opacity: 1;
color: rgba(238, 242, 255, var(--tw-placeholder-opacity));
placeholder-indigo-100::placeholder --tw-placeholder-opacity: 1;
color: rgba(224, 231, 255, var(--tw-placeholder-opacity));
placeholder-indigo-200::placeholder --tw-placeholder-opacity: 1;
color: rgba(199, 210, 254, var(--tw-placeholder-opacity));
placeholder-indigo-300::placeholder --tw-placeholder-opacity: 1;
color: rgba(165, 180, 252, var(--tw-placeholder-opacity));
placeholder-indigo-400::placeholder --tw-placeholder-opacity: 1;
color: rgba(129, 140, 248, var(--tw-placeholder-opacity));
placeholder-indigo-500::placeholder --tw-placeholder-opacity: 1;
color: rgba(99, 102, 241, var(--tw-placeholder-opacity));
placeholder-indigo-600::placeholder --tw-placeholder-opacity: 1;
color: rgba(79, 70, 229, var(--tw-placeholder-opacity));
placeholder-indigo-700::placeholder --tw-placeholder-opacity: 1;
color: rgba(67, 56, 202, var(--tw-placeholder-opacity));
placeholder-indigo-800::placeholder --tw-placeholder-opacity: 1;
color: rgba(55, 48, 163, var(--tw-placeholder-opacity));
placeholder-indigo-900::placeholder --tw-placeholder-opacity: 1;
color: rgba(49, 46, 129, var(--tw-placeholder-opacity));
placeholder-purple-50::placeholder --tw-placeholder-opacity: 1;
color: rgba(245, 243, 255, var(--tw-placeholder-opacity));
placeholder-purple-100::placeholder --tw-placeholder-opacity: 1;
color: rgba(237, 233, 254, var(--tw-placeholder-opacity));
placeholder-purple-200::placeholder --tw-placeholder-opacity: 1;
color: rgba(221, 214, 254, var(--tw-placeholder-opacity));
placeholder-purple-300::placeholder --tw-placeholder-opacity: 1;
color: rgba(196, 181, 253, var(--tw-placeholder-opacity));
placeholder-purple-400::placeholder --tw-placeholder-opacity: 1;
color: rgba(167, 139, 250, var(--tw-placeholder-opacity));
placeholder-purple-500::placeholder --tw-placeholder-opacity: 1;
color: rgba(139, 92, 246, var(--tw-placeholder-opacity));
placeholder-purple-600::placeholder --tw-placeholder-opacity: 1;
color: rgba(124, 58, 237, var(--tw-placeholder-opacity));
placeholder-purple-700::placeholder --tw-placeholder-opacity: 1;
color: rgba(109, 40, 217, var(--tw-placeholder-opacity));
placeholder-purple-800::placeholder --tw-placeholder-opacity: 1;
color: rgba(91, 33, 182, var(--tw-placeholder-opacity));
placeholder-purple-900::placeholder --tw-placeholder-opacity: 1;
color: rgba(76, 29, 149, var(--tw-placeholder-opacity));
placeholder-pink-50::placeholder --tw-placeholder-opacity: 1;
color: rgba(253, 242, 248, var(--tw-placeholder-opacity));
placeholder-pink-100::placeholder --tw-placeholder-opacity: 1;
color: rgba(252, 231, 243, var(--tw-placeholder-opacity));
placeholder-pink-200::placeholder --tw-placeholder-opacity: 1;
color: rgba(251, 207, 232, var(--tw-placeholder-opacity));
placeholder-pink-300::placeholder --tw-placeholder-opacity: 1;
color: rgba(249, 168, 212, var(--tw-placeholder-opacity));
placeholder-pink-400::placeholder --tw-placeholder-opacity: 1;
color: rgba(244, 114, 182, var(--tw-placeholder-opacity));
placeholder-pink-500::placeholder --tw-placeholder-opacity: 1;
color: rgba(236, 72, 153, var(--tw-placeholder-opacity));
placeholder-pink-600::placeholder --tw-placeholder-opacity: 1;
color: rgba(219, 39, 119, var(--tw-placeholder-opacity));
placeholder-pink-700::placeholder --tw-placeholder-opacity: 1;
color: rgba(190, 24, 93, var(--tw-placeholder-opacity));
placeholder-pink-800::placeholder --tw-placeholder-opacity: 1;
color: rgba(157, 23, 77, var(--tw-placeholder-opacity));
placeholder-pink-900::placeholder --tw-placeholder-opacity: 1;
color: rgba(131, 24, 67, var(--tw-placeholder-opacity));

使い方

placeholder-{color}ユーティリティーを使って、要素のプレースホルダーの色を制御します。

<input class="placeholder-gray-500 ..." placeholder="jane@example.com" />
<input class="placeholder-red-300 ..." placeholder="jane@example.com" />

opacity の変更

placeholder-opacity-{amount}ユーティリティーを使って、要素のプレースホルダーカラーの opacity を制御します。

<input class="placeholder-gray-500 placeholder-opacity-100 ..." placeholder="jane@example.com" />
<input class="placeholder-gray-500 placeholder-opacity-75 ..." placeholder="jane@example.com" />
<input class="placeholder-gray-500 placeholder-opacity-50 ..." placeholder="jane@example.com" />
<input class="placeholder-gray-500 placeholder-opacity-25 ..." placeholder="jane@example.com" />
<input class="placeholder-gray-500 placeholder-opacity-0 ..." placeholder="jane@example.com" />

詳しくは、プレースホルダーの opacity に関するドキュメントをご覧ください。

レスポンシブ

特定のブレークポイントで入力プレースホルダーのテキストカラーを制御するには、既存のテキストカラーユーティリティーに{screen}:というプレフィックスを追加します。例えば、md:placeholder-green-500を使用すると、medium スクリーンサイズ以上でのみplaceholder-green-500ユーティリティが適用されます。

<input class="placeholder-gray-500 md:placeholder-green-500" placeholder="jane@example.com" />

Tailwind のレスポンシブデザイン機能の詳細については、レスポンシブデザインのドキュメントをご覧ください。

Focus

フォーカスされた要素のプレースホルダーカラーをコントロールするには、既存のプレースホルダーカラーユーティリティーにfocus:というプレフィックスを追加します。例えば、focus:placeholder-blue-600を使用すると、フォーカス時にplaceholder-blue-600ユーティリティが適用されます。

<input class="placeholder-gray-600 focus:placeholder-gray-400 ..." placeholder="jane@example.com" />

フォーカスユーティリティーは、focus:プレフィックスの前にレスポンシブ{screen}:プレフィックスを追加することで、レスポンシブユーティリティーと組み合わせることもできます。

<input class="... md:placeholder-gray-900 md:focus:placeholder-red-600 ..." />

カスタマイズ

Placeholder Colors

デフォルトでは、Tailwind はデフォルトのカラーパレット全体をプレースホルダーカラーとして利用できるようにしています。

カラーパレットをカスタマイズするには、tailwind.config.jsファイルのtheme.colorsを編集するか、theme.textColorセクションでプレースホルダーカラーだけをカスタマイズすることができます。

tailwind.config.js
  module.exports = {
    theme: {
-     placeholderColor: theme => theme('colors'),
+     placeholderColor: {
+       'primary': '#3490dc',
+       'secondary': '#ffed4a',
+       'danger': '#e3342f',
+     }
    }
  }

バリアント

デフォルトでは、レスポンシブ、ダークモード(有効な場合)、フォーカスの各バリアントのみがプレースホルダー・カラー・ユーティリティ用に生成されます。

tailwind.config.jsファイルのvariantsセクションにあるplaceholderColorプロパティを変更することで、プレースホルダーカラーユーティリティのために生成されるバリアントをコントロールすることができます。

例えば、このコンフィグはhoveractiveのバリアントも生成します。

tailwind.config.js
  module.exports = {
    variants: {
      extend: {
        // ...
+       placeholderColor: ['hover', 'active'],
      }
    }
  }

無効化

プレースホルダー・カラー・ユーティリティーをプロジェクトで使用しない場合は、設定ファイルのcorePluginsセクションでplaceholderColorプロパティをfalseに設定することで、完全に無効にすることができます。

tailwind.config.js
  module.exports = {
    corePlugins: {
      // ...
+     placeholderColor: false,
    }
  }

Discussion

ログインするとコメントできます