グリッドシステム
グリッド行列(ロウ・カラム)
Startify-UIでは、カラムレイアウトの基本設計として、12分割グリッドシステムを採用しています。12分割グリッドシステムは、「行(ロウ)」と「列(カラム)」の要素で構成し、行要素の子要素に列要素を配置する形を基本とします。
グリッド行列はCSSグリッドレイアウトをベースに構築されており、su-rowクラスが設定された要素をグリッドコンテナとし、su-columnクラスが設定された要素をグリッドアイテムとして扱います。この状態ではでは、グリッドトラックが定義されていないのでgrid-template-columnsプロパティなどを用いて、カラム数を設定するか、下記の等幅カラムレイアウトもしくはユニットカラムレイアウトなどの項にある拡張ユーティリティクラスを追加することで、特定のカラム数やカラム幅を持つマルチカラムレイアウトを構築することができます。
<!-- 行(ロウ)要素-->
<div class="su-row">
<!-- 列(カラム)要素-->
<div class="su-column"></div>
<div class="su-column"></div>
<div class="su-column"></div>
</div>
クラス名の一覧
.su-row | 12分割グリッドレイアウトにおいて行となる要素です。 列要素をラッピングするように構成し、グリッドコンテナとして振る舞います。 |
.su-column | 12分割グリッドレイアウトにおいて列となる要素です。 行要素の子要素として配置し、グリッドアイテムとして振る舞います。 |
等幅カラムレイアウト
12分割グリッドシステムにおいてグリッドコンテナ要素となるsu-rowクラスが設定された要素に対して、下記のようにsu-row-col-evenly-[COLUMNS_NUMBER]クラスを追加することで、クラス名に含まれる1〜12のカラムナンバーに対応したカラム数・幅を持つ等幅カラムのレイアウトを構築できます。その際には、子要素のsu-columnクラスの要素は最大カラム数分を含めるようにします。
また、クラス名のサフィックスとして--desktop、あるいは--mobileを追加することで、ブレークポイントのmobile-l(768px)を基準にレイアウトが適用されるようになります。
<!-- 例:等幅2カラムレイアウト -->
<div class="su-row su-row-col-evenly-2">
<div class="su-column">カラム1</div>
<div class="su-column">カラム2</div>
</div>
<!-- 例:デスクトップ表示(769px〜)では等幅6カラム、モバイル(〜768px)では等幅2カラムレイアウト -->
<div class="su-row su-row-col-evenly-6--desktop su-row-col-evenly-2--mobile">
<div class="su-column">カラム1</div>
<div class="su-column">カラム2</div>
<div class="su-column">カラム3</div>
<div class="su-column">カラム4</div>
<div class="su-column">カラム5</div>
<div class="su-column">カラム6</div>
</div>
クラス名の一覧
.su-row-col-evenly-1 | 1カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-1--mobile | ビューポート幅が768px以下の時に、1カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-1--desktop | ビューポート幅が769px以上の時に、1カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-2 | 2カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-2--mobile | ビューポート幅が768px以下の時に、2カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-2--desktop | ビューポート幅が769px以上の時に、2カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-3 | 3カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-3--mobile | ビューポート幅が768px以下の時に、3カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-3--desktop | ビューポート幅が769px以上の時に、3カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-4 | 4カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-4--mobile | ビューポート幅が768px以下の時に、4カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-4--desktop | ビューポート幅が769px以上の時に、4カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-5 | 5カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-5--mobile | ビューポート幅が768px以下の時に、5カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-5--desktop | ビューポート幅が769px以上の時に、5カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-6 | 6カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-6--mobile | ビューポート幅が768px以下の時に、6カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-6--desktop | ビューポート幅が769px以上の時に、6カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-7 | 7カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-7--mobile | ビューポート幅が768px以下の時に、7カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-7--desktop | ビューポート幅が769px以上の時に、7カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-8 | 8カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-8--mobile | ビューポート幅が768px以下の時に、8カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-8--desktop | ビューポート幅が769px以上の時に、8カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-9 | 9カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-9--mobile | ビューポート幅が768px以下の時に、9カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-9--desktop | ビューポート幅が769px以上の時に、9カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-10 | 10カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-10--mobile | ビューポート幅が768px以下の時に、10カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-10--desktop | ビューポート幅が769px以上の時に、10カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-11 | 11カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-11--mobile | ビューポート幅が768px以下の時に、11カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-11--desktop | ビューポート幅が769px以上の時に、11カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-12 | 12カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-12--mobile | ビューポート幅が768px以下の時に、12カラムの等幅カラムレイアウトを構築します。 |
.su-row-col-evenly-12--desktop | ビューポート幅が769px以上の時に、12カラムの等幅カラムレイアウトを構築します。 |
ユニットカラムレイアウト
12分割グリッドシステムにおいてグリッドコンテナ要素となるsu-rowクラスが設定された要素に対して、su-row-col-unitsクラスを追加し、その子要素となるグリッドアイテム要素のsu-columnクラスの要素に対してsu-column-unit-[COLUMN_UNIT_COUNT]クラスを追加することで、指定したカラムのユニット数に対応したカラム幅を持つマルチカラムレイアウトを構築することができます。なお、クラスに含まれるカラムのユニット数の合計は、正しくレイアウトを構成するために1つの行内で12になるようにします。
(参考:マルチカラムレイアウトの例)
また、su-column-unit-[COLUMN_UNIT_COUNT]クラスのサフィックスとして--desktop、あるいは--mobileを追加することで、ブレークポイントのmobile-l(768px)を基準にカラム幅を変更することができます。
<!-- 例:3:1の2カラムレイアウト -->
<div class="su-row su-row-col-units">
<div class="su-column su-column-unit-9">カラムA</div>
<div class="su-column su-column-unit-3">カラムB</div>
</div>
<!-- 例:デスクトップ表示(769px〜)では1:2:1の3カラムレイアウト、モバイル(〜768px)では1:1:1の3カラムレイアウト -->
<div class="su-row su-row-col-units">
<div class="su-column su-column-unit-3--desktop su-column-unit-4--mobile">カラムA</div>
<div class="su-column su-column-unit-6--desktop su-column-unit-4--mobile">カラムB</div>
<div class="su-column su-column-unit-3--desktop su-column-unit-4--mobile">カラムC</div>
</div>
クラス名の一覧
.su-row-col-units | ユニットカラムを用いてカラム幅が異なるマルチカラムレイアウトを構築します。 行となる要素に対して指定します。 |
.su-column-unit-1 | 1ユニット分(12分の1)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-1--mobile | ビューポート幅が768px以下の時に、1ユニット分(12分の1)のカラム幅を設定します。 |
.su-column-unit-1--desktop | ビューポート幅が769px以上の時に、1ユニット分(12分の1)のカラム幅を設定します。 |
.su-column-unit-2 | 2ユニット分(6分の1)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-2--mobile | ビューポート幅が768px以下の時に、2ユニット分(6分の1)のカラム幅を設定します。 |
.su-column-unit-2--desktop | ビューポート幅が769px以上の時に、2ユニット分(6分の1)のカラム幅を設定します。 |
.su-column-unit-3 | 3ユニット分(4分の1)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-3--mobile | ビューポート幅が768px以下の時に、3ユニット分(4分の1)のカラム幅を設定します。 |
.su-column-unit-3--desktop | ビューポート幅が769px以上の時に、3ユニット分(4分の1)のカラム幅を設定します。 |
.su-column-unit-4 | 4ユニット分(3分の1)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-4--mobile | ビューポート幅が768px以下の時に、4ユニット分(3分の1)のカラム幅を設定します。 |
.su-column-unit-4--desktop | ビューポート幅が769px以上の時に、4ユニット分(3分の1)のカラム幅を設定します。 |
.su-column-unit-5 | 5ユニット分(12分の5)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-5--mobile | ビューポート幅が768px以下の時に、5ユニット分(12分の5)のカラム幅を設定します。 |
.su-column-unit-5--desktop | ビューポート幅が769px以上の時に、5ユニット分(12分の5)のカラム幅を設定します。 |
.su-column-unit-6 | 6ユニット分(2分の1)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-6--mobile | ビューポート幅が768px以下の時に、6ユニット分(2分の1)のカラム幅を設定します。 |
.su-column-unit-6--desktop | ビューポート幅が769px以上の時に、6ユニット分(2分の1)のカラム幅を設定します。 |
.su-column-unit-7 | 7ユニット分(12分の7)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-7--mobile | ビューポート幅が768px以下の時に、7ユニット分(12分の7)のカラム幅を設定します。 |
.su-column-unit-7--desktop | ビューポート幅が769px以上の時に、7ユニット分(12分の7)のカラム幅を設定します。 |
.su-column-unit-8 | 8ユニット分(3分の2)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-8--mobile | ビューポート幅が768px以下の時に、8ユニット分(3分の2)のカラム幅を設定します。 |
.su-column-unit-8--desktop | ビューポート幅が769px以上の時に、8ユニット分(3分の2)のカラム幅を設定します。 |
.su-column-unit-9 | 9ユニット分(4分の3)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-9--mobile | ビューポート幅が768px以下の時に、9ユニット分(4分の3)のカラム幅を設定します。 |
.su-column-unit-9--desktop | ビューポート幅が769px以上の時に、9ユニット分(4分の3)のカラム幅を設定します。 |
.su-column-unit-10 | 10ユニット分(6分の5)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-10--mobile | ビューポート幅が768px以下の時に、10ユニット分(6分の5)のカラム幅を設定します。 |
.su-column-unit-10--desktop | ビューポート幅が769px以上の時に、10ユニット分(6分の5)のカラム幅を設定します。 |
.su-column-unit-11 | 11ユニット分(12分の11)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-11--mobile | ビューポート幅が768px以下の時に、11ユニット分(12分の11)のカラム幅を設定します。 |
.su-column-unit-11--desktop | ビューポート幅が769px以上の時に、11ユニット分(12分の11)のカラム幅を設定します。 |
.su-column-unit-12 | 12ユニット分(行と同幅)のカラム幅を設定します。列となる要素に対して指定します。 |
.su-column-unit-12--mobile | ビューポート幅が768px以下の時に、12ユニット分(行と同幅)のカラム幅を設定します。 |
.su-column-unit-12--desktop | ビューポート幅が769px以上の時に、12ユニット分(行と同幅)のカラム幅を設定します。 |
サイドバー付き2カラムレイアウト
ページレイアウトによっては、サイドバー(サブコンテンツ)とメインコンテンツに分かれた2カラムレイアウトが採用されているケースもあります。その場合には、su-rowクラスが設定された要素に対して、su-row-col-sidebar-lクラス、もしくはsu-row-col-sidebar-rクラスを追加することで、自動的にサイドバーエリアが含まれた3:1の2カラムレイアウトを構築することができます。
su-row-col-sidebar-lクラスを追加すると、ビューポート幅が769px以上の場合には左側にサイドバー(サブコンテンツ)、右側にメインコンテンツエリアが、su-row-col-sidebar-rクラスを追加すると、ビューポート幅が769px以上の場合には右側にサイドバー(サブコンテンツ)、左側にメインコンテンツエリアが表示されます。どちらもビューポート幅が768px以下の場合にはメインコンテンツからサイドバー(サブコンテンツ)の順に1カラムで表示されます。
サイドバー(サブコンテンツ)とメインコンテンツのHTML記述順を調整する場合には、後述するカラムの順序を指定するユーティリティクラスを使用します。
<!-- 左側にサイドバー(ビューポート幅が769px〜) -->
<div class="su-row su-row-col-sidebar-l">
<div class="su-column">
<aside>サイドバー(サブコンテンツ)</aside>
</div>
<div class="su-column">
<article>メインコンテンツ</article>
</div>
</div>
<!-- 右側にサイドバー(ビューポート幅が769px〜) -->
<div class="su-row su-row-col-sidebar-r">
<div class="su-column">
<article>メインコンテンツ</article>
</div>
<div class="su-column">
<aside>サイドバー(サブコンテンツ)</aside>
</div>
</div>
クラス名の一覧
.su-row-col-sidebar-l | ビューポート幅が769px以上の場合に、サイドバーエリアを左側、 メインコンテンツを右側に配置した2カラムレイアウトで配置します。 ビューポート幅が768px以下の場合は、それぞれ縦方向に配置した1カラムレイアウトになります。 |
.su-row-col-sidebar-r | ビューポート幅が769px以上の場合に、サイドバーエリアを右側、 メインコンテンツを左側に配置した2カラムレイアウトで配置します。 ビューポート幅が768px以下の場合は、それぞれ縦方向に配置した1カラムレイアウトになります。 |
カラムの順序
12分割グリッドシステムにおいてグリッドアイテム要素となるsu-columnクラスが設定された要素に対して、su-column-order-[ORDER_NUMBER]クラスを追加することで、カラムの表示順序を指定することができます。
また、su-column-order-[ORDER_NUMBER]クラスのサフィックスとして--desktop、あるいは--mobileを追加することで、ブレークポイントのmobile-l(768px)を基準にカラムの表示順序を変更することができます。
<div class="su-row su-row-col-evenly-3">
<!-- カラムの表示順は2番目 -->
<div class="su-column su-column-order-2">カラムA</div>
<!-- カラムの表示順はビューポート幅が769px以上で1番目、768px以下で3番目 -->
<div class="su-column su-column-order-1--desktop su-column-order-3--mobile">カラムB</div>
<!-- カラムの表示順はビューポート幅が769px以上で3番目、768px以下で1番目 -->
<div class="su-column su-column-order-3--desktop su-column-order-1--mobile">カラムC</div>
</div>
クラス名の一覧
.su-column-order-1 | カラムの表示を1番目に指定します。 |
.su-column-order-1--mobile | ビューポート幅が768px以下の時に、カラムの表示を1番目に指定します。 |
.su-column-order-1--desktop | ビューポート幅が769px以上の時に、カラムの表示を1番目に指定します。 |
.su-column-order-2 | カラムの表示を2番目に指定します。 |
.su-column-order-2--mobile | ビューポート幅が768px以下の時に、カラムの表示を2番目に指定します。 |
.su-column-order-2--desktop | ビューポート幅が769px以上の時に、カラムの表示を2番目に指定します。 |
.su-column-order-3 | カラムの表示を3番目に指定します。 |
.su-column-order-3--mobile | ビューポート幅が768px以下の時に、カラムの表示を3番目に指定します。 |
.su-column-order-3--desktop | ビューポート幅が769px以上の時に、カラムの表示を3番目に指定します。 |
.su-column-order-4 | カラムの表示を4番目に指定します。 |
.su-column-order-4--mobile | ビューポート幅が768px以下の時に、カラムの表示を4番目に指定します。 |
.su-column-order-4--desktop | ビューポート幅が769px以上の時に、カラムの表示を4番目に指定します。 |
.su-column-order-5 | カラムの表示を5番目に指定します。 |
.su-column-order-5--mobile | ビューポート幅が768px以下の時に、カラムの表示を5番目に指定します。 |
.su-column-order-5--desktop | ビューポート幅が769px以上の時に、カラムの表示を5番目に指定します。 |
.su-column-order-6 | カラムの表示を6番目に指定します。 |
.su-column-order-6--mobile | ビューポート幅が768px以下の時に、カラムの表示を6番目に指定します。 |
.su-column-order-6--desktop | ビューポート幅が769px以上の時に、カラムの表示を6番目に指定します。 |
.su-column-order-7 | カラムの表示を7番目に指定します。 |
.su-column-order-7--mobile | ビューポート幅が768px以下の時に、カラムの表示を7番目に指定します。 |
.su-column-order-7--desktop | ビューポート幅が769px以上の時に、カラムの表示を7番目に指定します。 |
.su-column-order-8 | カラムの表示を8番目に指定します。 |
.su-column-order-8--mobile | ビューポート幅が768px以下の時に、カラムの表示を8番目に指定します。 |
.su-column-order-8--desktop | ビューポート幅が769px以上の時に、カラムの表示を8番目に指定します。 |
.su-column-order-9 | カラムの表示を9番目に指定します。 |
.su-column-order-9--mobile | ビューポート幅が768px以下の時に、カラムの表示を9番目に指定します。 |
.su-column-order-9--desktop | ビューポート幅が769px以上の時に、カラムの表示を9番目に指定します。 |
.su-column-order-10 | カラムの表示を10番目に指定します。 |
.su-column-order-10--mobile | ビューポート幅が768px以下の時に、カラムの表示を10番目に指定します。 |
.su-column-order-10--desktop | ビューポート幅が769px以上の時に、カラムの表示を10番目に指定します。 |
.su-column-order-11 | カラムの表示を11番目に指定します。 |
.su-column-order-11--mobile | ビューポート幅が768px以下の時に、カラムの表示を11番目に指定します。 |
.su-column-order-11--desktop | ビューポート幅が769px以上の時に、カラムの表示を11番目に指定します。 |
.su-column-order-12 | カラムの表示を12番目に指定します。 |
.su-column-order-12--mobile | ビューポート幅が768px以下の時に、カラムの表示を12番目に指定します。 |
.su-column-order-12--desktop | ビューポート幅が769px以上の時に、カラムの表示を12番目に指定します。 |