内側に影を付けて、浅いへこみのあるボックスを表現します。フォームのテキストエリアなど、入力を促したい場所に利用すると効果的です。
.box { border: 1px solid rgba(0, 0, 0, .1); @include box-shadow(rgba(0, 0, 0, .05) -1px 1px 2px inset, rgba(255, 255, 255, .8) -1px 1px 0); }
これにより背景の面にボックスが彫られている感じを表現できます。図では、白に近い薄い色の背景色に乗せることを想定しているので、ハイライトを濃くしていますが、濃い色の上に乗せる場合は、もっと薄くする必要があります。ソリッドな物質感を出したいので、ぼかしは0にします。
これも、使いたい色によって要素の濃さの調整が必要なので、mixinで汎用化します。線、影、ハイライト、それぞれの濃さが変更可能なように作っておくと、色んな場合に使えるので便利です。
@mixin deboss-box($border: .1, $shadow: .05, $highlight: .8) { border: 1px solid rgba(0,0,0,$border); @include box-shadow(rgba(0,0,0,$shadow) -1px 1px 2px inset, rgba(255,255,255,$highlight) -1px 1px 0); }
例えば、線の透明度を0.15、影の透明度を0.2、ハイライトの透明度を0.7で利用したい時はこのように書けます。mixinで指定した順番通りに、引数を指定しましょう。
.box { @include deboss-box(.15, .2, .7); }
この場合、引数が3つと多いので順番を覚えるのが大変です。順番を覚えてない場合は、引数に対応する変数を付けて下記のように指定もできます。この場合は、mixinで指定した順番通りに書かなくても大丈夫です。
.box { @include deboss-box($border: .15, $highlight: .7, $shadow: .7); }
また、mixinで指定したデフォルト値のまま使いたい時は、下記のように引数を指定しないでOKです。
.box { @include deboss-box; }
次は、上記とは逆で、少し飛び出たボックスをシャドウとハイライトで表現します。ボタン等のクリックやタップを促す箇所に使うと効果的です。シャドウやハイライトを控えめに表現すれば、フラットなUIの中にもマッチします。
.box { border: 1px solid rgba(0, 0, 0, .1); @include box-shadow(rgba(0, 0, 0, .05) -1px 1px 0, rgba(255, 255, 255, .5) -1px 1px 0 inset); }
これも同様に、ボックスや背景の色で透明度を調整できるように、mixin化しておきます。線、影、ハイライト、それぞれの濃さが変更可能なように作っておきます。
@mixin emboss-box($border: .1, $shadow: .05, $highlight: .5) { border: 1px solid rgba(0, 0, 0, $border); @include box-shadow(rgba(0, 0, 0, $shadow) -1px 1px 0, rgba(255, 255, 255, $highlight) -1px 1px 0 inset); }
例えば、線の透明度を0.15、影の透明度を0.2、ハイライトの透明度を0.7で利用したい時はこのように書けます。mixinで指定した変数の順番通りに引数を指定します。
.box { @include emboss-box(.15, .2, .7) }
上記と同様に、引数が多いので順番通りに書くのが困難な時は、変数を追加して書くと、順番を気にせず書けます。
.box { @include emboss-box($border: .15, $highlight: .7, $shadow: .2); }
mixinで指定したデフォルト値のまま使いたい時は、下記のように引数を指定しないでOKです。
.box { @include emboss-box; }
今回は、box-shadowならではの繊細な表現を生かして、やりすぎない立体感でフラットデザインの中でもマッチするような、「セミフラット」ともいえるボックスの表現方法と、Sassのmixinでの汎用化方法と併せていくつかご紹介しました。
さて、次回はこれまでのズルいデザイン連載の中でご紹介してきた、各種のテクニックを生かして、汎用性を兼ね備えた「ズルいボタン」の作り方をご紹介します。以前、ズルいデザインのスライドで紹介したものから、さらにいろいろとバージョンアップして、Webフォントアイコンが利用できたり、色や大きさの変化に対応していたりなど、ますます汎用性のあるものになりましたので、ご期待ください。
赤塚 妙子(twitter:@ken_c_lo)
フリーランスのWebデザイナー、グラフィックデザイナー。Webサービスのデザイン、UI・IA設計、コーディング実装から、コンテンツ企画・編集、ディレクション、紙媒体のデザイン、装丁等幅広く手掛ける。いぬとSassとHamlとGitが好き。エディタはVim(初心者)。
Copyright © ITmedia, Inc. All Rights Reserved.