できない.dev

CSSでグラデーションのボタンを作るには

background に linear-gradient を指定し、角丸と余白を添えてグラデーションのボタンを作る基本形を示す。
hover で明度を少し上げて押せる印象を出す。

未実行 CSS の構文と仕様で確認したもので、ブラウザでの描画確認はまだ行っていない。

公開: 更新:

プレビュー
<button class="grad-btn">グラデーションボタン</button>
.grad-btn {
  padding: 12px 28px;
  border: none;
  border-radius: 8px;
  color: #fff;
  font-size: 15px;
  font-family: system-ui;
  cursor: pointer;
  background: linear-gradient(135deg, #10b981, #059669);
  box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
  transition: filter 0.2s;
}
.grad-btn:hover {
  filter: brightness(1.08);
}

background に linear-gradient を指定すると、複数の色が滑らかにつながった背景になる。
角度(135deg など)で向きを決められるため、単色よりも立体感のあるボタンに仕上がる。

つまずき

グラデーションが出ないときや、余計な枠が残るときは次の 2 点を確認する。

  • グラデーションは background もしくは background-image に書く。background-color は単色しか受け付けないため、グラデーションを指定できない。
  • button 要素はブラウザ既定の枠線と背景を持つ。border: none と背景の指定をセットで書かないと、グラデーションの上に既定の枠線が残って見える。
できない例: background-color に書く
.grad-btn {
  padding: 12px 28px;
  border: none;
  border-radius: 8px;
  color: #fff;
  font: 15px system-ui;
  background-color: linear-gradient(135deg, #3b82f6, #1d4ed8);
}
できない例: border: none を忘れる
.grad-btn {
  padding: 12px 28px;
  border-radius: 8px;
  color: #fff;
  font: 15px system-ui;
  background: linear-gradient(135deg, #3b82f6, #1d4ed8);
}
できる例: background に書き、border: none
.grad-btn {
  padding: 12px 28px;
  border: none;
  border-radius: 8px;
  color: #fff;
  font: 15px system-ui;
  background: linear-gradient(135deg, #3b82f6, #1d4ed8);
}