3D 立体プッシュボタン

UI コンポーネント Easy #css #button #3d #skeumorphic

box-shadow と transform で実装する 3D 押下感ボタン。クリックでボタンが「沈む」演出により、リアルな操作感を提供。CSS のみ・3 色バリアント付き。

▶ プレビュー

解説

3D 立体プッシュボタンは、下方向のソリッドな box-shadow0 6px 0 #c63a4d)でボタンの「厚み」を描き、その下に柔らかい影を重ねて床からの浮きを表現します。クリック時には :activetranslateY(4px) によりボタンを沈め、同時に厚みの影を 6px から 2px へ縮めることで、物理的に押し込まれる感触を再現しています。JavaScript は使わず、CSS の transform と影の差し替えだけで完結します。

使う場面

  • ゲームやキッズ向けサイトの楽しい操作ボタン
  • 押した実感を強く出したい申込・購入ボタン
  • スマホアプリ風のフィジカルな UI

厚みの色(ここでは #c63a4d)は表面色より一段暗いトーンにすると立体感が自然になります。沈み込みの深さは translateY と影の差で決まるので、両者をセットで調整してください。transition.12s と短く小気味よい反面、動きに敏感な利用者向けに prefers-reduced-motiontransform を抑える配慮も検討すると親切です。

使用例・適したシーン

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

よくある質問

押し込む深さや色を変えられますか
厚みは box-shadow の縦オフセット(通常時 6px、押下時 2px)と :active の translateY(4px) で決まります。これらの数値を揃えて増減すれば沈み込みの量を調整できます。色は表面の #f5576c と厚みの #c63a4d を変え、厚み側を少し暗めにすると立体感が保てます。
押した感じが急すぎる気がします
transition の .12s を .2s 程度に伸ばすと、もう少し滑らかに沈みます。動きを抑えたい場合は prefers-reduced-motion メディアクエリで transform を無効化し、色変化だけにする対応も検討できます。
inspired by common pattern / 追加日:2026-05-12
← すべてのスニペットへ戻る