CSSだけで作る光るボタンの作り方

CSS、JavaScript
2,790 文字 約 7 分で読めます

Webサイトでよく見かける「光るボタン」。
JavaScriptを使わなくても、CSSだけでシンプルに実装できます。

今回は初心者向けに、

  • 光るボタン
  • ホバーアニメーション
  • 色変更カスタマイズ
  • キラッと光る追加演出

を含めながら、実際に使えるボタンを作っていきます。

完成サンプル

まずは基本となる光るボタンを作成します。
CodePenなどに貼り付けると、そのまま動作確認できます。

See the Pen glow-button by kasasagi_kmnmc (@kasasagi_kmnmc) on CodePen.

HTML

<a href="#" class="glow-button">Button</a>

CSS

body{
  margin:0;
  height:100vh;
  display:flex;
  justify-content:center;
  align-items:center;
  background:#111;
  font-family:sans-serif;
}

/* ボタン本体 */
.glow-button{
  position:relative;
  display:inline-block;
  padding:15px 40px;
  color:#fff;
  text-decoration:none;
  font-size:18px;
  letter-spacing:2px;
  border:2px solid #00ffff;
  border-radius:50px;
  overflow:hidden;
  transition:0.3s;

  /* 光 */
  box-shadow:
    0 0 10px #00ffff,
    0 0 20px #00ffff;
}

/* ホバー時 */
.glow-button:hover{
  background:#00ffff;
  color:#111;

  box-shadow:
    0 0 20px #00ffff,
    0 0 40px #00ffff,
    0 0 80px #00ffff;
}

解説

今回のポイントは box-shadow です。

box-shadow:
  0 0 10px #00ffff,
  0 0 20px #00ffff;

複数重ねることで、ネオンのような光を表現しています。

ホバー時のアニメーション

transition:0.3s;

を設定することで、

  • 背景色
  • 文字色
  • 光の強さ

がなめらかに変化します。

色を変更してみる

例えばピンク色に変更したい場合は、

#00ffff

を、

#ff00ff

へ変更するだけです。

光を強くする方法

より強く発光させたい場合は、

box-shadow:
  0 0 20px #00ffff,
  0 0 40px #00ffff,
  0 0 80px #00ffff;

の数値を大きくします。

さらにカスタマイズしてみる

ここまではシンプルな光るボタンを作成しました。
さらにCSSを追加することで、ホバー時に「キラッ」と光が流れる演出も追加できます。

追加するコード

下記コードを追加してください。

/* キラッと流れる光 */
.glow-button::before{
  content:"";
  position:absolute;
  top:0;
  left:-120%;
  width:60%;
  height:100%;

  background:linear-gradient(
    120deg,
    transparent,
    rgba(255,255,255,0.8),
    transparent
  );

  transform:skewX(-25deg);
}

/* ホバー時 */
.glow-button:hover::before{
  animation:shine 0.8s ease;
}

/* アニメーション */
@keyframes shine{
  100%{
    left:150%;
  }
}

どこに追加する?

今回のコードは、現在のCSSコードの一番下へ追加すればOKです。

.glow-button:hover{
  background:#00ffff;
  color:#111;

  box-shadow:
    0 0 20px #00ffff,
    0 0 40px #00ffff,
    0 0 80px #00ffff;
}

/* ← この下へ追加 */

という形になります。

どう変わる?

このコードを追加すると、ホバー時に光が横へ流れるようになります。
シンプルなネオンボタンより、より近未来風の演出になります。

サンプル

See the Pen glow-button-Pink by kasasagi_kmnmc (@kasasagi_kmnmc) on CodePen.

overflow:hidden; とは?

overflow:hidden;

を設定することで、光がボタンの外にはみ出さないようにしています。
これが無いと、光のラインがボタン外まで見えてしまいます。

キラッをゆっくりにする

光の流れる速度は、

animation:shine 0.8s ease;

0.8s を変更することで調整できます。

例えば:

animation:shine 1.5s ease;

にすると、ゆっくり光が流れます。

まとめ

今回はCSSだけで作れる光るボタンを紹介しました。

今回のポイントは、

  • box-shadow で光を作る
  • transition で滑らかに変化させる
  • ::before でキラッと光らせる
  • JavaScriptなしで実装できる

という点です。

色や光の強さを変えるだけでも印象がかなり変わるので、ぜひカスタマイズしてみてください。

タイトルとURLをコピーしました