レスポンシブデザイン

レスポンシブ優先設計

echo.cssは、ほぼすべてのオブジェクトに、現在の画面の幅に対して最も適切と考えられるスタイルを定義しています。

グリッドやコンテナ等のオブジェクトは、画面サイズでスタイルが変化することが一般的です。
しかし、他のオブジェクトが固定のスタイルのままでは「デスクトップではボタンが小さすぎる」「スマートフォンでは余白が大きすぎる」という問題が生じます。

このため、echo.cssでは、画面サイズによりスタイルが変化する挙動を標準(優先)としています。

下記は .echo-title, .echo-button, .echo-input, .echo-card のサンプルです。画面サイズを変更すると、文字サイズ、ボタンの高さ、カードの余白が変化します。

これはレベル2の見出しです


これはボタンです

これはカード型のコンポーネントです。画像と文章がセットになり、ドロップシャドウ効果が与えられます。

レスポンシブにしてはならない状況への対応

ウェブサイトのデザインによっては、画面サイズによってスタイルが変わってはならない場合があります。予想される例は、以下のとおりです。

  • グリッド内に配置されるカードなど、オブジェクトの幅がほとんど変化しない場合
  • デスクトップで2カラムとなるウェブサイトで、サイドバー内のオブジェクトの幅がほとんど変化しない場合
  • ビットマップの背景画像を使用したリッチデザインのインターフェースを作成する場合

echo.cssでは、このような状況に対応するため、可能な限り「画面サイズによりスタイルを変化させない挙動」を .echo-***-fixed という共通名称のサブクラスとして定義しています。

下記は変化させない挙動のサンプルです。画面サイズを変更しても外観は変化しません。

これはレベル2の見出しです


これはボタンです

これはカード型のコンポーネントです。画像と文章がセットになり、ドロップシャドウ効果が与えられます。

混乱を防ぐために

レスポンシブデザインを多用すると、デザインカンプを作成するための具体的なサイズがわかりにくくなり、混乱を招きます。echo.cssでは、できる限りわかりやすくなるよう、以下の配慮をしています。

  • スタイルガイドに変化値・変化率を明記する(次項「レスポンシブグループ」、後述「フォントサイズ」)
  • 1rem = 16px かつ (breakpoint) が xs = 360px, xxl = 1440px のときに、可能な限りピクセルを保つようにする
  • emrem を使い分ける(後述「単位の扱い」

高度:レスポンシブグループ

画面サイズに対するオブジェクトの変化(特に文字サイズ)のパターンは、可能な限りグループで整理し、挙動を統一しています。

display

ヘッダ・本文・フッタが別々のパターンで変化し、かつ、ヘッダは他と比較して非常に大きく変化します。 .echo-hero, .echo-flip が属しています。

body

文字サイズが本文を前提に変化します。 .echo-body, .echo-box, .echo-form が属しています。

article

文字サイズが狭い範囲での表示、もしくは補足的な情報を前提に変化します。 .echo-card, .echo-headline, .echo-media が属しています。

title

文字サイズが、見出しレベルが小さい数字になるほど大きく変化します。 .echo-title が属しています。

form

文字サイズだけでなく、最低高さも変化します。 .echo-nav, .echo-input, .echo-select が属しています。formグループとbuttonグループはまったく同じ挙動です(フォームに並べたときの体裁を揃えるためです)。

button

formと同じ挙動で、さらに最大幅も変化します。 .echo-button が属しています。また、大きなボタン xl, xxl があります。
なお .echo-toggle はこのグループには属していませんが、 .echo-button.echo-button-square と同じ高さと幅を持ちます。