styleguide
styleguide copied to clipboard
CSSのレイヤーにpagesを追加するか?
現状ではページ単位での個別のスタイルは専用のCSSファイルを作ることになっている。つまり、共通で使われないスタイルはFLOCSSの中に含まない。
1枚のCSSファイルとして書き出したい場合に個別ページ特有のスタイル(Projectレイヤーの上書きなども含めて)を書けるレイヤーがない。
object/page/_comment.scssのようにする。Sassのファイル名はページのファイル名とディレクトリ名と基本的には合致するようにする。つまり、ディレクトリ名だけだったらディレクトリ共通、ディレクトリ名とファイル名を含んでいたらページ専用のスタイル。
body
タグに.pg-comment
のように、接頭辞.pg-
とSassファイルと同じクラス名をつけ、スタイルを記述する。
読み込む順番は以下のようになるのが適切か?
- Object
- Component
- Project
- Page ←new!
- Theme
- Scope
- Utility
- QA/Test
まとめ
- object/page/
- 接頭辞は
.pg-
- ファイル名は参照するHTMLファイルを特定する一意なもの(ファイル名やディレクトリ名を入れる)
- 参照するHTMLファイルの
body
にクラスをつけることで読み込めるようにする(例えば.pg-comment
のように) - Projectレイヤーのあとに読み込ませる
Scopeレイヤーで代用できるかもしれない。
ブログも1つのページと考えることができる。Scopeレイヤー内のファイル名のつけ方は.pg-
と同じにする。
JavaScriptでもPHPでもいいけど、動的にbody
にクラスをふれるようにしておくと運用しやすい。
例えば、テスト環境も含めたドメインを除いたURLから、スラッシュと拡張子を取り除いたクラス名を付与する。クラスはファイル名まで特定するものと、ディレクトリ名までを特定したものの2つ以上を付与できるようにする。
いつでもスタイルを追加することができし、body
にクラスを振り忘れたり振り間違えたりする恐れがなくなる。