コンテンツへスキップ

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ディレクティブと読み込み方法はプラグインを参照してください。