Web制作の現場でよく使ってきたCSSのみで実装するボタンデザインを紹介します。hover時のスタイルも合わせて公開しているので、そのまま利用することができます。主に自分用のデザインストックとして投稿しますが皆さんも使えるボタンデザインがあるかもしれません。ぜひあなたの現場でもご活用ください。
背景色と矢印のボタン
シンプルな矢印と背景色の組み合わせのボタンです。
justify-content: space-between
とalign-items: center
の組み合わせで、左右両端と上下中央に配置しています。
矢印をposition: absolute
で配置する方法もありますが、flexboxでの組み合わせの方がコードが少なくなるのでこちらを採用することが多いです。
背景色と矢印、角丸のボタン
角丸にしたシンプルなボタンです。丸みがあるので優しい印象のサイトに採用しています。
枠線と矢印のボタン
テーマカラーをボタンに採用したいけどボタンの数が多い時に採用するデザイン。テーマカラーの印象をほどよくつけたい時に使っています。
淡い枠線と矢印のボタン
色の印象をあまりつけたくない時に採用するボタンデザイン。
立体感のあるボタン
立体感のあるボタンデザインはポップな印象をつけたい時によく使います。
ボタンの下に暗い要素をつけることで立体感を表現しています。これをCSSで表現する際はborder-bottom
を使いがちですが、hover時に押した感を出すためにborder-bottom: 5px solid #aaaaaa
から、hover時にborder-bottom: 2px solid #aaaaaa
にすると、ボタンからそれ以降のコンテンツがガクっとずれて表示されてしまいます。
border-bottom
ではなくbox-shadow
で表現することでhover時でも崩れないようになります。
影つきのボタン
リッチな印象をつけたい時によく採用しているボタンデザイン。
点線枠と背景色、矢印のボタン
ポップな印象をつけたい時に採用するボタンデザイン。
斜線の枠と背景色、矢印のボタン
border-image-source
にて線形グラデーションrepeating-linear-gradient
を使用して斜線の破線を表現してあります。こちらもポップなイメージのサイトの時に使います。
ずらした枠線と背景色、矢印のボタン
疑似要素(before)で枠線を表現しています。width
と height
を calc(100% - 4px)
としているのは、background
と border
のサイズ違いが理由です。
サイズの違う2つの要素を組み合わせてずらすと違和感が出てしまうので、beforeの縦横サイズwidth
height
にcalc(100% - 4px)
と、calcで線幅2本分(例では2px x 2px = 4px)を引いて、ボタンと枠のサイズを合わせてからずらしています。
ちなみに、親要素でposition: relative
を指定してある状態でposition: absolute
を指定してtop: 0px
left: 0px
の位置は以下画像になります。
ボタン(グレー背景色部分)にもborder
を指定したいことがあるかもしれませんが、その際は配置と要素サイズには気をつけた方がいいです。
角丸のずらした枠線と背景色、矢印のボタン
先の『ずらした枠線と背景色、矢印のボタン』の角丸タイプのボタンです。やわらかい印象になりますね。
ずらした破線の枠と背景色、矢印のボタン
先の『ずらした枠線と背景色、矢印のボタン』を破線にしたボタンです。若干ポップさが出ます。
少し浮いたように見えるボタン
線を組み合わせたシンプルなボタン。hover時のアニメーションでも楽しめるようにしました。
背景色と明るい背景色をずらしたボタン
明るい背景色(例では青部分)を擬似要素で表現することもできますが、ここではbox-shadow
を使ってコードの短縮化を図っています。記述量がだいぶ減るのでおすすめ。ボタンだけではなく、写真やボックス要素のずらし表現にも使えるので覚えておくと便利です。
グラデーション背景色と矢印のボタン
グラデーションボタンは色の組み合わせ次第で印象をガラっと変えられます。サイトテイストに合わせた色をチョイスする必要がありますが、ユニークな表現ができるのでおすすめです。
丸と矢印、背景色のボタン
小さな丸と矢印の組み合わせはよく見かけますが、丸部分を大きくすると視認性が上がるのでおすすめ。淡い色にするのもいいですね。
背景色と線を組み合わせたボタン
シンプルなデザインのサイトに使いやすいボタンデザイン。
背景色と線、丸を組み合わせたボタン
丸と線を組み合わせたボタンのデザインはよく見かけます。複数パターンがあるのでいくつかストックしておくと便利に使えると思います。
背景色と細い矢印のボタン
細い矢印を擬似要素(beforeとafter)で表現したボタンデザイン。
背景色とずらした細い矢印のボタン
細い矢印をボタンの外へずらしたデザイン。
2重矢印と背景色のボタン
三角矢印と背景色のボタン
三角矢印と背景色のボタン2
三角矢印と背景色のボタン3
三角矢印と背景色の特殊な角丸ボタン
丸と背景色のボタン
大きめ丸と矢印のボタン
小さめ丸と矢印のボタン
2色線と矢印のボタン
2色(青とグレー)の線はborder-imageの線形グラデーションlinear-gradient
を使用して2色を表現しています。
hover時の青背景を疑似要素(before)で表現。ふわっと表示させるためにopacity
で切り替え指定をしています。
左から右にアニメーションさせながら表示させたい時は、a::before
にwidth: 0px
、a:hover::before
にwidth: 30px
と指定します(opacityは削除)。
背景色のページトップへ戻るボタン
背景色と枠線のページトップへ戻るボタン
本拙著『Webデザインアイデアレシピ』には、本記事の内容の他にも見出しデザインや画像装飾、レイアウトに使えるCSS Tipsを多数紹介しています。