少し発光しているような感じに見えるグロー(グローイング)デザインを適用したボタンのサンプルです。このデザイン自体は以前からあったと思うのですが、最近DribbbleやBehanceといったデザインのインスピレーションサイトだったり、綺麗なUIデザインを紹介しているようなサイトでよく見かける感じがして、配置や組み合わせももちろん関係はあると思いますが、見た目が綺麗なものやかっこ良いと思うものが多かったので、幾つか再現してみたり思い付いたりしたものを作ってみました。いずれも面倒な記述などなく簡易的なものばかりですが、もしこのまま使用したいという場合はコピペで実装できると思います。
共通のHTML・CSS
以下で紹介しているボタンスタイルは、全て以下のようなHTMLとベースとなるCSSが指定してあります。
HTML
<a class="button" href="#">Button</a>
CSS
.button {
display: block;
padding: 1em 3.2em;
border-radius: 1.6em;
color: #fff;
font-size: 18px;
font-family: 'Lato', sans-serif;
font-weight: 700;
text-align: center;
text-decoration: none;
}
Button #1 ~ Button #8までは基本的なカラーをそれぞれ変えているだけで、それぞれのボタンに使用しているシャドウ(box-shadow
)もボタン本体のカラー透過率を調整して記述しているものになります。
Button #9からはシャドウの指定方法を変えたり、グラデーションを使ったデザインのボタンになります。
Button #1
CSS
.button {
background-color: rgba(252, 28, 143, 1);
box-shadow: 0 5px 20px rgba(252, 28, 143, .5);
}
Button #2
CSS
.button {
background-color: rgba(251, 152, 11, 1);
box-shadow: 0 5px 20px rgba(251, 152, 11, .5);
}
Button #3
CSS
.button {
background-color: rgba(241, 196, 15, 1);
box-shadow: 0 5px 20px rgba(241, 196, 15, .5);
}
Button #4
CSS
.button {
background-color: rgba(0, 63, 255, 1);
box-shadow: 0 5px 20px rgba(0, 63, 255, .5);
}
Button #5
CSS
.button {
background-color: rgba(0, 205, 237, 1);
box-shadow: 0 5px 20px rgba(0, 205, 237, .5);
}
Button #6
CSS
.button {
background-color: rgba(17, 233, 91, 1);
box-shadow: 0 5px 20px rgba(17, 233, 91, .5);
}
Button #7
CSS
.button {
background-color: rgba(87, 225, 181, 1);
box-shadow: 0 5px 20px rgba(87, 225, 181, .5);
}
Button #8
CSS
.button {
background-color: rgba(155, 89, 182, 1);
box-shadow: 0 5px 20px rgba(155, 89, 182, .5);
}
Button #9
基本的な見た目は「Button #4」のもので、box-shadow
の指定方法を変更することで下の方についていたシャドウの位置を変更したものになります。
CSS
.button {
background-color: rgba(0, 63, 255, 1);
box-shadow: 0 0 40px rgba(0, 63, 255, .7);
}
Button #10
こちらは「Button #4」にinset
を指定したbox-shadow
を追加したものになります。
CSS
.button {
background-color: rgba(0, 63, 255, 1);
box-shadow: 0 5px 20px rgba(0, 63, 255, .5), 0 0 40px rgba(255, 255, 255, .5) inset;
}
Button #11
同じくinset
を指定したbox-shadow
を追加したもので、先ほどのものは全体的にかけていましたが、こちらは少し記述内容を変更して下の方にかかるようにしています。
CSS
.button {
background-color: rgba(0, 63, 255, 1);
box-shadow: 0 5px 20px rgba(0, 63, 255, .5), 0 -10px 20px rgba(255, 255, 255, .2) inset;
}
Button #12
こちらはボタンカラーにグラデーションを適用したものです。
ボタンカラーはほぼ近いカラーを組み合わせており、box-shadow
には濃い方のカラーを使用しています。
CSS
.button {
background: linear-gradient(rgba(65, 113, 255, 1) 0%, rgba(0, 63, 255, 1) 100%);
box-shadow: 0 5px 20px rgba(0, 63, 255, .5);
}
Button #13
同じくグラデーションを使ったもので記述も先程のものとほぼ変わりませんが、グラデーションの角度を調整したものになります。
CSS
.button {
background: linear-gradient(-60deg, rgba(65, 113, 255, 1) 0%, rgba(0, 63, 255, 1) 100%);
box-shadow: 0 5px 20px rgba(0, 63, 255, .5);
}
Button #14
こちらもグラデーションを使ったタイプのボタンですが、上で紹介したように近いカラーを使用するのではなく、異なるカラーを組み合わせて角度も少し調整したものになります。
CSS
.button {
background: linear-gradient(-45deg, rgba(87, 225, 181, 1) 0%, rgba(0, 63, 255, 1) 100%);
box-shadow: 0 5px 20px rgba(0, 63, 255, .5);
}
ちなみに、グラデーションについては以下サイトで美しいグラデーションが多数まとめられており、CSSで実装するための記述をコピーすることもできるので、良い感じのグラデーションを探しているという時におすすめです。
以上、グロー(グローイング)デザインのボタンをCSSで実装したサンプルでした。
今回のサンプルにはありませんでしたが、他にもボタンだけじゃなくテキスト部分にもtext-shadow
を使ってシャドウをつけたり、シャドウだけでなくボタンの背景カラーも透過させて薄っすら下のコンテンツが見えるような感じで配置(バランスなどを考えて上手くデザインする必要がありますが…)するのもかっこ良いと思います。
あとは、ホバー時にシャドウの位置や大きさを動かすといったエフェクトを付けるのも良さそうですね。
上記では全て画像で紹介してきましたが、ブラウザで実際の見た目を確認したい場合は以下デモページで確認できます。
※念のため記載しておくと、実装自体はスマートフォンでも問題なくできますが、デモページはスマートフォンやタブレットでの見た目を考慮していませんのでPCでの閲覧を推奨します。