Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8925

FLOCSS設計ってどんなんだっけ?となった時に思い出せる簡単なメモ

$
0
0

概要

Found Layout Object CSSの略で、OOCSSやBEM、SMACSSの流れを受けて考案されたCSS設計思想

FLOCSS

Foundation

  • サイト全体のデフォルトスタイルを定義する
  • _reset.scss, _base.scss, _mixin.scss, _variables.scss

Layout

  • Objectの配置を決める
  • ページ単位で唯一の存在になるのでidセレクタを使う
  • 構造に関わる部分でProjectごとの整列用にflexfloat解除につかったり、sitewidthを定義したりする程度の記述
  • _header.scss, _sidebar.scss, _footer.scss

Object

  • Component
    • 再利用可能なパーツ
    • プレフィックスにc-をつける(.c-btn, .c-btn_primary)
  • Project
    • Componentにするほどでもないパーツ(個々のページの中でしか使わない、1回しか使わないなど)
    • プレフィックスにp-をつける(.p-article, .p-article__title)
  • Utility
    • 汎用クラスで単一のスタイルを持つ
    • プレフィックスにu-をつける(.u-clearfix, .u-block)

命名規則ではBEMと同じ規則が用いられている

ディレクトリ構成

FLOのそれぞれの構造に合わせ、ディレクトリ構造も分割することでメンテナンスしやすくなる

css
|-- foundation
|   |-- _base.scss
|   |-- _reset.scss
|-- layout
|   |-- _main.scss
|   |-- _sidebar.scss
|-- object
    |-- component
    |   |-- _button.scss
    |   |-- _grid.scss
    |-- component 
    |   |-- _articles.scss
    |   |-- _profile.scss
    |-- component 
        |-- _clearfix.scss
        |-- _margin.scss
        |-- _text.scss

sample.html
<!-- flocss.html --><h1>FLOCSS</h1><!-- 以下、layout idセレクタを使う --><divid="countainer"><!-- 以下、component(module) c-を使う --><ulclass="c-menu">  <!-- FLOCSSではmodifierをつける時マルチクラスパターンを基本とする --><liclass="c-menu__item c-menu__item--large">link</li><liclass="c-menu__item c-menu__item--active">active</li></ul></div>
style.scss
.c-menu{list-style-type:none;&__item{width:80px;margin-bottom:5px;color:#4486F7;border:1pxsolid#4486F7;text-align:center;&--large{width:100px;}&--active{color:#fff;background-color:#4486F7;}}}

Viewing all articles
Browse latest Browse all 8925

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>