FLOCSSを追求したい私の最新ディレクトリ構成

以前、「私なりのFLOCSSディレクトリ構成」という記事を書いた。

それからFLOCSSを使ってサイトを制作してみて、CSS設計について考え直す機会があったので、続編を書いてみたい。

目次

汎用性を高めたい

FLOCSS+SassでCSS設計をする最大のメリットは、ズバリ「汎用性」だと感じた。

サイトの独自色となる部分(フォント、色、余白)はできる限り変数にしておく。
よくあるレイアウトはパターン化しておく。

Sassファイルはある程度フォーマット化して、複数サイトで使い回していくことを想定したい。
そのためには、「about」とか「news」みたいな、コンテンツに基づいた命名を排除し、極力レイアウト重視・汎用コンポーネント重視でクラス名を付け、Sassを組み上げる必要がある。

その結果のディレクトリ構成

私が使っている、最新のディレクトリ構成はこちら。

scss
├──style.scss
├── foundation
│ ├── _base.scss
│ ├── _system.scss(JS関連)
│ ├── _variables.scss(変数)*
│ ├── _mixin.scss(mixin)*
│ └── _index.scss(まとめて読み込む用)
├── layout
│ ├── _footer.scss
│ ├── _header.scss
│ ├── _main.scss
│ ├── _sidebar.scss
│ └── _container.scss
├── component
│ ├── _button.scss
│ ├── _link.scss
│ ├── _heading.scss
│ ├── _figure.scss
│ ├── _icon.scss
│ └── _label.scss
├── project
│ ├── _section.scss
│ ├── _gnavi.scss
│ ├── _mv.scss
│ ├── _media.scss
│ ├── _card.scss
│ ├── _hamburger.scss
│ ├── _slider.scss
│ ├── _accordion.scss
│ ├── _tab.scss
│ ├── _articles.scss
│ ├── _contact.scss
│ ├── _gallery.scss
│ ├── _table.scss
│ ├── _pager.scss
│ ├── _action.scss
│ └── _faq.scss
└── utility
  └── _utility.scss

*は他のファイルから参照したい情報の入ったファイル。

projectファイルが増え、様々な複合モジュールを想定した構成になった。

ファイル名内容
sectionセクション枠(layout寄りの役割)
gnaviグローバルナビ
mvメインビジュアル
media画像と文章が横並び
card画像と文章が縦並び
hamburgerハンバーガーボタン
sliderスライダー
accordionアコーディオンメニュー
tabタブ
article記事
contactコンタクトフォーム
gallery画像ギャラリー
tableテーブル(縦と横の2種)
pagerページネーション
actionCTA
faqQ&A

複合モジュール内の可変要素(画像の比率など)は変数にしておけば、variables.scssをいじるだけで調整できる。

今の悩みどころ

これで「俺のFLOCSSベースが完成!」と思いたいところだが、悩んでいるところがある。

レイアウトの基本である「flex」「grid」は、よくあるパターンを予め組んでおきたい。
それを格納するのは、layoutなのか、projectなのか、はたまたcomponentなのか。

mixinを作るつもりではあるが、あまり見やすくないのが悩ましい。

解決策を求め、今日も検索しつづけ半日を溶かしてしまった・・・
また良い方法が見つかったら追記予定。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次