box-shadow パターンを理解すると「立体感・奥行き・質感」が一気にプロレベルになる
box-shadow は、ただの影ではありません。
UI の雰囲気・奥行き・軽さ・重さ・浮遊感をコントロールするための、非常に強力なデザインツールです。
初心者がつまずきやすい「影の構造」「ぼかしの意味」「広がりの意味」まで丁寧に解説し、
CSS と Tailwind CSS の両方で実践的なパターンを紹介します。
box-shadow の基本構造
影は 4 つの値で構成される
box-shadow: X方向 Y方向 ぼかし 広がり 色;
例:
box-shadow: 0 4px 12px rgba(0,0,0,0.15);
CSS意味はこうです。
- X方向:左右のズレ
- Y方向:上下のズレ(影の落ちる方向)
- ぼかし(blur):影の柔らかさ
- 広がり(spread):影の大きさ
- 色:影の濃さ・透明度
深掘り:影の「ぼかし」と「広がり」の違い
- ぼかし(blur)
→ 影の輪郭をどれだけ柔らかくするか - 広がり(spread)
→ 影のサイズそのものを大きくする
初心者はこの2つを混同しがちですが、
影の質感を決める最重要ポイントです。
Tailwind CSS の box-shadow
Tailwind ではプリセットの影を使います。
shadow-sm
shadow
shadow-md
shadow-lg
shadow-xl
shadow-2xl
shadow-inner
shadow-none
また、任意値も使えます。
shadow-[0_4px_12px_rgba(0,0,0,0.15)]
パターン1:カードの標準シャドウ(最もよく使う)
CSS版
.card {
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}
CSSTailwind版
<div class="shadow-md bg-white p-5 rounded-lg">
カード内容
</div>
HTML特徴
- 柔らかい
- 浮きすぎない
- UI 全般で使いやすい
パターン2:ふわっと浮くシャドウ(モダンUI)
CSS版
.card {
box-shadow: 0 10px 25px rgba(0,0,0,0.12);
}
CSSTailwind版
<div class="shadow-xl bg-white p-6 rounded-xl">
浮遊感のあるカード
</div>
HTML特徴
- 影が大きく、ぼかしも強い
- “浮いている”印象
- モダンな SaaS デザインでよく使う
パターン3:小さく控えめなシャドウ(ボタン・タグ向け)
CSS版
.btn {
box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
CSSTailwind版
<button class="shadow-sm px-4 py-2 bg-blue-600 text-white rounded">
ボタン
</button>
HTML特徴
- 小さくて控えめ
- ボタンや小要素に最適
パターン4:内側の影(inner shadow)
CSS版
.box {
box-shadow: inset 0 2px 6px rgba(0,0,0,0.2);
}
CSSTailwind版
<div class="shadow-inner bg-gray-100 p-4">
内側に影が入る
</div>
HTML特徴
- くぼんだような見た目
- 入力欄・押し込みボタンなどに使う
パターン5:境界線の代わりに影を使う(フラットUI)
CSS版
.box {
box-shadow: 0 0 0 1px rgba(0,0,0,0.1);
}
CSSTailwind版
<div class="shadow-[0_0_0_1px_rgba(0,0,0,0.1)] p-4">
境界線の代わりに影
</div>
HTML特徴
- border より柔らかい
- フラットデザインでよく使う
パターン6:2段階シャドウ(立体感を出す)
CSS版
.card {
box-shadow:
0 2px 4px rgba(0,0,0,0.1),
0 8px 16px rgba(0,0,0,0.08);
}
CSSTailwind版(任意値)
<div class="shadow-[0_2px_4px_rgba(0,0,0,0.1),0_8px_16px_rgba(0,0,0,0.08)] p-6 bg-white rounded-xl">
2段階シャドウ
</div>
HTML特徴
- 影を重ねて自然な奥行きを作る
- Apple / Google の UI でよく見る
パターン7:ホバー時に影を強くする(インタラクション)
CSS版
.card {
transition: box-shadow .2s ease;
}
.card:hover {
box-shadow: 0 12px 28px rgba(0,0,0,0.15);
}
CSSTailwind版
<div class="shadow-md hover:shadow-xl transition-shadow bg-white p-5 rounded-lg">
ホバーで浮くカード
</div>
HTML特徴
- ホバーで浮き上がる
- インタラクションが自然で気持ちいい
box-shadow の深掘りポイント
1. 影の色は「黒」ではなく「透明度のある黒」が基本
rgba(0,0,0,0.1)
rgba(0,0,0,0.15)
rgba(0,0,0,0.2)
CSS濃すぎる影は UI を重くします。
2. 影は「ぼかし」が大きいほど柔らかく見える
ぼかし(blur)が小さい
→ カチッとした影(古いデザイン)
ぼかしが大きい
→ 柔らかくモダンな影(今っぽい)
3. 影の方向は Y方向で決まる
0 4px 12px → 下に落ちる影
0 -4px 12px → 上に落ちる影(特殊)
CSS4. spread は「影の大きさ」を変える
0 4px 12px 4px rgba(0,0,0,0.1)
CSSspread を使うと影が広がり、
“ふわっとした”印象が強くなります。
5. 影は「背景色」との相性が重要
白背景 → 影が映える
濃い背景 → 影が見えにくい
背景色に応じて影の濃さを調整すると、
UI が自然になります。
まとめ
box-shadow は UI の質感を決める重要なプロパティです。
- 影は「X / Y / ぼかし / 広がり / 色」で構成
- Tailwind は shadow-* で簡単に指定
- 小さな影 → ボタン
- 中くらいの影 → カード
- 大きな影 → 浮遊感
- inner shadow → くぼみ
- 2段階シャドウ → 高級感
- ホバーで影を変えるとインタラクションが自然


