l--tileGrid(タイル状に並べる)
l--tileGrid は、列の数と行の数を決めて、同じ大きさのマス目(タイル)を作るクラスです。
l--tileGrid は、列の数(--cols)と行の数(--rows)を決めて、同じ大きさのマス目を作るクラスです。タイルを敷きつめるように、写真や箱を並べられます。
どんなときに使う?#
- 写真のギャラリーのように、大きさのそろったマス目に並べたいとき
- 一部の要素だけ2マスぶん・縦いっぱいに広げて、変化のある並びにしたいとき
列の数だけ決めて、行は中身の数で自然に増やしたいなら l--columns のほうが向いています。
使い方#
箱に l--tileGrid を付け、--cols と --rows を入れます。マスの高さをそろえるため、箱に高さ(下の例では -min-h で最小の高さ)を持たせます。
子要素に -gc(grid-column。横に何マス使うか)・-gr(grid-row。縦に何マス使うか)を付けると、マスをまたいで広げられます。-gr:1/-1 は「1行目から最後の行まで」という意味です。
表示例
<div class="l--tileGrid -g:5 -min-h" style="--cols: 3; --rows: 3; --min-h: 300px">
<div class="l--box -bgc:base-2 -p:10">1</div>
<div class="l--box -bgc:base-2 -p:10">2</div>
<div class="l--box -bgc:base-2 -p:10">3</div>
<div class="l--box -bgc:base-2 -p:10">4</div>
<div class="l--box -bgc:base-2 -p:10 -gc" style="--gc: span 2">5</div>
<div class="l--center -p:10 -bgc -gc -gr:1/-1" style="--bgc: var(--blue); --gc: 3">6</div>
</div>
6つめは3列目に置かれ、上から下まで縦いっぱいに広がっています。
専用の変数#
| 変数 | 決めること | 初期値 |
|---|---|---|
--cols |
列の数 | 1 |
--rows |
行の数 | 1 |
どちらも幅ごとに変えられます(-cols_sm と --cols_sm、-rows_sm と --rows_sm など)。
幅で列の数を変える#
下の例は、せまい画面では2列、広いとき(_sm)では3列になります。
_sm・_md などは、画面の幅ではなく、先祖(外側)にある is--container(コンテナ)の幅で切り替わります。先祖に is--container が無いと切り替わりません。くわしくは is--container(幅の基準になる箱) と 画面の幅で切り替える(レスポンシブ) にあります。
表示例
<div class="l--tileGrid -cols_sm -g:5 -min-h" style="--cols: 2; --cols_sm: 3; --rows: 2; --min-h: 200px">
<div class="l--box -bgc:base-2 -p:10">A</div>
<div class="l--box -bgc:base-2 -p:10">B</div>
<div class="l--box -bgc:base-2 -p:10">C</div>
<div class="l--box -bgc:base-2 -p:10">D</div>
</div>
l--tileGrid のしくみ#
l--tileGrid が付ける CSS は次のとおりです。grid-template は「行 / 列」を1行で書ける CSS で、行も列も minmax(0, 1fr) で同じ大きさに分けています。
.l--tileGrid {
display: grid;
grid-template: repeat(var(--rows, 1), minmax(0, 1fr)) / repeat(var(--cols, 1), minmax(0, 1fr));
}
React・Astro で書く場合#
コンポーネントでは <TileGrid> を使い、cols・rows を渡します。配列にすると幅ごとの値になります。
import { TileGrid, Box } from 'lism-css/react';
<TileGrid cols={['2', '3']} rows="4" min-h="50svh" gaf="row dense">
<Box gc={['1 / -1', 'span 2']} gr={['span 2', '1 / -1']}>A</Box>
<Box>B</Box>
<Box>C</Box>
</TileGrid>
gaf は grid-auto-flow(空いたマスの埋め方)の略です。Astro では lism-css/astro から読み込みます。書き方は Lism コンポーネント(React・Astro) にまとめています。
関連するページ#
- l--grid(Grid で並べる):Grid を自由に組む
- l--columns(同じ幅の列に分ける):列の数だけ決めて並べる
- l--frame(画像や動画の枠):マスの中に画像を入れる
公式ドキュメント
2026年10月5日時点の内容(lism-css 1.0.1・@lism-css/ui 0.40.1)をもとに、やさしい日本語でまとめています。