このページでは、WordPressテーマ「Arkhe(アルケー)」のCSS設計について解説していきます。
クラスの命名規則について
FLOCSSを参考にしつつ、独自ルールな部分も多数あります。
FLOCSS的な設計にしている理由
WordPress側が用意しているクラスはプレフィックスがない(例 : .pagination
)ので、.c-
や.p-
などが付けている部分 = テーマ側で用意しているものだと区別しやすいため。
かつ、ark-
などのテーマ独自のプレフィックスだけを使うよりもそれぞれの要素の役割が理解しやすく、管理もしやすいため。
メディアクエリのブレイクポイントについて
Arkheで採用しているメディアクエリのブレイクポイントと、各サイズの呼び方は以下のようになっています。
1000px <= size
: PCサイズsize < 1000px
: SPサイズ600px <= size < 1000px
: Tabletサイズsize < 600px
未満 : Mobileサイズ
src/scss/foundation/mixin/_media.scss
にて、メディアクエリ用のmixinが確認できます。
ユーティリティクラスについて
u-only-pc
というクラスをつけるとPCサイズでのみ表示されるようになったりu-fz-l
を付けるとフォントサイズが大きくなったりu-mt-0
を付けると上部マージンが 0 になったり
します。
こういった汎用的に使いまわせるクラスも、Arkheではいくつか用意しています。
詳しくは、src/scss/object/utility/**
を参照してみてください…!
Arkheで定義しているCSS変数
Arkheで追加しているCSS変数は、基本的に--ark-
で始まるようにしています。
カスタマイザーの設定と紐づいているCSS変数
// カラー
--ark-color--main
--ark-color--text
--ark-color--link
--ark-color--bg
// サイト幅
--ark-width--container
// スリム幅
--ark-width--article--slim
// ページ内のコンテンツ幅
--ark-width--article
// サムネイル比率
--ark-thumb_ratio_card
--ark-thumb_ratio_list
// ロゴサイズ
--ark-logo_size--sp
--ark-logo_size--pc
// ブロック幅(エディター上でのみ有効)
--ark-block_width
// alignwideなコンテンツの拡張幅
--ark-alignwide_ex_width
特に設定とは紐づいていないCSS変数
// マージン量
--ark-mt
--ark-mt--s
--ark-mt--h
// フォント関連
--ark-font_family
--ark-font_size
--ark-line_height
--ark-letter_spacing
// l-containerのサイドのpadding量
--ark-padding--container
// カラー系
--ark-color--border
--ark-color--gray
--ark-color--border--table
--ark-color--gray--hover
// 薄いカラーで表示する部分の opacity
--ark-opacity--thin
// 管理バーの高さ
--ark-adminbar_height
//ヘッダーの高さ (数値はJSでセット)
--ark-header_height
--ark-header_height--fixed
// スクロールバーの横幅 (数値はJSでセット)
--ark-scrollbar_width
// 画面高さ
--ark-100vh
// フォントサイズリスト
--ark-fz--xs
--ark-fz--s
--ark-fz--n
--ark-fz--m
--ark-fz--l
--ark-fz--xl
--ark-fz--xxl
--ark-fz--huge
// 固定コンテンツを考慮したオフセット値
--ark-offset--y
// 全高コンテンツの高さ
--ark-height--full
本文エリアの余白について
Arkheでは、本文エリア(the_content()
の部分)は基本的にmargin-top
で余白をとっています。
- デフォルトのブロック間のマージン量は、
--ark-mt
です。 - 見出しの上部は
--ark-mt--h
です。 - 「インナーブロック間」のマージン量については、以下の通りです。(見出し上部の余白も以下の値に上書きされます。)
- 「カラム」「 メディアと文章」ブロック のインナーブロック :
--ark-mt--s
- 通常幅の「グループ」「カバー」ブロック のインナーブロック :
--ark-mt--s
- 幅広な「グループ」・「カバー」ブロック のインナーブロック :
--ark-mt
- 「カラム」「 メディアと文章」ブロック のインナーブロック :
- 「全幅」と「全幅」のブロック間は
0
になります。
コンテンツのマージンについて
.l-content__body
の上下には基本的に全てのページでマージンがありますが、
フロントページのこの部分にはマージンがありません。(自由にコンテンツを構築しやすくするため)
「幅広」サイズについて
- フロント側では、「コンテンツ幅 + 左右にそれぞれ
--ark-alignwide_ex_width
(100px
)」広がります。- このサイズがブラウザ幅が超えてしまうようになると、通常幅に収まります。
- 2カラム(サイドバーあり)のページでは、広がりません。
広げる幅の100
という数値は、'arkhe_alignwide_plus_width'
フィルターフックで上書きできます。
「全幅」について
「幅広」・「全幅」が入れ子になった時の仕様について
- 基本的に、コンテンツエリアの中のdivの内部にある場合は親のサイズに収まります。
- ただし、
- 全幅のカバーブロック
- 全幅の背景色グループブロック
- のような、「全幅だけどインナーコンテンツは通常幅になっているようなエリア」で使用された「幅広」・「全幅」は、サイズがしっかり広がるようになっています。
是非、以下のページもあわせてご覧ください。