grid Props
LismでGridレイアウトを使用する方法は大きく分けて2パターンあります。
- 専用の
<Grid>
(.l--grid
)モジュール、またはその派生系モジュール(Columns
やTileGrid
など)を使う。 - Lismコンポーネントに
d="grid"
を指定して単純にdisplay:grid
を適用する。(.-d:g
クラスが出力されます。)
DEMO
<Grid>
を使う例A
B
C
リサイズ可能エリアです ↑
<Grid gap={20}>
<p>A</p>
<p>B</p>
<p>C</p>
</Grid>
Gridオプションの指定方法について
Lismコンポーネントでは grid
Propにオブジェクト形式でflexの各オプションを指定でき、<Grid>
系コンポーネントではgrid
を使わずに直接コンポーネントにPropsを指定できます。
<Grid>
, <Columns>
, <RatioGrid>
areas
:grid-template-areas
の値を指定できます。columns
:grid-template-columns
rows
:grid-template-rows
gap
:gap
の値を指定できます。rowGap
:row-gap
の値を指定できます。columnGap
:column-gap
の値を指定できます。ai
:align-items
の値を指定できます。ac
:align-content
の値を指定できます。ji
:justify-items
の値を指定できます。jc
:justify-content
の値を指定できます。
<Grid>
コンポーネントコンテンツ
コンテンツ
コンテンツ
リサイズ可能エリアです ↑
<Grid columns="1fr 1fr 1fr" gap={20}>
...
</Grid>
<Box>
にgrid
を指定するコンテンツ
コンテンツ
コンテンツ
リサイズ可能エリアです ↑
<Box d="grid" grid={{ columns: "1fr 1fr 1fr", gap: 20 }}>
...
</Box>
GridItemの指定
gridの子要素で使用できるプロパティは、gridItem
にオブジェクト形式で指定するか、もしくは、<Item>
コンポーネントを使うことでコンポーネントに直接指定できます。
ga
:grid-area
の値を指定できます。gc
:grid-column
の値を指定できます。gr
:grid-row
の値を指定できます。alignSelf
: align-self の値を指定できます。justifySelf
: justify-self の値を指定できます。order
<Item>
コンポーネントに指定コンテンツ
コンテンツ
コンテンツ
リサイズ可能エリアです ↑
<Grid columns="1fr 1fr" gap={20}>
<Item>コンテンツ</Item>
<Item>コンテンツ</Item>
<Item column="span 2">コンテンツ</Item>
</Grid>
gridItem
に指定コンテンツ
コンテンツ
コンテンツ
リサイズ可能エリアです ↑
<Grid columns="1fr 1fr" gap={20}>
<Box>コンテンツ</Box>
<Box>コンテンツ</Box>
<Box gridItem={{ column: "span 2" }}>コンテンツ</Box>
</Grid>
BP対応props
デフォルトで、以下のPropsはBP指定が可能です。
- ...
...
コンテンツ
コンテンツ
コンテンツ
リサイズ可能エリアです ↑
<Grid
columns={["1fr 1fr", "1fr 1fr 1fr"]}
gap={20}
>
<Item>コンテンツ</Item>
<Item column={[null, "span 2"]}>コンテンツ</Item>
<Item column={["span 2", "span 3"]}>コンテンツ</Item>
</Grid>