Formsプラグイン
@tailwindcss/formsは公式formsプラグインの1:1のPHP移植版です。テキスト入力欄、テキストエリア、選択欄、チェックボックス、ラジオボタンなどのフォームコントロールを、統一された基準に整える独自のリセットを提供します(外観のリセット、境界線、パディング、フォーカスリング、カスタム選択欄のシェブロン、チェックボックスとラジオボタンのアイコン)。その後、ユーティリティで上書きできます。
使い方
@pluginでプラグインを読み込み、utilitiesレイヤーをインポートします。
PHP
use TailwindPHP\tw;
$css = tw::generate(
'<input class="form-input"><select class="form-select"></select>',
'@plugin "@tailwindcss/forms"; @import "tailwindcss/utilities.css";'
);
適用方式
strategyオプションでスタイルの適用方法を制御します。
| 適用方式 | 動作 |
|---|---|
base |
[type='text']、textarea、selectなどのセレクターを使い、ネイティブのフォーム要素全体にスタイルを適用します。 |
class |
明示的にform-*クラスを指定した要素だけにスタイルを適用し、クラスのない要素には適用しません。 |
strategyを省略すると、両方の方式が適用されます。ネイティブ要素にはベースリセットが適用され、form-*クラスも使えるようになります。どちらか一方の方式を指定すると、もう一方は適用されません。
CSS
@plugin "@tailwindcss/forms" {
strategy: "class";
}
クラス方式
class方式(またはデフォルト)では、スタイルを適用する要素に次のクラスを明示的に指定します。
| クラス | 要素 |
|---|---|
form-input |
テキスト系の入力欄 |
form-textarea |
<textarea> |
form-select |
<select> |
form-multiselect |
<select multiple> |
form-checkbox |
<input type="checkbox"> |
form-radio |
<input type="radio"> |
PHP
$css = tw::generate(
'
<input class="form-input">
<textarea class="form-textarea"></textarea>
<select class="form-select"></select>
<select class="form-multiselect" multiple></select>
<input type="checkbox" class="form-checkbox">
<input type="radio" class="form-radio">
',
'
@plugin "@tailwindcss/forms" {
strategy: "class";
}
@import "tailwindcss/utilities.css";
'
);
各クラスはコントロールの外観をリセットし、境界線、パディング、フォーカスリングを設定します。form-selectはシェブロンの背景画像を追加し、form-checkbox/form-radioはチェック時のアイコンを追加します。通常のユーティリティ(たとえばclass="form-input rounded-lg border-gray-300")で上書きできます。
@pluginディレクティブと読み込み方法はプラグインを参照してください。