クリップボードコピーボタン

便利系 Easy #clipboard #copy #code #button #utility

このパーツは、表示中のコードやコマンドを 1 クリックで端末のクリップボードへ写すコピーボタンです。左側の code 要素にテキストを置き、ボタン押下時に navigator.clipboard.writeText() で textContent をそのまま渡しています。

▶ プレビュー

解説

このパーツは、表示中のコードやコマンドを 1 クリックで端末のクリップボードへ写すコピーボタンです。左側の code 要素にテキストを置き、ボタン押下時に navigator.clipboard.writeText()textContent をそのまま渡しています。成功すると文言が「コピー済み!」に変わり、clipboard__btn--done クラスで色が緑に切り替わったあと、setTimeout で 2 秒後に元へ戻ります。コピー失敗時は catch でアラートを出すので、対応していない環境でも黙って止まりません。

使う場面

  • インストールコマンドや API キーを案内する技術ドキュメント
  • SNS シェア用のテキストや紹介コードを配るランディングページ
  • 管理画面で発行した URL やトークンを利用者に渡すとき

カスタマイズはまず色から。ボタンの背景 #667eea と完了時の #10b981 をブランド色に置き換えれば馴染みます。コピー枠が狭いと長い文字列が省略されるので、text-overflow:ellipsis のままにするか折り返すかは内容で決めましょう。navigator.clipboard は HTTPS か localhost でしか動かない点と、完了表示は色だけでなく文言でも伝えている点が実用上の要です。

よくある質問

コピーする文字列はどこを書き換えればよいですか?
HTML の code 要素(id が code-text)の中身を差し替えるだけです。スクリプトはその textContent を読んでコピーするので、JavaScript 側を触る必要はありません。
ローカルのファイルを開いただけだとコピーできないのはなぜですか?
navigator.clipboard は安全なコンテキスト、つまり HTTPS か localhost でしか許可されていないためです。本番ではサーバー経由で配信すれば動作します。
追加日:2026-05-26
← すべてのスニペットへ戻る