クラス名は BEM(Block Element Modifier)記法で記述してください。
単語間はハイフン(-)でつなぎ、ブロック名とエレメント名はアンダースコア 2 つ(__)、モディファイアはハイフン 2 つ(--)でつなぎます。
例:.block-name__element--large
selector-class-pattern ルールを適切に変更してください。モディファイアは、ブロックやエレメントの「見た目」「状態」「ふるまい」などの違いを表現するためのもので、
を表します。
<!-- サイズやテーマを表す例 -->
<a class="button button--xs button--primary">
小さいサイズ・プライマリカラーのボタン
</a>
<!-- 状態を表す例 -->
<button class="button button--disabled">無効状態のボタン</button>
<button class="button button--focused">フォーカスされたボタン</button>
<!-- ふるまいを表す例 -->
<div class="tooltip tooltip--left">左方向に表示されるツールチップ</div>
原則としてすべての要素にクラスを付与します。ただし、どのコンポーネントに帰属するかが明確な場合や、エレメントの詳細度の差を小さくできる場合は省略しても構いません。
クラス名はできる限り省略せず、意味が明確な名前を付けてください。
| ❌ 悪い例 | ✅ 良い例 |
|---|---|
| ttl | title |
| btn | button |
| txt | text |
id 属性はスタイルシートの目的では指定しないでください。data-* 属性は、JavaScript で状態を変化させる場合のみ使用し、スタイルのみを目的として利用することは避けてください。
Tailwind CSS を使用する場合でも、BEM 記法の原則は維持します。
コンポーネント固有のスタイルには BEM クラスを使用し、レイアウトやスペーシングなどの基本的なスタイリングには Tailwind ユーティリティクラスを使用します。
詳細は Tailwind CSS ガイドライン を参照してください。