中央寄り → 広がる伸縮型

UI コンポーネント Medium #js #hamburger #spread #minimal

このボタンは閉じた状態で 長さの違う 3 本線 を右寄せに並べ、開くと両端まで広がって X 形になる伸縮型のメニューです。各線の幅を 32px ・ 22px ・ 28px と意図的にずらすことで、左に余白が空いた抜け感のある表情になります。

▶ プレビュー

解説

このボタンは閉じた状態で長さの違う 3 本線を右寄せに並べ、開くと両端まで広がって X 形になる伸縮型のメニューです。各線の幅を 32px22px28px と意図的にずらすことで、左に余白が空いた抜け感のある表情になります。transform-origin:right center を基準に線が伸び縮みし、中央の線は width:0 に縮んで消えます。動きは CSS の transition のみ、JavaScript は aria-pressed の真偽を入れ替える役だけです。

合うシーン

  • 余白を大切にするミニマルなポートフォリオやブランドサイト
  • 装飾を抑えたモード系・編集系のヘッダー
  • 背景に溶け込ませたい透過配置のメニュー

枠も背景も持たない設計なので、置く場所の地色とのコントラストだけ確保すれば馴染みます。線色 #1a1a2e を背景に合わせて変え、暗い面では明色にしてください。線が右端で開くため、ボタン全体の当たり判定(タップ領域)は 60px 角を保ち、見た目より小さくしないのがアクセシビリティ上のコツです。

使用例・適したシーン

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

よくある質問

線がずれて見えるのは仕様ですか?
はい。閉じた状態で 3 本の幅をあえて変え、右寄せにすることでミニマルな抜け感を出す設計です。揃えたい場合は各 nth-child の width を同じ値にすれば均一なハンバーガーになります。
暗い背景でも使えますか?
使えます。線色の #1a1a2e を白や明るい色に変えるだけで暗い背景にも対応します。枠線や塗りがない分、地色との明度差を確保することだけ意識してください。
追加日:2026-05-12
← すべてのスニペットへ戻る