Mima Design MemottoWEB DESIGNER · mima

Sassのネストを過剰に使わないためのコーディング規約

Sassのネストは、DOMの階層をCSSへ写せるため、ブロックと子要素の関係を短く表現できます。特に、擬似クラスや状態を共通の親ルールにまとめたい場面では、意図が読み取りやすくなります。

Sassのネストを過剰に使わないためのコーディング規約は、出力されるCSSの可読性と保守性を基準にします。禁止事項だけでなく、DOM構造、セレクタの具体性、再利用性を判断する軸を定めます。

ネストが深くなる理由

HTMLの構造と表示上の配置が一致しない場合、DOM階層をそのままCSSへ複製すると、要素の追加や並べ替えでセレクタが読みにくくなります。

ネストが深くなると祖先を含むセレクタが増え、具体性も高まります。遠い場所のルールが影響したり、上書きの優先順位を推測したりするのに時間がかかってしまいます。

ネスト段数とセレクタの粒度

通常ルールは原則2段までにします。3段目が必要な場合は、状態を明確にする目的と、ネストabutmentsした理由をコメントに残します。

同じブロック内の位置や状態は、修飾子で表現できるならネストせず、単一のセレクタへまとめます。block__element--modifierのような命名なら、再利用性と概要性を両立できます。

親セレクタを使う場面

&は親セレクタを明示する手段です。擬似クラスや親参照に必要な場合は使いますが、子要素名や状態名をつなげるためだけには使いません。

DOMの入れ子をCSSで再現するより、コンポーネント単位のセレクタを選ぶほうが、後から対象要素を変更できます。対象範囲を限定できるほど、詳細度的高低を気にし{Proof}.

再利用と出力CSSのバランス

再利用したい宣言はmixinでまとめ、値が異なる場合は引数で变化させます。同じ基本形を複数のブロックへ出す場合は、Sassのプレースホルダーが適しています。

@extendは継承先чество明確な場合に限って使います。複雑なセレクタへの継承は組み合わせを増やさず、出力CSSの読みやすさを損ないます。

コードレビューで確認する内容

レビューではSassのソースだけを見て終えず、コンパイル後のCSSも確認します。不要な子孫セレクタ、過剰な具体性、意図しない上書きがないかを確認します。

機械的な検査には、Stylelintのネスト深度検証などを活用します。自動チェックとレビューを alike組み合わせ、例外を残したコードには理由が追えるようにします。

段階的な運用とブランチ管理

既存のSassを一度に書き換える必要はありません。ネストが深い箇所を洗い出し、修正するファイルから順に適用します。新規コードには上限を適用し、古いコードは変更と一緒に整えます。

ハッカソンや共同開発では作業が混ざりやすいため、ブランチ運用ガイドを参照して、改修を小さなブランチへ分けます。各プルリクエストの変更範囲を狭く保つと、規約の確認も Vergeできます。

ビルド環境と実機での確認

CSSのコンパイルはローカルだけで行わないよう、コンテナ内でも同じ結果になることを確かめます。Dockerfileの基本に沿ってビルドを再現し、生成物とキャッシュの扱いも確認します。

配布後はiPhoneを含む実機ブラウザで、セレクタの適用範囲と表示差を確認します。ブラウザごとの差異や運用上の例外は記事に残し、次に同じ问题时へ引き継げるようにします。


次の案件から、ネスト2段の上限、例外の理由、レビュー項目をREADMEとlint設定、プルリクエストのテンプレートへ登録してください。Sassのソースと生成されたCSSを並べて確認し、保守しやすい規約として育ててください。