[CSS]さまざまな要素に利用できる美しいシャドウ、カードやボタンをふわりと浮かび上がらせるスタイルシート
Post on:2017年10月25日
カードやボタンをはじめ、さまざまな要素をふわりと浮かび上がらせる繊細なシャドウを与えるスタイルシートを紹介します。
box-shadowを重ねがけした複雑なスタイルシートですが、スニペットに登録しておくと簡単に利用できます。
繊細なシャドウを与えるスタイルシート
シャドウはbox-shadowを使用し、複数のシャドウを重ねがけします。
カードやボタンなど、さまざまな要素に利用できるので、スニペットに登録しておくと便利です。
1 2 3 4 5 6 7 8 |
.shadow { box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1), 0 1px 6px rgba(0, 0, 0, 0.05), 0 8px 8px rgba(0, 0, 0, 0.1), 0 16px 16px rgba(0, 0, 0, 0.1), 8px 32px 32px rgba(0, 0, 0, 0.15), 8px 64px 64px rgba(0, 0, 0, 0.15); } |
使い方は簡単で、div要素でもp要素でもclassに「.shadow」を加えるだけでOKです。
カードにシャドウを与える
まずは、色付きの普通のカードにシャドウを与えてみます。
カード
色を無しにしても、シャドウを与えると、ふわりとカードが浮かび上がります。
カード
ボタンにシャドウを与える
ボタンにシャドウを与えるのも簡単、classに「.shadow」を加えるだけでOKです。
ボタン
ホバー時にシャドウを与え、ふわりと浮かび上がらせてもよいでしょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
.shadow2 { cursor: pointer; transition: box-shadow 600ms cubic-bezier(0.33, 0.11, 0.02, 0.99), transform 600ms cubic-bezier(0.33, 0.11, 0.02, 0.99); } .shadow2:hover { box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1), 0 1px 6px rgba(0, 0, 0, 0.05), 0 8px 8px rgba(0, 0, 0, 0.1), 0 16px 16px rgba(0, 0, 0, 0.1), 8px 32px 32px rgba(0, 0, 0, 0.15), 8px 64px 64px rgba(0, 0, 0, 0.15); transform: scale(1.05) translateY(-0.5rem); } |
ボタンはリンク要素で実装していないので、「cursor: pointer;」でカーソルを指にし、ホバー時に「transform」で飛び出す感じにします。
ボタン
ボタンを背景と同じ色にしても、面白い効果が得られます。
ボタン
デモ
シャドウは下記ページでいろいろコードを試すこともできます。
sponsors