CSSボタンデザイン120個以上!どこよりも詳しく作り方を解説!
CSS
- 利用シーン例
- HTML・CSSだけでボタンを作りたい場合
CSS逆引きレシピ
このページの情報で解決しなかったら
検索してみましょう
CSS逆引き検索
CSSで作れるボタンについて120個以上サンプルを作成してみました。
どこよりも詳しく、どこよりもサンプル多く解説しています。(おそらく..)
どれもHTMLとCSSで実現できるものであり、PC向けボタンはすべてホバーアクション付きです。
また、CSSボタンデザインの作り方はもちろん、Webでボタンを作る際の重要なポイントについても解説しています。
おもしろいボタンから実用的なボタンなどもあります。
各コードはコピペしてご自由に使っていただいて構いません。
なぜCSSでボタンを作るのか?
その前に、なぜCSSでボタンを作るのか?について少しだけ考えたいと思います。
簡単に言ってしまえば、 軽い!拡張性がある!解像度の心配がない!簡単!と言った理由ではないでしょうか?
画像でボタンを作ることも多いと思いますが、「画像じゃないほうがいいなあ」と思うことも多いと思います。
もちろん、デザイナーから上がってきたデザインデータからボタンを切り取って、HTMLに設置して、CSSでホバーはopacity:0.8、とかやれば簡単ではありますが、デザインツールの進化やレスポンシブの一般化に伴い、そういったイケてなくて古臭いやり方はあまり望ましくないです。
特にWebの場合、テストの繰り返しが必要ですが、画像でボタンを作るとなるとテスト用にいくつもの画像を作らなくてはいけません。色やテキストを変えるとなると画像すべてを修正する必要があります。しかし、CSSボタンであればそういった面倒な手間はかかりません。
CSSボタンを作る前提
CSSボタンを作る前に、HTMLとCSSの基本について軽くおさらいをしたいと思います。
基本スタイル
まずは以下、ベースとなるCSSを書いてください。
/*まずはお決まりのボックスサイズ算出をborer-boxに */
*,
*:before,
*:after {
-webkit-box-sizing: inherit;
box-sizing: inherit;
}
html {
-webkit-box-sizing: border-box;
box-sizing: border-box;
font-size: 62.5%;/*rem算出をしやすくするために*/
}
.btn,
a.btn,
button.btn {
font-size: 1.6rem;
font-weight: 700;
line-height: 1.5;
position: relative;
display: inline-block;
padding: 1rem 4rem;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-transition: all 0.3s;
transition: all 0.3s;
text-align: center;
vertical-align: middle;
text-decoration: none;
letter-spacing: 0.1em;
color: #212529;
border-radius: 0.5rem;
}
すべてのボタンデザインに共通しているわけではありません。
不必要なものは消してください。
また、aタグかbuttonタグかなど、使うHTMLタグによってCSSを調節する必要があります。もし崩れたといった場合は、HTMLタグに当たっているCSSを確認するようにしてください。
box-sizingはborder-boxが一般化しているので書いています。
本ページで紹介するCSSボタンはフォントサイズを基準とするem、rem基準で作っています。
pxを使っていると各サイズ固定になるため、pxで指定している箇所をすべて変更する必要がありますが、em、remを使っているとそのような心配がありません。
もちろん、デザインや制作物によってはpxベースで作ったほうがいい場合もあるので、あくまで制作物に合わせるようにしてください。
汎用的に使えるように書かれているので、少しコードが冗長になったり、セレクタが多かったりしますが、そのあたりは使用の際にまとめてください。
アイコンとフォント
ボタンを作る上で欠かせないのがアイコンとフォントです。アイコンについては画像で作る場合であれば、そのまま画像に含めれば良いですが、CSSで作る場合は別で用意する必要があります。
簡単に使えるものとしては、Font Awesomeというものがあります。こちらはアイコンフォントというものになり、SVGアイコンをフォント形式で使うというものになります。
本ページで紹介するボタンで使用しているアイコンもFont Awesomeを使用しています。
その他フォントについてですが、日本語で使えるWebフォントは限られています。使うテキストを限定するならフォントファイルから作るという方法もありますが、使用用途をボタンだけに限定するのであれば、そこまでする必要はなく画像で作ったほうがいいです。
電話番号や英数字であれば、Google fontを使うことでより良いデザインになります。速度を気にされる場合はWebフォント高速化をご参考ください。
前置きが長くなってしまいましたが、ボタンサンプルについて見ていきましょう。
基本的なボタン
装飾等が少ないシンプルな基本形のCSSボタンデザインです。
角丸
<a href="" class="btn btn--orange">PUSH</a>
.btn--orange,
a.btn--orange {
color: #fff;
background-color: #eb6100;
}
.btn--orange:hover,
a.btn--orange:hover {
color: #fff;
background: #f56500;
}
ベースのCSSに色を指定しています。
角丸大
<a href="" class="btn btn--orange btn--radius">PUSH</a>
.btn--orange,
a.btn--orange {
color: #fff;
background-color: #eb6100;
}
.btn--orange:hover,
a.btn--orange:hover {
color: #fff;
background: #f56500;
}
a.btn--radius {
border-radius: 100vh;
}
border-radiusに100vhを指定しています。
角丸 / 複数行
<a href="" class="btn btn--orange">PUSH !<br>ボタン</a>
.btn--orange,
a.btn--orange {
color: #fff;
background-color: #eb6100;
}
.btn--orange:hover,
a.btn--orange:hover {
color: #fff;
background: #f56500;
}
複数行にしたパータンです。
角丸大 / 複数行
<a href="" class="btn btn--orange">PUSH !<br>ボタン</a>
.btn--orange,
a.btn--orange {
color: #fff;
background-color: #eb6100;
}
.btn--orange:hover,
a.btn--orange:hover {
color: #fff;
background: #f56500;
}
a.btn--radius {
border-radius: 100vh;
}
複数行を角丸しています。
角丸 / 複数行 / アイコン
<a href="" class="btn btn--orange"><i class="fas fa-phone-alt fa-position-left"></i>お電話はこちら<br>0120-12-3456</a>
.btn--orange,
a.btn--orange {
color: #fff;
background-color: #eb6100;
}
.btn--orange:hover,
a.btn--orange:hover {
color: #fff;
background: #f56500;
}
.fa-position-left {
position: absolute;
top: calc(50% - .5em);
left: 1rem;
}
複数行ボタンにアイコンを設置しています。縦中央に配置されるようにpositionを使っています。
角丸大 / 複数行 / アイコン
<a href="" class="btn btn--orange"><i class="fas fa-phone-alt fa-position-left"></i>お電話はこちら<br>0120-12-3456</a>
.btn--orange,
a.btn--orange {
color: #fff;
background-color: #eb6100;
}
.btn--orange:hover,
a.btn--orange:hover {
color: #fff;
background: #f56500;
}
.fa-position-left {
position: absolute;
top: calc(50% - .5em);
left: 1rem;
}
.btn--radius,
a.btn--radius,
button.btn--radius
{
border-radius: 100vh;
}
角丸を大きくしています。
基本的なborderや影を使ったボタン
CSSのborderやbox-shadowを使って作ったボタンです
立体
<a href="" class="btn btn--yellow btn--cubic">PUSH!</a>
a.btn--yellow {
color: #000;
background-color: #fff100;
border-bottom: 5px solid #ccc100;
}
a.btn--yellow:hover {
margin-top: 3px;
color: #000;
background: # fff20a;
border-bottom: 2px solid #ccc100;
}
ボタンに立体感を出しています。立体感を出す方法としては主にborder-bottomで下線を指定するか、box-shadowで影を付けるか、背景を重ねるか、などの方法があります。それぞれ向き不向きがあり、ホバー時に挙動を付ける場合は、プロパティの指定の方法にも若干違いがあるので注意が必要です。
立体 / 影
<a href="" class="btn btn--orange btn--cubic btn--shadow">PUSH!</a>
a.btn--orange {
color: #fff;
background-color: #eb6100;
border-bottom: 5px solid #b84c00;
}
a.btn--orange:hover {
margin-top: 3px;
color: #fff;
background: #f56500;
border-bottom: 2px solid #b84c00;
}
a.btn--shadow {
-webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
}
ベースのCSSに色を指定しています。
立体 / エンボス / アイコン
<a href="" class="btn btn--green btn--emboss btn--cubic">PUSH!<i class="fas fa-angle-right fa-position-right"></i></a>
a.btn--green.btn--emboss {
color: #00662d;
text-shadow: -1px -1px 1px #00ff71;
border-bottom: 5px solid #00662d ;
}
a.btn--green.btn--cubic:hover {
margin-top: 3px;
border-bottom: 2px solid #00662d ;
}
.fa-position-right {
position: absolute;
top: calc(50% - .5em);
right: 1rem;
}
エンボスにアイコンを足したものです。アイコンフォントにもエンボスが効いているのが分かります。
立体 / 浮き出し / アイコン
<a href="" class="btn btn--pink btn--raised btn--cubic">PUSH!<i class="fas fa-angle-right fa-position-right"></i></a>
/*共通部分は省略*/
a.btn--raised {
color: #eb6877;
text-shadow: -1px -1px 1px rgba(255, 255, 255, .44), 1px 1px 1px #4a0a11;
}
左上から明るめの影、右下に暗めの影で文字が浮き出ているような表現になります。
立体 / 角丸大 / アイコン
<a href="" class="btn btn--red btn--radius btn--cubic">PUSH!<i class="fas fa-angle-right fa-position-right"></i></a>
/*主な共通部分は省略*/
a.btn--red.btn--cubic {
border-bottom: 5px solid #9f000c;
}
a.btn--red.btn--cubic:hover {
margin-top: 3px;
border-bottom: 2px solid #9f000c;
}
a.btn--radius {
border-radius: 100vh;
}
.fa-position-right {
position: absolute;
top: calc(50% - .5em);
right: 1rem;
}
立体的ボタンの角丸を大きくします。
立体 / 角丸大 / 複数アイコン
<a href="" class="btn btn--purple btn--radius btn--cubic"><i class="fas fa-angle-double-right fa-position-left"></i>PUSH<i class="fas fa-angle-double-left fa-position-right"></i></a>
/*主な共通部分は省略*/
.fa-position-left {
position: absolute;
top: calc(50% - .5em);
left: 1rem;
}
.fa-position-right {
position: absolute;
top: calc(50% - .5em);
right: 1rem;
}
アイコンを左側と右側に設置しています。文字の前後にアイコンをつける場合は、疑似クラスを使うことで実現できます。
枠線
<a href="" class="btn btn--orange btn--border-solid">PUSH!</a>
/*主な共通部分は省略*/
a.btn--orange.btn--border-solid {
border: 2px solid #b84c00;
}
borderのsolid
で枠線を付けています。
二重線
<a href="" class="btn btn--blue btn--border-double">PUSH!</a>
/*主な共通部分は省略*/
a.btn--blue.btn--border-double {
border: 8px double #0090bb;
}
borderのdouble
で二重線をつけています。
くぼみ線
<a href="" class="btn btn--green btn--border-groove">PUSH!</a>
/*主な共通部分は省略*/
a.btn--green.btn--border-groove {
border: 6px groove #008039;
}
borderのgroove
でくぼんだ線をつけています。
浮き出し線
<a href="" class="btn btn--pink btn--border-ridge">PUSH!</a>
/*主な共通部分は省略*/
a.btn--pink.btn--border-ridge {
border: 6px ridge #e53b4e;
}
borderのridge
で浮き出した線をつけています。
くぼみ
<a href="" class="btn btn--red btn--border-inset">PUSH!</a>
/*主な共通部分は省略*/
a.btn--red.btn--border-inset {
border: 6px inset #b9000e;
}
borderのinset
でくぼみをつけています。
浮き出し
<a href="" class="btn btn--red btn--border-outset">PUSH!</a>
/*主な共通部分は省略*/
a.btn--red.btn--border-outset {
border: 6px outset #b9000e;
}
borderのoutset
で浮き出し表現をつけています。
破線
a href="" class="btn btn--yellow btn--border-dashed">PUSH!</a>
/*主な共通部分は省略*/
a.btn--yellow.btn--border-dashed {
border: 2px dashed #000;
}
borderのdashed
で破線をつけています。
点線
a href="" class="btn btn--yellow btn--border-dotted">PUSH!</a>
/*主な共通部分は省略*/
a.btn--yellow.btn--border-dotted {
border: 3px dotted #000;
}
borderのdotted
で点線をつけています。
丸形のボタン
丸形のボタンデザインのサンプルです
正円ボタン
<a href="" class="btn btn--orange btn--circle btn--circle-a btn--shadow">PUSH!</a>
/*主な共通部分は省略*/
a.btn--orange {
color: #fff;
background-color: #eb6100;
}
a.btn--orange:hover {
color: #fff;
background: #f56500;
}
a.btn--shadow {
-webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.3);
}
a.btn--circle {
border-radius: 50%;
line-height: 100px;
width: 100px;
height: 100px;
padding: 0;
}
border-raisu: 50%;
で正円を作っています。
正円ボタン / 立体
<a href="" class="btn btn--yellow btn--circle">PUSH!</a>
/*色や主な共通部分は省略*/
a.btn--circle {
border-radius: 50%;
line-height: 100px;
width: 100px;
height: 100px;
padding: 0;
-webkit-box-shadow: 0 5px 0 #e6d900;
box-shadow: 0 5px 0 #e6d900;
}
a.btn--circle:hover {
-webkit-transform: translate(0, 3px);
transform: translate(0, 3px);
-webkit-box-shadow: 0 2px 0 #e6d900;
box-shadow: 0 2px 0 #e6d900;
}
正円ボタンを立体風にしています。border-bottomだとあまり立体感が作れません。サンプルだとbox-shadowです。もっと立体感を出したい場合は擬似クラスなどを使ったほうがいいと思います。
正円ボタン / アイコン
<a href="" class="btn btn--circle btn--circle-c btn--shadow"><i class="fas fa-arrow-up"></i></a>
/*主な共通部分は省略*/
a.btn--circle {
width: 60px;
height: 60px;
padding: 0;
background: #fff;
border-radius: 50%;
-webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
box-shadow: 0 3px 5px rgba(0, 0, 0, .3);
}
a.btn--circle i {
font-size: 150%;
line-height: 60px;
-webkit-transition: all .3s;
transition: all .3s;
letter-spacing: 0;
}
a.btn--circle:hover i {
line-height: 55px;
}
ページトップへ戻るボタンなどでよく見ますね。アイコンのみのシンプルなボタンです。
グラデーションを使ったボタン
CSSのborderやbox-shadowを使って作ったボタンです
グラデーション基本
CSSのlinear-gradient
を使ってグラデーションをかけています。サンプルのようにホバー時にスムーズに背景を切り替えたい場合は、擬似クラスなどで別のグラデーションを重ね、ホバー時に消していくといったことが必要です。
グラデーション / 角丸
<a href="" class="btn btn-gradient"><span>PUSH!</span></a>
/*基本と主な共通部分は省略*/
a.btn-gradient {
border-radius: 100vh;
}
角丸をつけたパターンです。
グラデーション / 線 / 影
<a href="" class="btn btn-gradient"><span>PUSH!</span></a>
/*基本と主な共通部分は省略*/
a.btn-gradient {
color: #fff;
border: 2px solid #fff;
border-radius: 0;
background-image: -webkit-gradient(linear, left top, right top, from(#fa709a), to(#fee140));
background-image: -webkit-linear-gradient(left, #fa709a 0%, #fee140 100%);
background-image: linear-gradient(to right, #fa709a 0%, #fee140 100%);
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .1);
box-shadow: 0 5px 10px rgba(0, 0, 0, .1);
}
a.btn-gradient:hover {
-webkit-transform: translate(0, -2px);
transform: translate(0, -2px);
color: #fff;
-webkit-box-shadow: 0 8px 15px rgba(0, 0, 0, .2);
box-shadow: 0 8px 15px rgba(0, 0, 0, .2);
}
線と影をつけたパターンです。ホバー時にふわっと浮くような感じにしてみました。
グラデーション / 影 / 斜め
<a href="" class="btn btn-gradient"><span>PUSH!</span></a>
/*基本と主な共通部分は省略*/
a.btn-gradient {
-webkit-transform: skew(-15deg);
transform: skew(-15deg);
color: #fff;
border-radius: 0;
background-image: -webkit-gradient(linear, left top, right top, from(#2af598), to(#009efd));
background-image: -webkit-linear-gradient(left, #2af598 0%, #009efd 100%);
background-image: linear-gradient(90deg, #2af598 0%, #009efd 100%);
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .1);
box-shadow: 0 5px 10px rgba(0, 0, 0, .1);
}
a.btn-gradient:hover {
-webkit-transform: skew(0);
transform: skew(0);
color: #fff;
-webkit-box-shadow: 0 2px 3px rgba(0, 0, 0, .1);
box-shadow: 0 2px 3px rgba(0, 0, 0, .1);
}
CSSのtransform: skew
でボタン全体を傾けています。斜めにするのとグラデーションは関係ありませんが、スタイリッシュなサイトにいいかもしれません。
グラデーション / 影 / 角丸
<a href="" class="btn btn-radius-solid btn--shadow">PUSH!<i class="fas fa-angle-right fa-position-right"></i></a>
/*その他と主な共通部分は省略*/
a.btn-radius-solid {
background: #f1e767;
background: -webkit-gradient(linear, left top, left bottom, from(#f1e767), to(#feb645));
background: -webkit-linear-gradient(top, #f1e767 0%, #feb645 100%);
background: linear-gradient(to bottom, #f1e767 0%, #feb645 100%);
}
a.btn-radius-solid:hover {
background: -webkit-gradient(linear, left bottom, left top, from(#f1e767), to(#feb645));
background: -webkit-linear-gradient(bottom, #f1e767 0%, #feb645 100%);
background: linear-gradient(to top, #f1e767 0%, #feb645 100%);
}
よくある基本的なボタンです。
ホバー時の変化をスムーズにしたい場合は、疑似クラスで背景を重ねるかCSSアニメーションなどが必要です。
グラデーション / 線 / 角丸
<a href="" class="btn btn-radius-solid">PUSH!<i class="fas fa-angle-right fa-position-right"></i></a>
/*その他と主な共通部分は省略*/
a.btn-radius-solid {
border: 1px solid #ccc;
background: #f1e767;
background: -webkit-gradient(linear, left top, left bottom, from(#fdfbfb), to(#ebedee));
background: -webkit-linear-gradient(top, #fdfbfb 0%, #ebedee 100%);
background: linear-gradient(to bottom, #fdfbfb 0%, #ebedee 100%);
-webkit-box-shadow: inset 1px 1px 1px #fff;
box-shadow: inset 1px 1px 1px #fff;
}
a.btn-radius-solid:hover {
background: -webkit-gradient(linear, left bottom, left top, from(#fdfbfb), to(#ebedee));
background: -webkit-linear-gradient(bottom, #fdfbfb 0%, #ebedee 100%);
background: linear-gradient(to top, #fdfbfb 0%, #ebedee 100%);
}
こちらもよくある基本的なボタンですね。
古いサイトだとこういったボタンが画像で作られていることがありますが、今ではCSSで簡単に作れます。CSSで作ることでとても軽く拡張性も高くなります。
グラデーション・テキスト / 影
<a href="" class="btn btn-gradient"><span>PUSH!</span></a>
/*その他と主な共通部分は省略*/
a.btn-gradient {
font-size: 2rem;
color: #fff;
border-radius: 100vh;
background-image: -webkit-linear-gradient(110deg, #e9defa 0%, #fbfcdb 100%);
background-image: linear-gradient(-20deg, #e9defa 0%, #fbfcdb 100%);
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
}
a.btn-gradient span {
background-image: -webkit-gradient(linear, left top, right top, from(#93a5cf), to(#e4efe9));
background-image: -webkit-linear-gradient(left, #93a5cf 0%, #e4efe9 100%);
background-image: linear-gradient(to right, #93a5cf 0%, #e4efe9 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
a.btn-gradient:hover {
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .3);
box-shadow: 0 5px 15px rgba(0, 0, 0, .3);
}
淡いグラデーションに影を足してやわらかな質感を表現しています。
フラットなボタン
borderやグラデーションを工夫して少し立体的に見えるボタンのサンプルです。
フラットなボタン2
<a href="" class="btn btn-flat"><span>PUSH!</span></a>
/*その他と主な共通部分は省略*/
a.btn-flat {
overflow: hidden;
padding: 1.5rem 6rem;
color: #fff;
border-radius: 0;
background: #000;
}
a.btn-flat span {
position: relative;
}
a.btn-flat:before {
position: absolute;
top: 0;
left: 30px;
width: 150%;
height: 500%;
content: '';
-webkit-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
-webkit-transform: translateX(-98%) translateY(-70%) rotate(135deg);
transform: translateX(-98%) translateY(-70%) rotate(135deg);
background: #fff100;
}
a.btn-flat:hover:before {
-webkit-transform: translateX(-9%) translateY(-25%) rotate(135deg);
transform: translateX(-9%) translateY(-25%) rotate(135deg);
}
ホバー時に右上のアクセントが拡大して背景色が入れ替わるパターンです。
フラットなボタン3
<a href="" class="btn btn-flat"><span>PUSH!</span></a>
/*その他と主な共通部分は省略*/
a.btn-flat {
overflow: hidden;
padding: 1.5rem 6rem;
color: #fff;
border-radius: 0;
background: #000;
}
a.btn-flat span {
position: relative;
}
a.btn-flat:before {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: '';
-webkit-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
-webkit-transform: translateX(-96%);
transform: translateX(-96%);
background: #eb6877;
}
a.btn-flat:hover:before {
-webkit-transform: translateX(0%);
transform: translateX(0%);
}
ホバー時に左のアクセントが拡大して背景になるパターンです。
フラットなボタン4
<a href="" class="btn btn-flat"><span>PUSH!</span></a>
/*その他と主な共通部分は省略*/
a.btn-flat {
overflow: hidden;
padding: 1.5rem 6rem;
color: #fff;
border-radius: 0;
background: #000;
}
a.btn-flat span {
position: relative;
}
a.btn-flat:before {
position: absolute;
top: 0;
left: 0;
width: 100px;
height: 100px;
content: '';
-webkit-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
-webkit-transform: translateX(-80%) translateY(-25px);
transform: translateX(-80%) translateY(-25px);
border-radius: 50%;
background: #eb6100;
}
a.btn-flat:hover:before {
width: 400px;
height: 400px;
-webkit-transform: translateX(-1%) translateY(-175px);
transform: translateX(-1%) translateY(-175px);
}
ホバー時に左の丸形のアクセントが拡大して背景になるパターンです。
フラットなボタン5
<a href="" class="btn btn-flat"><span>PUSH!</span></a>
/*その他と主な共通部分は省略*/
a.btn-flat {
overflow: hidden;
padding: 1.5rem 6rem;
color: #fff;
border-radius: 0;
background: #000;
}
a.btn-flat span {
position: relative;
z-index: 1;
}
a.btn-flat:before {
position: absolute;
top: 0;
left: calc(-150% + 50px);
width: 150%;
height: 500%;
content: '';
-webkit-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
-webkit-transform: rotate(45deg) translateX(0) translateY(0);
transform: rotate(45deg) translateX(0) translateY(0);
background: #fff100;
}
a.btn-flat:after {
position: absolute;
top: -400%;
right: calc(-150% + 50px);
width: 150%;
height: 500%;
content: '';
-webkit-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
-webkit-transform: rotate(45deg) translateX(0) translateY(0);
transform: rotate(45deg) translateX(0) translateY(0);
background: #fff100;
}
a.btn-flat:hover:before {
-webkit-transform: rotate(45deg) translateX(0) translateY(-50%);
transform: rotate(45deg) translateX(0) translateY(-50%);
}
a.btn-flat:hover:after {
-webkit-transform: rotate(45deg) translateX(0) translateY(50%);
transform: rotate(45deg) translateX(0) translateY(50%);
}
ホバー時に左の端のアクセントが拡大して背景になるパターンです。
フラットなボタン6
<a href="" class="btn btn-flat"><span>PUSH!</span></a>
/*その他と主な共通部分は省略*/
a.btn-flat {
overflow: hidden;
padding: 1.5rem 6rem;
color: #fff;
border-radius: 0;
background: #000;
}
a.btn-flat span {
position: relative;
z-index: 1;
}
a.btn-flat:before {
position: absolute;
top: 0;
left: calc(-100% + 10px);
width: 100%;
height: 100%;
content: '';
-webkit-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
-webkit-transform: translateX(0) translateY(0);
transform: translateX(0) translateY(0);
background: #094;
}
a.btn-flat:after {
position: absolute;
top: 0;
right: calc(-100% + 10px);
width: 100%;
height: 100%;
content: '';
-webkit-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
-webkit-transform: translateX(0) translateY(0);
transform: translateX(0) translateY(0);
background: #094;
}
a.btn-flat:hover:before {
-webkit-transform: translateX(50%) translateY(0);
transform: translateX(50%) translateY(0);
}
a.btn-flat:hover:after {
-webkit-transform: translateX(-50%) translateY(0);
transform: translateX(-50%) translateY(0);
}
ホバー時に両端のアクセントが拡大して背景になるパターンです。
立体的ボタン
borderやグラデーションを工夫して少し立体的に見えるボタンのサンプルです。
線を使った立体風ボタン
<a href="" class="btn btn-solid"><span>PUSH!</span></a>
/*その他と主な共通部分は省略*/
a.btn-solid {
color: #fff;
border-top: 4px solid #48ecc4;
border-right: 4px solid #0a5f4a;
border-bottom: 4px solid #0f745b;
border-left: 4px solid #8cf9de;
border-radius: 0;
background: #11a37f;
}
a.btn-solid:hover {
color: #fff;
border-top: 4px solid #0f745b;
border-right: 4px solid #8cf9de;
border-bottom: 4px solid #48ecc4;
border-left: 4px solid #0a5f4a;
}
上下左右でそれぞれ異なる色のborderを指定することで、立体的に見えるボタンになります。borderのinsetやoutsetでも似たような表現を作れますが、こちらの方法の方ではより細かく色が指定できるため、立体の深みを細かく調整することができます。
金塊のようなボタン
<a href="" class="btn btn-solid-gold">GOLD</a>
/*その他と主な共通部分は省略*/
a.btn-solid-gold {
color: #b1921b;
border-right: 4px solid #cea82c;
border-bottom: 10px solid #987c1e;
border-left: 4px solid #ffed8b;
border-radius: 0;
background: -webkit-gradient(linear, right top, left top, from(#ffd75b), color-stop(30%, #fff5a0), color-stop(40%, #fffabe), color-stop(50%, #ffffdb), color-stop(70%, #fff5a0), to(#fdd456));
background: -webkit-linear-gradient(right, #ffd75b 0%, #fff5a0 30%, #fffabe 40%, #ffffdb 50%, #fff5a0 70%, #fdd456 100%);
background: linear-gradient(-90deg, #ffd75b 0%, #fff5a0 30%, #fffabe 40%, #ffffdb 50%, #fff5a0 70%, #fdd456 100%);
text-shadow: -1px -1px 1px #ffffd9;
}
a.btn-solid-gold:hover {
margin-top: 3px;
color: #b1921b;
border-right: 4px solid #cea82c;
border-bottom: 7px solid #987c1e;
border-left: 4px solid #ffed8b;
}
グラデーションとborderを使って金塊のようなボタンにしています。
もっと細かくグラーデションや影を使えばよりリアルな金塊を作成できます。
メタリックなボタン
<a href="" class="btn btn-solid-silver">SILVER</a>
/*その他と主な共通部分は省略*/
a.btn-solid-silver {
color: #000;
border-top: 4px solid #d8dcdc;
border-right: 4px solid #666;
border-bottom: 4px solid #333;
border-left: 4px solid #868888;
border-radius: 0;
background-image: -webkit-linear-gradient(135deg, #333 0%, #868888 20%, #d8dcdc 34%, white 53%, #666 100%);
background-image: linear-gradient(-45deg, #333 0%, #868888 20%, #d8dcdc 34%, white 53%, #666 100%);
text-shadow: 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff, 0 0 5px #fff;
}
a.btn-solid-silver:hover {
text-shadow: 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff;
}
金属的なボタンです。
3Dボタン
3Dボタンです。CSSのpreserve-3d
、perspective
などで遠近を作っています。
3D表現を覚えるとのっぺらとしたWebに奥行きの表現を加えることができます。このwebサイトでも3D表現を使っています。(PC画面で右上のハンバーガーメニューをクリックしてみてください。)
しかし、ボタンの役割とは押してもらうことにあり、ボタンを3Dで表現することでどれだけコンバージョンが上がるのか?と言えば、あまり効果はないのではないでしょうか。むしろデザインや挙動によっては、ユーザーにボタンと認識してもらいにくい場合もあります。
3Dボタンを作るのに労力を割くよりも、その他の作り込みに時間をかけたほうが良いかもしれません。
3Dボタン:2
こちらもマウスオーバーしないとわからないですが、ホバーで側面が表示されます。基本的にやっていることは他と同じです。3Dを作ることで立体を形成できます。このWebサイトのトップページのローディングにも同じ方法を使っています。
主に線を使用したデザインのボタン
線を主にしたシンプルなボタンです。実際に使用する際には、PCではホバーアクションは必ず付けたほうがいいでしょう。さらには色やアイコンをつけてボタンだとわかりやすいものにしましょう。
線でシンプルなボタン
<a href="" class="btn btn-border">PUSH!</a>
/*主な共通部分は省略*/
a.btn-border {
border: 2px solid #000;
border-radius: 0;
background: #fff;
}
a.btn-border:hover {
color: #fff;
background: #000;
}
シンプルな線のみのボタンです。実際に使用する際にはアイコンを足すなどしましょう。
少しアクセントを足した線ボタン
<a href="" class="btn btn-border">PUSH!</a>
/*その他と主な共通部分は省略*/
a.btn-border {
border: 2px solid #000;
border-radius: 0;
background: #fff;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
a.btn-border:before {
position: absolute;
top: 0;
left: 0;
width: 5px;
height: 100%;
content: '';
-webkit-transition: all .3s;
transition: all .3s;
background: #000;
}
a.btn-border:hover {
color: #fff;
background: #000;
}
a.btn-border:hover:before {
background: #fff;
}
少しアクセントを足したボタンです。デザイン次第ではタグや付箋のようにも見えます。
線のみのボタン
<a href="" class="btn btn-border">PUSH!</a>
/*その他と主な共通部分は省略*/
a.btn-border {
border-radius: 0;
}
a.btn-border:before,
a.btn-border:after {
position: absolute;
width: 100%;
height: 2px;
content: '';
-webkit-transition: all .3s;
transition: all .3s;
background: #000;
}
a.btn-border:before {
top: 0;
left: 0;
}
a.btn-border:after {
right: 0;
bottom: 0;
}
a.btn-border:hover:before,
a.btn-border:hover:after {
width: 0;
}
シンプルでホバーがおしゃれではありますが、このままではボタンと認識されにくいので、矢印を付けたり、上下にテキストを配置するなどして、押せるボタンだと認識できるようにする必要があります。
少しアクセントを足した線ボタン2
<a href="" class="btn btn-border">PUSH!</a>
/*その他と主な共通部分は省略*/
a.btn-border {
border: 2px solid #000;
border-radius: 0;
background: #fff;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
a.btn-border:before {
position: absolute;
top: 0;
left: 0;
width: 15px;
height: 100%;
content: '';
-webkit-transition: all .3s;
transition: all .3s;
-webkit-transform: translateX(0) translateY(0);
transform: translateX(0) translateY(0);
border-radius: 0 50% 50% 0;
background: #000;
}
a.btn-border:hover:before {
font-family: 'Font Awesome 5 Free';
font-weight: bold;
line-height: 30px;
width: 30px;
height: 30px;
content: '\f061';
-webkit-transform: translateX(460%) translateY(.5rem);
transform: translateX(460%) translateY(.5rem);
color: #fff;
border-radius: 50%;
}
線である必要はないですが、ホバー時に線が変異するなどのアクセントが付いています。
陰影をドットにしたボタン
<a href="" class="btn btn-border">PUSH!</a>
a.btn-border {
border: 2px solid #000;
border-top: 1px solid #000;
border-radius: 0 0 .5rem .5rem;
background-color: #fff;
background-image: -webkit-radial-gradient(#000 15%, transparent 20%),
-webkit-radial-gradient(#000 15%, transparent 20%);
background-image: radial-gradient(#000 15%, transparent 20%),
radial-gradient(#000 15%, transparent 20%);
background-position: 0 0, 3px 3px;
background-size: 6px 6px;
}
陰影となる箇所をドットにしたボタンです。ブラウザによってはドットがちゃんと表示されていないかもしれません。(詳しく見ていません..)
陰影を縦縞にしたボタン
<a href="" class="btn btn-border">PUSH!</a>
/*陰影をストライプにしたボタンとの差分*/
a.btn-border {
border: 2px solid #000;
border-top: 1px solid #000;
border-radius: 0 0 .5rem .5rem;
background: -webkit-repeating-linear-gradient(left, #000, #000 1px,
transparent 2px, transparent 6px);
background: repeating-linear-gradient(to right, #000, #000 1px,
transparent 2px, transparent 6px);
background-size: 12px 12px;
}
陰影となる箇所を縦縞にしたボタンです。
傾けたボタン
<a href="" class="btn btn-border">PUSH!</a>
/*主な共通部分は省略*/
a.btn-border {
padding: 1.5rem 4rem;
-webkit-transform: skew(-15deg);
transform: skew(-15deg);
color: #fff;
border: 3px solid #000;
border-radius: 0;
background: #555;
}
a.btn-border:hover:before {
top: -3px;
background: #000;
}
a.btn-border:hover:after {
bottom: -3px;
background: #000;
}
a.btn-border:hover {
-webkit-transform: skew(-5deg);
transform: skew(-5deg);
color: #fff;
}
傾けたボタンです。
影を強くしたボタン
<a href="" class="btn btn-border">PUSH!</a>
/*主な共通部分は省略*/
a.btn-border {
border: 2px solid #000;
border-radius: 0;
background: #fff;
-webkit-box-shadow: 4px 4px 0 #000;
box-shadow: 4px 4px 0 #000;
}
a.btn-border:hover {
-webkit-box-shadow: -4px -4px 0 #000;
box-shadow: -4px -4px 0 #000;
}
box-shadowで影のサイズを0にして、距離のみを指定することでこのようなボタンになります。
複数線で囲ったボタン
<a class="btn btn-border"><span>PUSH!</span></a>
/*主な共通部分は省略*/
a.btn-border {
border: 3px solid #000;
border-radius: 0;
background: #fff;
}
a.btn-border:before {
position: absolute;
top: 2px;
left: 2px;
width: calc(100% - 4px);
height: calc(100% - 4px);
content: '';
-webkit-transition: all .3s;
transition: all .3s;
border: 1px solid #000;
}
a.btn-border:hover:before {
top: 0;
left: 0;
width: 100%;
height: 100%;
content: '';
}
疑似クラスにもborderを付けてことなる幅の二重線を表現しています。
パッチワーク風ボタン
<a class="btn btn-border"><span>PUSH!</span></a>
/*主な共通部分は省略*/
a.btn-border {
padding: 1.5rem 4rem;
border: 3px solid #000;
border-radius: 0;
border-radius: 100vh;
background: #fff;
}
a.btn-border:before {
position: absolute;
top: 2px;
left: 2px;
width: calc(100% - 4px);
height: calc(100% - 4px);
content: '';
-webkit-transition: all .3s;
transition: all .3s;
border: 3px dotted #000;
border-radius: 100vh;
}
a.btn-border:hover:before {
top: 0;
left: 0;
width: 100%;
height: 100%;
}
パッチワーク?で合ってますかね?刺繍したような印象のボタンです。
パッチワーク風ボタン2
<a class="btn btn-border"><span>PUSH!</span></a>
/*主な共通部分は省略*/
a.btn-border {
padding: 1.5rem 4rem;
border: 3px solid #000;
border-radius: 0;
background: #fff;
}
a.btn-border:before {
position: absolute;
top: 4px;
left: 0;
width: 100%;
content: '';
-webkit-transition: all .3s;
transition: all .3s;
border-top: 3px dotted #000;
}
a.btn-border:after {
position: absolute;
bottom: 4px;
left: 0;
width: 100%;
content: '';
-webkit-transition: all .3s;
transition: all .3s;
border-top: 3px dotted #000;
}
a.btn-border:hover:before {
top: -3px;
background: #000;
}
a.btn-border:hover:after {
bottom: -3px;
background: #000;
}
ホバーアクションでは上下の線を点線から実線に変化させ、位置を移動させています。
線とグラデーションを使用したデザインのボタン
線とテキストにグラデーションをかけています。ボタンの線が明るい色の場合は、背景色が濃い色でないと分かりづらいです。
グラデーション線・テキスト
<a href="" class="btn btn-border-shadow btn-border-shadow--radius">PUSH!</a>
/*主な共通部分は省略*/
.btn-text-gradient {
background: -webkit-gradient(linear, right top, left top, from(yellow), to(green));
background: -webkit-linear-gradient(right, yellow, green);
background: linear-gradient(to left, yellow, green);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
今度はテキストにもグラデーションがかかっているのが分かるかと思います。
テキストへのグラデーションは
background-clip: text;
で実現させています。
メタリックなボタン
背景まで金属感あるものにすると、高級感がでません。
サンプルのように背景色と対比させると高級感が出ますね。後はボタンと認識してもらえる工夫が必要です。
異型な形のボタン
線とテキストにグラデーションをかけています。ボタンの線が明るい色の場合は、背景色が濃い色でないと分かりづらいです。
いびつな形のボタン
svgを使えば自由なあらゆる表現ができますがいかんせん面倒ですよね。簡単ないびつな形のボタンであればborder-radius
を工夫することでサンプルのようないびつな形のボタンが作れます。
クーポン券のようなデザイン
クーポン券をイメージしたCSSボタンデザインを作成してみました。実際に使えるシチュエーションは限られるかと思います。参考程度にしていただければ幸いです。
クーポン券ボタン1
切り取り線をイメージしたクーポン券デザインです。10%OFF!の部分には「Roboto」というフォントを使っています。ハサミはFontAwesomeです。webフォントを使うことでより1段魅力的なデザインになります。
クーポン券ボタン2
今度も切り離すイメージのクーポン券です。マウスオーバーで切り取り線で折りたたむような表現をしています。
クーポン券ボタン3
こちらのボタンも切り取り線で切るイメージです。
本来、切るという行為は紙で行うものであり、Webで使うデザインとしては古臭い印象ですね。若年層には響かないデザインかもしれません。
クーポン券ボタン4
両サイドが丸く欠けているようなボタンになります。実際にかけているわけではなく、擬似クラスで背景色と同色の丸形オブジェクトを乗せているだけです。SVGを使ったほうがいいかもしれません。
グラデーションや影を使ってリッチに表現したボタン
実際にありそうなボタンをCSSで作ってみました。
実際こういったボタンまでCSSで作る必要があるか?と言われたら制作物次第ですが、グラーデションの扱いなどに慣れると案外簡単に作ることができます。
画像で作ると修正の手間が大きく、かつ、ホバー・クリック時などで動きの表現ができません。使うシチューエーションは限られますし、クリックできることも分かりづらいので実際に使うことはかなり少ないと思います。
スイッチ黒
クリックしてみましょう。スイッチが切り替わります。切り替えの表現はinputタグのcheckboxを使って切り替えを表現しています。こちらのCodePenを参考にさせていただきました。
スイッチ赤 ON OFF
先ほどのボタンをアレンジしてみました。ONにすると光ったような表現になります。
スイッチボタン / フラット
すみません。こちらはグラデーションは使ってません。。次に紹介するボタンとの対比のためにここで紹介しました。制作物によりますが、フラットデザインのほうが色んなシーンで使えると思います。
スイッチボタン / リアル
先程のボタンをリアルにしてみました。なんか自爆スイッチみたいなものに使えそうですね。そういう遊び要素があるWebサイトで使うとおもしろそうです。ホバー時とクリック時にアクションがあります。
電源ボタン / フラット
電源ボタンのフラットイメージです。こちらもグラデーションは使っていませんが、次のボタンとの対比です。ちなみにアイコン部分についてはアイコンフォントです。
実用的なボタン
これまでCSSボタンのデザイン例を紹介してきました。少し編集すればそのまま使用できるものばかりですが、そのまますぐ使えるというわけではありません。
次に実用的ですぐ使えそうなCSSのボタンサンプルについて紹介していきたいと思います。
お問い合わせボタン
<a href="" class="btn btn--orange btn-c"><i class="fa far fa-envelope"></i>お問い合わせはこちら
</a>
/*その他主な共通部分は省略*/
a.btn--orange {
color: #fff;
background-color: #eb6100;
}
a.btn--orange:hover {
color: #fff;
background: #f56500;
}
a.btn-c {
font-size: 2rem;
position: relative;
padding: 1.5rem 3rem 1.5rem 2rem;
}
a.btn-c i.fa {
margin-right: 1rem;
}
通常のお問い合わせボタンです。アイコンの位置を細かく変える場合はpositionなどを使います。
お問い合わせボタン2
<a href="" class="btn btn--orange btn-c"><i class="fa fas fa-envelope"></i>お問い合わせはこちら
</a>
/*その他と主な共通部分は省略*/
a.btn--orange {
color: #fff;
background-color: #eb6100;
}
a.btn--orange:hover {
color: #fff;
background: #f56500;
}
a.btn-c {
font-size: 2rem;
position: relative;
padding: 1.5rem 3rem 1.5rem 2rem;
}
a.btn-c i.fa {
margin-right: 1rem;
}
a.btn-c:before {
font-family: 'Font Awesome 5 Free';
font-size: 1.6rem;
line-height: 1;
position: absolute;
top: calc(50% - .8rem);
right: 1rem;
margin: 0;
padding: 0;
content: '\f054';
}
矢印アイコンを足したデザインです。
お問い合わせボタン3
<a href="" class="btn btn--orange btn-c"><i class="fa fas fa-envelope"></i>お問い合わせはこちら
</a>
/*その他と主な共通部分は省略*/
a.btn--orange {
color: #fff;
background-color: #eb6100;
}
a.btn--orange:hover {
color: #fff;
background: #f56500;
}
a.btn-c {
font-size: 1.8rem;
position: relative;
padding: 1.5rem 2rem 1.5rem 2rem;
border-radius: 100vh;
}
a.btn-c i.fa {
margin-right: 1rem;
}
角丸を大きくしたデザインです。
お問い合わせボタン4
<a href="" class="btn btn--orange btn-c"><i class="fa fas fa-envelope"></i>お問い合わせはこちら
</a>
/*その他と主な共通部分は省略*/
a.btn--orange {
color: #fff;
background-color: #eb6100;
}
a.btn--orange:hover {
color: #fff;
background: #f56500;
}
a.btn-c {
font-size: 1.8rem;
position: relative;
padding: 1.5rem 2rem 1.5rem 2rem;
border-radius: 100vh;
}
a.btn-c i.fa {
margin-right: 1rem;
}
a.btn-c:before {
font-family: 'Font Awesome 5 Free';
font-size: 1.6rem;
line-height: 1;
position: absolute;
top: calc(50% - .8rem);
right: 1rem;
margin: 0;
padding: 0;
content: '\f054';
}
角丸を大きくしたデザインに矢印アイコンを足したデザインです。
立体風お問い合わせボタン
<a href="" class="btn btn-c btn--green btn--cubic"><i class="fa fas fa-envelope"></i>お問い合わせはこちら
</a>
/*その他と主な共通部分は省略*/
a.btn--green {
color: #fff;
background-color: #094;
}
a.btn--green:hover {
color: #fff;
background: #00a349;
}
a.btn--green.btn--cubic {
border-bottom: 5px solid #00662d;
}
a.btn--green.btn--cubic:hover {
margin-top: 3px;
border-bottom: 2px solid #00662d;
}
a.btn-c {
font-size: 2rem;
position: relative;
padding: 1.5rem 3rem 1.5rem 2rem;
}
a.btn-c i.fa {
margin-right: 1rem;
}
立体風にしたデザインです。
立体風お問い合わせボタン2
<a href="" class="btn btn-c btn--green btn--cubic"><i class="fa fas fa-envelope"></i>お問い合わせはこちら
</a>
/*その他と主な共通部分は省略*/
a.btn--green {
color: #fff;
background-color: #094;
}
a.btn--green:hover {
color: #fff;
background: #00a349;
}
a.btn--green.btn--cubic {
border-bottom: 5px solid #00662d;
}
a.btn--green.btn--cubic:hover {
margin-top: 3px;
border-bottom: 2px solid #00662d;
}
a.btn-c {
font-size: 2rem;
position: relative;
padding: 1.5rem 3rem 1.5rem 2rem;
border-radius: 100vh;
}
a.btn-c i.fa {
margin-right: 1rem;
}
a.btn-c:before {
font-family: 'Font Awesome 5 Free';
font-size: 1.6rem;
line-height: 1;
position: absolute;
top: calc(50% - .8rem);
right: 1rem;
margin: 0;
padding: 0;
content: '\f054';
}
立体風+角丸を大きくしてアイコンを足したデザインです。
資料請求ボタン
<a href="" class="btn btn-c btn--yellow btn--cubic"><i class="fa far fa-file-alt"></i>無料資料請求はこちら
</a>
/*その他と主な共通部分は省略*/
a.btn--yellow {
color: #000;
background-color: #fff100;
}
a.btn--yellow:hover {
color: #000;
background: #fff20a;
}
a.btn--yellow.btn--cubic {
border-bottom: 5px solid #ccc100;
}
a.btn--yellow.btn--cubic:hover {
margin-top: 3px;
border-bottom: 2px solid #ccc100;
}
a.btn-c {
font-size: 1.8rem;
position: relative;
padding: 2rem 5rem 2rem 3rem;
border-radius: 100vh;
}
a.btn-c i.fa {
margin-right: 1rem;
}
a.btn-c:before {
font-family: 'Font Awesome 5 Free';
font-size: 1.6rem;
line-height: 1;
position: absolute;
top: calc(50% - .8rem);
right: 1rem;
margin: 0;
padding: 0;
content: '\f054';
}
アイコンを変えることでボタンに明確な役割を持たせます。
角丸ボタン
<a href="" class="btn btn--red btn-c">お申込みはこちら</a>
/*その他と主な共通部分は省略*/
a.btn--red {
background-color: #d20010;
border: 2px solid #9f000c;
}
a.btn-c {
font-size: 1.8rem;
position: relative;
padding: 2rem 4rem 2rem 2rem;
color: #fff;
border-radius: 100vh;
-webkit-box-shadow: 0 10px 10px rgba(0, 0, 0, .2);
box-shadow: 0 10px 10px rgba(0, 0, 0, .2);
}
a.btn-c:before {
font-family: 'Font Awesome 5 Free';
font-size: 1.6rem;
line-height: 1;
position: absolute;
top: calc(50% - .8rem);
right: 1rem;
margin: 0;
padding: 0;
content: '\f30b';
}
オーソドックスな角丸ボタンです。
マイクロコピーを工夫したボタン周り
<div class="btn-copy">お気軽にお問い合わせください!</div>
<a href="" class="btn btn-c btn--yellow btn--cubic">お問い合わせはこちら</a>
/*その他と主な共通部分は省略*/
.btn-copy {
font-size: 1.5rem;
font-weight: bold;
position: relative;
margin-bottom: .2em;
text-align: center;
}
.btn-copy:before {
margin-right: 1rem;
content: '\';
}
.btn-copy:after {
margin-left: 1rem;
content: '/';
}
自分でもよく使うデザイン例です。ボタンについてはボタン周りの説明が大切です。このようにマイクロコピーを工夫するだけでコンバージョンも上がります。
ラベリングを工夫したボタン周り
「資料請求をする」といった文言だけのボタンだと、ボタンの役割が少し分かりづらいですよね。サンプルのように説明を足すことで、「物件の資料」「無料」ということが分かります。訴求したいポイントが多くあっても、あまりごちゃごちゃさせるとボタンだと認識しにくくなってしまうので注意です。
ラベリングを工夫したボタン周り4
重要なテキストは色を変えるなどして工夫します。矢印をつけなくても指アイコンをつけることで押せるボタンだということがわかります。
一般的なボタン
<a href="" class="btn btn-c">ネットで無料審査依頼<i class="fas fa-arrow-circle-right fa-position-right"></i></a>
/*その他と主な共通部分は省略*/
a.btn-c {
border: 1px solid #1b7e40;
border-radius: 1rem;
background: #1b7e40;
background: -webkit-gradient(linear, left bottom, left top, color-stop(50%, #1b7e40), to(#20b958));
background: -webkit-linear-gradient(bottom, #1b7e40 50%, #20b958 100%);
background: linear-gradient(0deg, #1b7e40 50%, #20b958 100%);
-webkit-box-shadow: inset 0 1px 1px rgba(255, 255, 255, .6), 0 5px 10px rgba(0, 0, 0, .1);
box-shadow: inset 0 1px 1px rgba(255, 255, 255, .6), 0 5px 10px rgba(0, 0, 0, .1);
}
昔からよくあるグラデーションとborder、shadowで加工されたボタンです。
スマホ用のボタン2 / 2カラム
<div class="btn-wrap btn-wrap-pc-sp">
<a href="" class="btn btn-pc-sp btn-pc-sp--contact">
お問い合せは<br>こちら
<i class="fas fa-angle-right fa-position-right"></i>
</a>
<a href="" class="btn btn-pc-sp btn-pc-sp--tel">
お電話はこちら<br>
<span class="number">0120-12-3456</span>
<i class="fas fa-angle-right fa-position-right"></i>
</a>
</div>
/*その他と主な共通部分は省略*/
a.btn-pc-sp .number {
font-size: 1.3rem;
letter-spacing: .05em;
}
電話ボタンに番号を書いておくことでコンバージョン率を上げることができる場合があります。理由としては必ずしも閲覧しているユーザーがその端末で電話をするとは限らないからです。
調べたのは自分だけど電話をする行為は他の人に任せる、とかよくありますよね。
スマホ用のボタン3 / 2カラム
ボタンを立体的にしたパターンです。スマホではホバーというものがないので、ホバーアクションは基本必要ありません。サービスによっては押した時のアクションがあるといいかもしれません。
スマホ用のボタン4 / 2カラム
スマホでは幅の制限あるので、文字数には気をつけましょう。
レスポンシブデザインなどでは画面サイズで可変となるvw
でフォントサイズを指定することも多いと思います。
ただブラウザによって10px以下の表現ができなかったり、改行位置が変わってしまったりすることがあるので注意が必要です。
スマホ用のボタン5 / 2カラム
<div class="btn-wrap btn-wrap-pc-sp">
<a href="" class="btn btn-pc-sp btn-pc-sp--3 btn-pc-sp--contact">
<i class="fas fa-envelope fa-position-left"></i>
お問い合せ
<i class="fas fa-angle-right fa-position-right"></i>
</a>
<a href="" class="btn btn-pc-sp btn-pc-sp--3 btn-pc-sp--tel">
<i class="fas fa-phone-alt fa-position-left"></i>
電話をする
<i class="fas fa-angle-right fa-position-right"></i>
</a>
</div>
アイコンを足したパターンです。
スマホ用のボタン5 / 1カラム
無理して2カラムにするよりも、シンプルに1カラムで文字サイズを大きくしたほうがいいですね。
カートに入れるボタン2
<a href="" class="btn btn-tag"><i class="fas fa-shopping-cart"></i>カートに入れる</a>
/*その他と主な共通部分は省略*/
a.btn-tag {
color: #fff;
border-bottom: 5px solid #db9014;
background: #f39800;
}
a.btn-tag:before {
border-right: 2px solid rgba(255, 255, 255, .5);
}
a.btn-tag:hover {
margin-top: 3px;
border-bottom: 2px solid #db9014;
background: #ffa50e;
}
装飾を変えてみたパターンです。
SNS等のボタン
主要SNS等のボタンです。ボタンの色はブランドカラーに合わせるようにしましょう。アイコンはFontAwesomeです。
<a href="" class="btn btn-sns btn-sns--facebook">
<i class="fab fa-facebook-f"></i>
</a>
/*主な共通部分は省略*/
a.btn-sns {
font-size: 2.4rem;
line-height: 50px;
width: 50px;
height: 50px;
padding: 0;
letter-spacing: 0;
color: #fff;
border-radius: 50%;
}
a.btn-sns:hover {
color: #fff;
}
a.btn-sns--facebook {
background: #1877f2;
}
facebookのボタンです。
<a href="" class="btn btn-sns btn-sns--twitter">
<i class="fab fa-twitter-f"></i>
</a>
/*主な共通部分は省略*/
a.btn-sns {
font-size: 2.4rem;
line-height: 50px;
width: 50px;
height: 50px;
padding: 0;
letter-spacing: 0;
color: #fff;
border-radius: 50%;
}
a.btn-sns:hover {
color: #fff;
}
a.btn-sns--twitter {
background: #1da1f2;
}
Twitterのボタンです。
<a href="" class="btn btn-sns btn-sns--instagram">
<i class="fab fa-instagram-f"></i>
</a>
/*主な共通部分は省略*/
a.btn-sns {
font-size: 2.4rem;
line-height: 50px;
width: 50px;
height: 50px;
padding: 0;
letter-spacing: 0;
color: #fff;
border-radius: 50%;
}
a.btn-sns:hover {
color: #fff;
}
a.btn-sns--instagram {
background: #d6249f;
background: -webkit-linear-gradient(45deg, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
background: linear-gradient(45deg, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
}
Instagramのボタンです。
LINE
<a href="" class="btn btn-sns btn-sns--line">
<i class="fab fa-line-f"></i>
</a>
/*主な共通部分は省略*/
a.btn-sns {
font-size: 2.4rem;
line-height: 50px;
width: 50px;
height: 50px;
padding: 0;
letter-spacing: 0;
color: #fff;
border-radius: 50%;
}
a.btn-sns:hover {
color: #fff;
}
a.btn-sns--line {
background: #00b900;
}
LINEのボタンです。
Youtube
<a href="" class="btn btn-sns btn-sns--youtube">
<i class="fab fa-youtube-f"></i>
</a>
/*主な共通部分は省略*/
a.btn-sns {
font-size: 2.4rem;
line-height: 50px;
width: 50px;
height: 50px;
padding: 0;
letter-spacing: 0;
color: #fff;
border-radius: 50%;
}
a.btn-sns:hover {
color: #fff;
}
a.btn-sns--youtube {
background: #cd201f;
}
Youtubeのボタンです。
wordpress
<a href="" class="btn btn-sns btn-sns--wordpress">
<i class="fab fa-wordpress-f"></i>
</a>
/*主な共通部分は省略*/
a.btn-sns {
font-size: 2.4rem;
line-height: 50px;
width: 50px;
height: 50px;
padding: 0;
letter-spacing: 0;
color: #fff;
border-radius: 50%;
}
a.btn-sns:hover {
color: #fff;
}
a.btn-sns--wordpress {
background: #21759b;
}
wordpressのボタンです。
CSSで作るボタンまとめ
いかがでしたでしょうか。HTMLとCSSだけでこんなボタンも作れるんだ、と思われたボタンもあったかもしれません。
実際に使うボタンは限られるかと思いますが、デザインの幅を広げておくことでどんな制作物にでも柔軟に使用できますね。
よければご参考にしてください。