銀河鉄道

【CSS】box-shadowで月や星を描く

サムネイル
box-shadow

box-shadowって、何ができるの?

【 Point 】

box-shadow: 0 0 10px yellow;

中心から10px分、ぼかしを入れる

影を重ねるだけで芸術的な表現ができるよ。

中心(x y = 0 0)から、ぼかす

まずは、影を1重で作ってみよう。

ここをクリックしてコードを見る
.moon {
 width: 100px;
 height: 100px;
 background: #FFEDA1;
 border-radius: 50%;

 box-shadow: 0 0 10px #FFEDA1;
}

【 Point 】

box-shadow: 0 0 10px yellow;

中心 0 の位置から10px分 ぼかす。

ほんのりした影は、カードやボタンでよく見かける。

box-shadowは insetで内側に入れられる

外側を2重、内側に黒を入れてみよう。

内側に影を入れたいときは inset を使う。

ここをクリックしてコードを見る
.moon {
 box-shadow: 20px -12px 30px rgba(0,0,0,.5) inset,
             0px 0px 10px #a99e71,
             0px 0px 20px #FFEDA1; 
}

影を増やして黒も入れたら、月っぽくなった。

ちなみに内側の影は、ぼかしを消すと、こういう形。

【 Point 】

box-shadow: 20px -12px 0px rgba(0, 0, 0, 0.5) inset;

3つ目の「ぼかし」の数値を0 にすれば、くっきりとした影になる。

内側にするか・外側にするか、

ぼかしを入れるか・入れないか、

それだけで、全然違った絵になる。

さらに影を重ねてみる

外側を3重にしてみた。

ここをクリックしてコードを見る
.moon {
 box-shadow: 20px -12px 30px rgba(0,0,0,.5) inset,
             0 0 10px #a99e71,
             0 0 20px #a99e71,
             0 0 30px #a99e71;
}

黒い部分は、ウサギのいるところ。

影5重

もっと明るくしてみよう。

ここをクリックしてコードを見る
.moon {
 box-shadow: 0 0 10px #FFEDA1,
             0 0 20px #FFEDA1,
             0 0 30px #FFEDA1,
             0 0 40px #FFEDA1,
             0 0 50px #FFEDA1;
}

かなり明るすぎて月には見えないかも。

でも、こういう星はありかも。

外側を赤にする

赤く光ることもあるよね。

ここをクリックしてコードを見る
.moon {
 box-shadow: 0 0 10px #FFEDA1,
             0 0 20px #FFEDA1,
             0 0 30px #FFEDA1,
             0 0 40px #FFEDA1,
             0 0 50px #FFEDA1;
             0 0 200px #ff1177;
}

新星っぽい雰囲気になった。

filter: drop-shadowでアニメーションさせてみる

box-shadowよりfilterをアニメーションさせるのがオススメ。

ここをクリックしてコードを見る
@keyframes moon-anim {
 100% {
  filter: drop-shadow(0 0 .1px #fff);
 }
}

すごく明るくなった。

まとめ

box-shadowは内側にも外側にも配置できる。

工夫次第で、月や星のような表現に。

3つ目が一番、月っぽいかな。

コードペンで。

See the Pen Untitled by azu (@azu-azu) on CodePen.

著者

author
月うさぎ

編集後記:
この記事の内容がベストではないかもしれません。

記事一覧