ECSS
+ ITCSS
+ RSCSS
を参考にしています。
WHY? 複数回のオーバーライドが必要になったり(多重の打ち消し、詳細度の上昇)、メンテナンスされないコードの発生を恒久的に許すことになる。
悪い例
.exmaple-box {
margin: 10px 20px
}
.exmaple-box.-large {
margin: 20px;
}
.exmaple-box.-orange {
background-color: orange;
}
良い例
.exmaple-box {
margin: 10px 20px;
}
.exmaple-box.-shop {
margin: 20px;
background-color: orange;
}
WHY? 粒度が大きくなる、ELEMENTが別物になる、オーバーライドが無制限になる、メンテナンスがしづらくなる。
悪い例
.exmaple-box {
>.title.-shop {
color: orange;
}
>.address {
font-size: 10px;
}
>.title.-machine {
color: skyblue;
}
>.maker {
font-size: 12px;
}
}
良い例
.shop-box {
>.title {
color: orange;
}
>.address {
font-size: 10px;
}
}
.machine-box {
>.title {
color: skyblue;
}
>.maker {
font-size: 12px;
}
}
- インデントは2スペース
- IDセレクタは使わない
- 中括弧の開始、つまり { の前にスペースを1つ入れる
- プロパティにおいて、 : の前ではなく後ろにスペースを1つ入れる
- 中括弧の終了、つまり } の前に改行を入れる
- スタイルの宣言の間には少なくとも改行を1つ入れる
悪い例
.avatar{
border-radius:50%;
border:2px solid white; }
#hero {
// ...
}
- 行末コメントをなるべく裂けて、コメント用に1行使う
- コメントはそれ自身がドキュメントとなるように詳細にコメントを書く
.js-
という接頭辞を持つJavaScriptバインド専用のクラスを作ることを推奨します。
<button class="btn btn-primary js-request-to-book">Request to Book</button>
絶対にそうなるべきという時に使用しましょう。
主にユーティリティクラスで使うことになると思います。
- rstacruz/stylelint-rscss を使います
ルール変更が必要になった場合は .stylelintrc
を変更してください。(RSCSS
ではtable
などネストが深くなることでlinterrorが発生しやすいです)
ルールのドキュメント: stylelint-rscss/docs/rules.md
ルール変更が対応していない場合は、ここに追加してください .stylelintignore
※ スタイルガイドの整備は意外と時間かかるので、納期を優先してください
Nucleus を利用しています
Nucleus - Living style guide generator で記述方法を確認できます