角丸のカードに、もう一手間。ほんの少し影をつけるだけで、ページからふわっと浮きあがって見えます。紙にペタッと印刷されたような見た目から、手に取れそうな質感へ——それをかなえるのが box-shadow です。
書いてみよう
.card {
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}box-shadow のうしろに並ぶ4つは、それぞれこういう意味です。
| 値 | 役割 |
|---|---|
0 | 影の横へのずれ(0で真下) |
2px | 影の縦へのずれ(下に2ピクセル) |
10px | 影のぼかしの広さ(大きいほどふんわり) |
rgba(0, 0, 0, 0.06) | 影の色(うすい黒) |
「真下に2ピクセルずれた、10ピクセルぼかした、うすい黒の影」——これで、カードがふわっと持ち上がって見えます。
影のあり・なしを並べると、浮きあがり方の違いがよくわかります。
rgba()で「透明度つきの色」を作る
影の色によく使われるのが rgba()。これまでの色の名前やコードに、透明度を1つ足せる書き方です。
color: rgba(0, 0, 0, 0.06);rgba(赤, 緑, 青, 透明度) の順で、最初の3つは色コードの数字版、最後の 0.06 が透明度です。0 で完全に透明、1 で完全に不透明。影は0.05〜0.15くらいのうすい黒にすると、きつすぎずやわらかく見えます。
影を重ねる・内側にへこませる
box-shadowは、カンマで区切ると複数の影を同時につけられます。
.card {
box-shadow:
0 1px 2px rgba(0, 0, 0, 0.08),
0 8px 24px rgba(0, 0, 0, 0.06);
}近くにうすくくっきり、遠くに広くぼんやり——2枚を重ねると、1枚だけよりも自然な奥行きが出ます。
値の先頭にinsetをつけると、影が内側にできます。
.input {
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}浮き上がる影とは逆に、少しへこんだような見た目になります。入力欄やくぼんだボタンの表現でよく使われる書き方です。
このレッスンのまとめ
- 影は
box-shadow。横のずれ・縦のずれ・ぼかし・色の4つ - 色には
rgba()を使うと、透明度つきの色が作れる - 影はうすく——
rgbaの透明度は低めが上品 - カンマで複数の影を重ねられる。
insetで内側の影にもできる
