ToollyToolly
ボタンコード生成用

送信中の状態を示すボタン

押したあとにスピナーを出して、二重送信を防ぐ。

用途・説明

押すと文言の横にスピナーが回り、処理が終わるまで再度押せなくなる送信ボタンを1つ作ります。フォームの送信や決済、保存など、結果が返るまで少し待つ操作に使います。待っている間にボタンの幅が変わらない指定にしています。

仕上がり例です。使用するAIや指示の解釈によって、実際の出力は異なります。

カラーとサイズを選ぶ

選んだ内容は、上の仕上がり例と下のプロンプト全文に反映されます。

カラー
サイズ

書き換える項目

プロンプト内の[ ]の部分を、つくりたいサイトに合わせて書き換えてから使ってください。

[ボタン文言]
通常時の文言。例:送信する
[送信中の文言]
例:送信中…
[使用技術]
例:HTML/CSS/JavaScript、React + Tailwind CSS

プロンプト全文

あなたはフォームのUXに詳しいフロントエンドエンジニアです。
以下の条件で「送信中の状態を示すボタン」を1つ実装してください。

## 表示内容
- 通常時:[ボタン文言]
- 送信中:スピナー + [送信中の文言]

## デザイン
- 背景 #1463F0、文字 #FFFFFF、高さ 48px、左右padding 24px、角丸 8px
- 文字:16px、font-weight 700
- スピナー:18px の円。線の太さ 2px、白の40%透明の輪の一部だけを白にして、1周 0.8秒で回す
- スピナーと文字の間隔は 8px

## 動作
- 押した直後に送信中の表示へ切り替え、処理が終わるまで再度押せないようにする
- 送信中も、通常時とボタンの幅が変わらないようにする(文字数の差でレイアウトが動かないよう、最小幅を確保する)
- 処理が成功・失敗したら通常時の表示に戻す
- 送信中は hover の見た目の変化を止め、カーソルを progress にする

## 実装の注意
- 送信中の制御は disabled 属性ではなく aria-disabled="true" とクリックの無効化で行う(フォーカスが外れないようにするため)
- 送信処理は仮の関数(2秒待つだけ)にして、差し替える箇所をコメントで示す

## アクセシビリティ
- button 要素(type="submit" または "button")で実装する
- 送信中は aria-busy="true" を付ける
- スピナーは aria-hidden="true"。状態の変化は、ボタン内の文言が変わることで伝える
- prefers-reduced-motion のときは回転を止め、文言だけで送信中だと分かるようにする

## 出力形式
- [使用技術]で、このボタン1つぶんのコードを出力
- JavaScriptは状態の切り替えに必要な最小限にする

使い方

  1. 1「書き換える項目」を見ながら、プロンプト内の[ ]の部分を自分のサイトの内容に書き換えます。色とサイズはこのページ上で選ぶと、プロンプトに自動で反映されます。
  2. 2「プロンプトをコピー」を押し、Claude・ChatGPT・GeminiなどのAIにそのまま貼り付けて送信します。
  3. 3出力されたコードを自分のサイトに貼り付けて表示を確認します。直したいところは「余白をもう少し広く」のように、続けてAIに伝えると調整できます。
すべて見る