FLOCSSの各ディレクトリに保管するデータは?【第17話】

WordPress学習記録
この記事は約7分で読めます。

第3弾課題に向けてFLOCSSを学習中…。
前回は基礎中の基礎を学んだので本日はFLOCSSの書くディレクトリについて深く学習していきます!

[PR] 筆者が受講しているスクールはこちら

RaiseTechはAWS・Java・副業・デザイン・マーケティングに特化し現場レベルの学習ができるエンジニアリングスクールです。カリキュラムはもちろんあらゆるサポートが充実していることも特徴の1つです。

RaiseTechの無料説明会に参加してみる 

前回のおさらい

・CSS設計とは分かりやすい&修正しやすいCSSを作る考え方のこと。
・FLOCSSとはCSS設計方法の1つ。
・FLOCSSは「Foundation」「Layout」「Object」の3つのレイヤーと、「Component」「Project」「Utility」の3つの子レイヤーで構成されている。
・FLOCSSで使用される命名規則は接頭辞とMindBEMding

簡単にですが以上を学習しました。

前回のお話はこちらから↓

CSS設計・FLOCSS(フロックス)って何?【第16話】
RaiseTechの次課題に必要な知識CSS設計・FLOCSSの予習を始めました。現場でよく使われるCSS設計についてプログラミング初心者でも理解できるようにわかりやすく噛み砕いてCSS設計とFLOCSSについてご紹介しています。

それでは各レイヤーには何を入れるのかについて学習していきましょう。

Foundation

Foundation=基礎ですから重要なCSSが入っていそうですね。

FLOCSS考案者のHiloki氏によると

Foundation
Reset.cssやNormalize.cssなどを用いたブラウザのデフォルトスタイルの初期化や、プロジェクトにおける基本的なスタイルを定義します。 ページの下地としての全体の背景や、基本的なタイポグラフィなどが該当します。

https://github.com/hiloki/flocss

こちらの説明から読み解くとサイト全体のスタイルを指定するCSSが入っているようです。

これまでCSSで記述する際に冒頭部分に書いていたコードが当てはまります。

//例
*{ margin: 0;
   padding: 0;
   box-sizing: border-box;
   text-decoration: none;
       :
 }

html{ font-size: 62.5%; }

これらは私がいつもCSSファイルの冒頭に記載しているコードの一部です。
他にもimgタグ、aタグ、ulタグなどサイト全体で揃えたいスタイルをFoundationの中に入れておけばいちいち書く必要もないのでCSSの量を減らすことができます。

このようにFoundationにはサイト全体で統一したいスタイルを指定したファイルを入れておこうということですね。

ではどのようなファイル名をつけるべきなのでしょうか?

_reset.scss(css)
_base.scss(css)
_normalize.scss(css)

公式ドキュメントによるとこの3つの太字部分が例としてあげられていました。また冒頭にアンダーバー(_)をつけるのが一般的のようです。

人によっては他のファイル名をつけて管理している方もいるので絶対にこの名前でなくてはいけないというのはなさそうですがぶっ飛んだ名前はつけられませんね。

Layout

無理やり訳すと「設計」ですが何を入れるのでしょうか。

Layout
ページを構成するヘッダーやメインのコンテンツエリア、サイドバーやフッターといったプロジェクト共通のコンテナーブロックのスタイルを定義します。

https://github.com/hiloki/flocss

ヘッダーやフッター、サイドバーなどのどのページに飛んでもいつも表示される共通パーツを入れておくといいみたいですね。

_header.scss
_main.scss
_sidebar.scss
_footer.scss

公式ドキュメントではこちらが例としてあげられていました。

見覚えのある物が多いですね。ページごといちいちヘッダー、フッターを作る必要が省けるので時短になりますね。

スポンサーリンク

Object

「Object=もの」ですが何が入っているのでしょうか。

Object
OOCSSのコンセプトを元に、プロジェクトにおける繰り返されるビジュアルパターンをすべてObjectと定義します。

https://github.com/hiloki/flocss

全ページの中で何度も使われるパーツ(ボタンやリンクなど)の保管をする場所ですがこちらのレイヤーの直下にCSSファイルを作って管理することはありません。

このレイヤーは3つの子レイヤーを持つのでパーツのスタイルはそちらに保管します。

Component

Component
再利用できるパターンとして、小さな単位のモジュールを定義します。
一般的によく使われるパターンであり、例えばBootstrapのComponentカテゴリなどに見られるbuttonなどが該当します。
出来る限り、最低限の機能を持ったものとして定義されるべきであり、それ自体が固有の幅や色などの特色を持つことは避けるのが望ましいです。

https://github.com/hiloki/flocss

引用文中の「BootstrapのComponentカテゴリ」でどんなパーツが入れられるのか書いてあります。ただ英語なので多少わかりづらいところがあります…。

この小さなモジュールというのが曖昧で次のProjectとどちらに入れようか迷う方が多いみたいですね。
きっと私も迷うことになるでしょう…。

最低限の機能というのはボタンの背景色を指定してしまったり余白を指定しまうのはなるべくやめましょうねということですね。

_grid.scss
_button.scss
_form.scss
_media.scss

以上の太字公式ドキュメントであげられていたファイル名の例です。

Project

Project
プロジェクト固有のパターンであり、いくつかのComponentと、それに該当しない要素によって構成されるものを定義します。
例えば、記事一覧や、ユーザープロフィール、画像ギャラリーなどコンテンツを構成する要素などが該当します。

https://github.com/hiloki/flocss

先程のComponentの逆という表現が正しいかどうかはわかりませんが何度も使いたいかたまりのパーツを保管しておく場所ということですね。

あるいはComponentのパーツをProjectに組み込んでかたまりとして保管しておくということもできますね。

_articles.scss
_ranking.scss
_promo.scss

以上の太字公式ドキュメントであげられていたファイル名の例です。

Utility

Utility
ComponentとProjectレイヤーのObjectのモディファイアで解決することが難しい・適切では無い、わずかなスタイルの調整のための便利クラスなどを定義します。

ComponentにもObjectにも入れにくい…ちょっと調節したいだけのクラスなんだけどな…こういった場合はUtilityに入れましょうということですね。

調べたところこちらはあまり使われない…使っても短いコードだけ…という情報が多かったです。よくある「その他」項目のようなディレクトリなのでしょうか。

_clearfix.scss
_display.scss
_margin.scss

以上の太字公式ドキュメントであげられていたファイル名の例です。

最後に

Foundation…サイト全体で統一したいスタイルを指定
Layout…どのページに飛んでもいつも表示される共通パーツ
Object…何度も使われるパーツ・ただ直下には保管しない
ーComponent…何度も使われる細かいパーツスタイル
ーProject…何度も使いたいかたまりのパーツスタイル
ーUtility…ComponentにもProjectにも該当しないもの

初心者の理解なので多少微妙なニュアンスはあるかと思いますが、なんとなーーくFLOCSSがどんな物であるのか見えてきた気がします。

次回からは実際にFLOCSSを使ってコーディング準備をできたらと思います!

最後までお読みいただきありがとうございます。次回も読んでいただけると嬉しいです。

スポンサーリンク

コメント

タイトルとURLをコピーしました