扇形に展開シェアボタン

UI コンポーネント Medium #js #button #share #fan

クリックすると複数のシェアアイコンが扇形(弧)を描いて飛び出すボタンです。メインボタンの onclick で is-on クラスを付け外しし、各アイコンは --i というインデックス変数を持って transition-delay をずらすことで、順番にパッと開く動きを作っています。

▶ プレビュー

解説

クリックすると複数のシェアアイコンが扇形(弧)を描いて飛び出すボタンです。メインボタンの onclickis-on クラスを付け外しし、各アイコンは --i というインデックス変数を持って transition-delay をずらすことで、順番にパッと開く動きを作っています。アイコンの位置は親要素の左上を基準に transform: translate() で散らしているため、JavaScript はトグル一行だけで済みます。

使う場面

  • 記事やLPの末尾に置くSNSシェアの導線
  • 普段は1つの丸に畳んで省スペースにしたいフローティングメニュー
  • ポートフォリオやイベントページの遊び心ある共有ボタン

展開する数を増やすときは --i の値と translate の座標を足していきます。閉じている間はアイコンを pointer-events:none にして誤クリックを防いでいる点が実用上のポイントです。アクセシビリティ面では、装飾文字のアイコンを実際のリンクにする際に aria-label を添え、開閉状態を aria-expanded で伝えると、キーボードや読み上げ環境でも扱いやすくなります。

使用例・適したシーン

  • お問い合わせフォームの送信ボタン
  • 資料ダウンロードの CTA
  • ヒーローセクションの主要 CTA
  • サブスク・申込ボタン

よくある質問

展開するアイコンの数を増やせますか?
増やせます。HTMLにシェア用の要素を追加し、それぞれの --i の値を連番で振り、CSSの translate 座標を弧に沿うように足していけば、好きな数だけ展開できます。
JavaScriptは必須ですか?
開閉のトグルにJavaScriptを1行使っています。チェックボックスのチェック状態をCSSのセレクタで拾う方法に置き換えれば、JavaScriptなしの実装も可能です。
inspired by common pattern / 追加日:2026-05-12
← すべてのスニペットへ戻る