- 原則シングルクラス、Blockにmarginを指定したい、Modifierを追加したい場合のみマルチクラス許容
基本的にBlockにはpaddingも指定しない(ElementあるいはModifierで指定する)
- 親ブロックから最小単位の子ブロックへのスタイルの上書きは許容(特定セクションにあるボタンだけ背景色を変えたい場合など)
- 構成は同じだけどmarginやpaddingが異なる場合は、Modifierで差異を記述する(ただし名前は抽象的にすること)
構成は同じだけどmarginやpaddingが異なる場合は、固有BlockとElementを用意し、差異を記述する
- Blockの中に、別のBlock __Elementが入るのも許容する。(親でそのBlockが指定されている場合に限る)ただしメンテナンス性は悪くなる。
- ModifierはElementにのみ付けられる。ただしsectionはBlockに直接Modifierをつけても良い。
- 基本的に、ブロックにそのコンポーネントのベーススタイルを指定する
//共通プロパティ(「placeholderSelector.scss」に記述し、使う際は必要な箇所で@extendする)
//横並び
%flex--align-start {
display: flex;
align-items: flex-start;
} //参考:<https://qiita.com/Takuan_Oishii/items/0f0d2c5dc33a9b2d9cb1>
//ナビ(ヘッダー・フッター共通のものがある場合)
%nav-items {}
%nav-items__item {}
%nav-items__item-link {}
//インナー
%inner {}
//共通 ※bodyタグのクラスに'home'か'sub'付与 | TOPページ:'home' 下層ページ:'sub'
//セクション
section.section
//インナー
div.section__inner
//見出し
div.section__header.common-section-header
h2.common-section-header__title
//中身
div.section__body.home-about
//コンテンツ(下層ページとか)
div.sub-contents
//インナー
div.sub-contents__inner
//見出し
div.sub-contents__header
h2.sub-contents__header-title
//中身
div.sub-contents__body.sub-company
//ヘッダー
header.header
div.header__wrap
//ロゴ
div.header__brand-wrap ←もしかして必要ないのでは?
h1.header__brand
//ナビ
nav.header__nav
ul.header__nav-list
li.header__nav-item
a.header__nav-link
//ドロワー
header.header
//ロゴ
div.header__brand
//ドロワーボタン
button.header__drawer-btn.drawer-btn
//ナビ
nav.header__drawer-nav.drawer-nav
ul.drawer-nav__list
li.drawer-nav__item
a.drawer-nav__link
//ボタン
div.home-mv__btn //MVにあるボタンの場合
a.btn
//セクション
//MV
div.home-mv //marginつけたければ、home__mvも書いておく
div.home-mv__contents
p.home-mv__title
p.home-mv__subtitle
p.home-mv__lead
//アバウト
section.home__about.section //pageはbodyタグのクラスに付与
//ご注文の流れ
section.home__how-to-order.section.section--base(背景色指定用)
div.section__inner
div.section__header.home-section-header
div.section__body.home-how-to-order
div.home-how-to-order__contents //margin・padding調整
ul.how-to-items
li.how-to-items__item.how-to-item
//代表者挨拶(下層ページ、セクションがない場合)
div.sub__company-greeting.sub-company-greeting
//見出し
//トップページでのみ複数使用
div.home-section-header
h2.home-section-header__title
p.home-section-header__subtitle
//下層ページ
div.sub-section-header
h2.sub-section-header__title
p.sub-section-header__subtitle
//全ページ共通
div.common-section-header
h2.common-section-header__title
p.common-section-header__subtitle
//カラム(画像とテキストなど)
div.columns
div.columns__item.column //column側で display: flex;を指定
div.column__img
div.column__map-wrap
div.column__map.map //mapには positon: relative;くらい。padding-topはElementつきの方で
div.column__contents
div.column__content
//下層ページタイトル
div.sub-page-header
div.sub-page-header__bg--company
h1.sub-page-header__title
p.sub-page-header__subtitle
//プライバシーポリシー・特定商取引法(文章のみ)
dl.important-documents
div.important-documents__item.important-document
dt.important-document__title
dd.important-document__text
//footer