SnippetUI

ニューモーフィズムボタン

CSSのみで実装された、立体的で柔らかい質感を持つニューモーフィズム(Neumorphism)スタイルのボタンUIです。

HTMLCSS

ニューモーフィズム(Neumorphism)デザインは、要素が背景から押し出されたような、あるいは背景に沈み込んだような視覚効果を与えるスタイルです。 このスニペットでは、HTMLとCSSのみを使用して、ホバー状態やアクティブ(クリック)状態でリアルな凹凸を表現するボタンを作成します。

実装コード

以下のコードをコピーして、プロジェクトに組み込んでください。

<!-- HTML -->
<div class="neumorphism-wrapper">
  <button class="neumorphism-btn">Neumorphism</button>
</div>
/* CSS */
.neumorphism-wrapper {
  background-color: #e0e5ec;
  padding: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.neumorphism-btn {
  background-color: #e0e5ec;
  color: #4a5568;
  border: none;
  padding: 16px 32px;
  font-size: 16px;
  font-weight: 600;
  border-radius: 50px;
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  /* 通常状態: 外側に影をつけて浮き上がらせる */
  box-shadow: 9px 9px 16px rgba(163, 177, 198, 0.6), 
             -9px -9px 16px rgba(255, 255, 255, 0.5);
}

.neumorphism-btn:hover {
  /* ホバー状態: 影を少し小さくして押し込まれる前兆を表現 */
  box-shadow: 5px 5px 10px rgba(163, 177, 198, 0.6), 
             -5px -5px 10px rgba(255, 255, 255, 0.5);
  color: #2d3748;
}

.neumorphism-btn:active {
  /* アクティブ(クリック)状態: 内側に影をつけて凹みを表現 */
  box-shadow: inset 6px 6px 10px 0 rgba(163, 177, 198, 0.6), 
              inset -6px -6px 10px 0 rgba(255, 255, 255, 0.5);
}

解説

  • 背景色の統一: ニューモーフィズムの基本として、要素の背景色とコンテナの背景色(#e0e5ec)を一致させます。
  • 2つの影(box-shadow): 左上には白っぽい明るい影(光源)、右下には暗い影を設定することで、立体感を表現します。
  • アクティブ状態: box-shadowinset を指定することで、ボタンが押し込まれたような凹み効果を生み出します。