ボタンを作る前提
このページでは、ボタンをa
タグで作る前提で説明します。
なので、text-decoration: none;
を付けておきましょう。
a {
text-decoration: none;
}
ボタンの基本形
ボタンはa
タグに.c-button
というクラスを付けて紹介します。
まずは、ボタンの基本形の背景があるだけのボタンを作り、ホバー時に色が反転するようにします。
全体の背景が白の場合、ホバー時にボタンの背景が白だと見えなくなるのでborder
を付けておきましょう。ホバーした時の操作は、:hover
を使います。any-hover
については、下記の記事で紹介しているので、そちらを参照してください。
ボタンのサイズ
要件にもよりますが、ここではボタンのサイズは、width
で調整します。.-small
,.-medium
,.-large
というクラスを作り、それぞれのサイズを設定します。
サイズの値に関しては、サイトの要件に合わせて調整し汎用的に使えるようにしましょう。
Outlineと角丸ボタン
背景色がなく枠線のみのOutlineと、角丸のボタンを作ります。
Outlineボタンは、background
をtransparent
にして、color
を#000
にします。
角丸は、border-radius
を使って調整します。角丸のサイズは、rounded-sm
, rounded-md
, rounded-lg
というクラスを作り、それぞれのサイズを設定します。こちらも、サイトの要件に合わせて調整し汎用的に使えるようにしましょう。
アイコン付きのボタン
display: grid
を使って、アイコン付きのボタンを作ります。ここではアイコンは、疑似要素を使って表現してみます。また、2行になってもアイコンが中央にくるようにalign-items: center
を付けておきます。
アイコン付きのボタンは、.-icon-arrow
というクラスを付けて、display: grid
を使ってアイコンを配置します。gridの間隔をgrid-template-columns: 1fr auto 1fr
とすることで、テキストが中央にくるようにします。
デフォルトは、アイコンが右側に来るように設定してます。before
要素を空にし、after
でアイコンを作ることで右側にアイコンが来るボタンができます。アイコンが左側に来るようにするには、.-icon-left
というクラスを付けて、order
を使って調整します。ここで、order
を使って調整するために、テキストはspan
要素でc-button__text
というクラスを付けています。