Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

付録E AI に Tailwind コードを依頼するときのプロンプト集

第26章第27章第30章で見たとおり、AI は Tailwind を出力しやすい一方、規約を知らないと崩れがちです。ここでは、実務ですぐ使えるプロンプトの型を示します。

E.1 良い依頼の型: 前提を渡す

「カードを作って」だけでは、AI は独自の色やスケールで作ってしまいます。既存のテーマと規約を前提として渡すのがコツです。

悪い例:「Tailwind でカードコンポーネントを作って」

良い例:「Tailwind v4 でカードを作ってください。色は既存のデザイントークン(bg-surface text-foreground border-border)だけを使い、独自の bg-gray-* や任意の値([...])は使わないでください。余白は spacing スケール(p-4 p-6 など)に従ってください。」

E.2 出力形式の明示

「出力は React の関数コンポーネント(TypeScript, tsx)で、props で intent(primary/secondary)と size(sm/md)を受けられるようにしてください。バリアントは CVA で定義し、cn ヘルパーで className を合成してください。」

Rails なら「ERB の部分テンプレートで」「ViewComponent で」、と形式を指定します。

E.3 制約の指定(崩れを防ぐ)

「次の制約を守ってください。

  • クラス名は完全な文字列で書く(bg-${color} のような動的生成は禁止)。
  • 色・余白はデザイントークンを使い、任意の値([...])は避ける。
  • レスポンシブsm: md:)とアクセシビリティaria-*focus-visible:、適切な HTML 要素)を考慮する。」

E.4 そのまま使えるプロンプト例

新規 UI 生成:

「Tailwind v4 + React(tsx) で、通知カードのコンポーネントを作ってください。デザイントークン(bg-surface text-foreground text-muted)のみ使用。タイトル・本文・閉じるボタンを持ち、閉じるボタンには aria-labelfocus-visible: のリングを付けてください。動的クラス名と任意の値は使わないこと。」

既存コンポーネントの改修:

「次のコンポーネントを、ダークモード対応にしてください。dark: を直接ベタ書きするのではなく、セマンティックトークン(bg-surface など)で表現する方針です。アクセシビリティとレスポンシブは崩さないでください。\n\n(ここにコードを貼る)」

リファクタリング:

「次の長いクラス列を持つボタンを、CVA でバリアント整理し、cnclassName を合成する形にリファクタリングしてください。見た目は変えないこと。\n\n(ここにコードを貼る)」

E.5 レビュー用チェックリスト

AI の出力は「下書き」として受け取り、次を確認してから取り込みます(第27章)。

  • 使われているクラスは実在するか(綴り間違いがないか)。
  • レスポンシブが破綻していないか(md: などの設計が妥当か)。
  • アクセシビリティを落としていないか(適切な要素・aria-*・フォーカス可視化)。
  • 色・余白・角丸・影がトークンに沿っているか(直値・任意値の乱用がないか)。
  • text-${color} のような検出漏れパターンがないか。
  • 長いクラス列は、コンポーネントや CVA に畳み込めているか。