CSS アドバンス

CSS3 シャドウ

CSS3 を使用すると、テキストや要素にシャドウ(影)を追加できます。本セクションでは、以下のプロパティについて解説します。

  • text-shadow
  • box-shadow

1. CSS3 テキストシャドウ (text-shadow)

text-shadow プロパティは、テキストにシャドウを適用するために使用されます。

1.1 基本的なテキストシャドウ

最も単純な使い方は、水平方向のシャドウ(2px)と垂直方向のシャドウ(2px)を指定することです。

h1 {
  /* 水平 2px, 垂直 2px */
  text-shadow: 2px 2px;
}

1.2 シャドウへのカラー指定

次に、シャドウにカラーを追加します。

h1 {
  /* 水平 2px, 垂直 2px, カラーは赤 */
  text-shadow: 2px 2px red;
}

1.3 ぼかし効果(Blur Effect)の追加

シャドウに「ぼかし」を追加するには、3 つ目のパラメータ(ぼかし半径)を指定します。

h1 {
  /* 水平 2px, 垂直 2px, ぼかし 5px, カラーは赤 */
  text-shadow: 2px 2px 5px red;
}

1.4 ホワイトテキストとブラックシャドウ

可読性を高めるために、白いテキストに黒いシャドウを適用する例です。

h1 {
  color: white;
  text-shadow: 2px 2px 4px #000000;
}

1.5 ネオンシャドウのエフェクト

ぼかしを強く設定することで、ネオンのような光り輝くエフェクトを作成できます。

h1 {
  text-shadow: 0 0 3px #FF0000;
}

2. 多重テキストシャドウ

1 つのテキストに複数のシャドウを適用するには、カンマ(,)で区切って指定します。

2.1 複数シャドウの例

以下の例では、赤と青の 2 色のネオン風シャドウを重ねています。

h1 {
  text-shadow: 0 0 3px #FF0000, 0 0 5px #0000FF;
}

また、テキストの周囲に境界線を描くような効果も作成可能です。

h1 {
  color: yellow;
  text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
}

3. CSS3 ボックスシャドウ (box-shadow)

box-shadow プロパティは、要素全体にシャドウを適用するために使用されます。

3.1 基本的なボックスシャドウ

水平方向と垂直方向のオフセットを指定します。

div {
  /* 水平 10px, 垂直 10px */
  box-shadow: 10px 10px;
}

3.2 ボックスへのカラー指定

シャドウに特定の色を付与します。

div {
  box-shadow: 10px 10px lightgrey;
}

3.3 ボックスシャドウへのぼかし効果

3 つ目のパラメータでぼかし具合を調整します。

div {
  box-shadow: 10px 10px 5px lightgrey;
}

4. カードのデザイン (Cards)

box-shadow プロパティを利用して、紙のような質感の「カード型 UI」を作成できます。これはモダンなウェブデザインにおいて非常に一般的です。

div.card {
  width: 250px;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
  text-align: center;
}

5. CSS3 シャドウプロパティ一覧

シャドウを適切に使い分けることで、ユーザーインターフェースに階層構造(Elevation)を持たせることが可能になります。特に rgba を使用して不透明度を調整した柔らかな影は、洗練されたデザインを実現する上での必須テクニックです。