メソドロジー

CUBE CSS

シンプルさ、実用主義、一貫性を重視したCSSメソドロジー — ブラウザと協調するよう設計されている。

CUBE CSSとは?

CUBEはComposition Utility Block Exceptionの略 — 互いに積み重なる4つのレイヤーで、それぞれが明確で限定された責務を持つ。

このメソドロジーはAndy Bellによって作られ、ブラウザの自然なカスケードに逆らうのではなく、受け入れるよう設計されている。

4つのレイヤー

C
構成
高レベルのレイアウトシステム。骨格。
影響範囲: 95%詳細度: 5%
U
ユーティリティ
単一目的のクラス。一つの仕事をうまくこなす。
影響範囲: 80%詳細度: 20%
B
ブロック
骨格的なコンポーネント。小さく、具体的なルール。
影響範囲: 30%詳細度: 50%
E
例外
データ属性による状態の変化。
影響範囲: 5%詳細度: 80%

中心となるアイデア

CSSを増大する詳細度で解決すべき問題と捉えるのではなく、CUBE CSSはカスケードを機能として扱う。各レイヤーには定義された役割がある:

  • グローバルCSS — リセット、カスタムプロパティ、基本タイプスケール
  • 構成 — レイアウトプリミティブ、flexbox/gridラッパー
  • ユーティリティ — 単一目的のデザイントークンクラス
  • ブロック — コンポーネント固有のルール、小さく保つ
  • 例外 — データ属性による状態バリアント

ブラウザは柔軟なルールでヒントを受ける。ギャップを埋める。詳細度は低く保たれる。オーバーライドは読みやすい。

BEMとの比較

CUBE CSSはBEM、SMACSS、ユーティリティファーストのアプローチと異なり、詳細度を意図的に低く保ち、カスケードが機能するようにしている。

影響範囲 →
グローバルCSS
100%
構成
90%
ユーティリティ
70%
ブロック
30%
例外
5%
詳細度 →
グローバルCSS
2%
構成
5%
ユーティリティ
20%
ブロック
50%
例外
85%