持続可能なCSSルール ECSS(Efficient CSS)
ECSSとは、OOCSS、BEM、SMACSS、FLOCSSなどクラス名をどう命名するかに着目したCSS設計とはちょっと違っていて、どちらかというとコーディングガイドラインみたいなルール。
個人的に、すごく納得感のあるルールだった、というか無意識にやっていたことが明文化された感じがする。
padding
はコンテナ要素とインタラクティブ要素のみ適用する- 例:
p
要素ではなくその親のarticle
要素でpadding
調整する
- 例:
- 基本的なスタイルはグローバルスコープで指定する
- 例:
line-height
やp + p { margin-top: xxx }
など
- 例:
- デザイントークン(CSS Variables)を使う
- UAStylesheetと同じ値で上書きしない
- NG例:
div { display: block; }
など
- NG例:
- ネストは1レベルまで
- 例:
.parent > .child { … }
まで
- 例:
position
とdisplay
は必要最小限のスコープにとどめるmargin
の向きを揃える- 例:
margin-top
のみでmargin-bottom
は使わない
- 例:
- 個人的には avoid margin-top派閥の人間なので思想矯正が必要
- HTML構造は可能な限りフラットにする
- 例: 修飾用のdivなどをできるだけ排除する
- 詳細度は可能なかぎり低く保つ