コンテンツにスキップ

Grid

コンテンツをGridレイアウトで配置するためのコンポーネントです。

import { Grid } from 'lism-css/react';
PropCSS
gdgrid
gtgrid-template
gtagrid-template-areas
gtcgrid-template-columns
gtrgrid-template-rows
gafgrid-auto-flow
gargrid-auto-rows
gacgrid-auto-columns
真ん中にメインコンテンツ
L
Center
R
<Grid gtc='auto 1fr auto' g='15'>
<Center p='20' bgc='base-2'>L</Center>
<Center p='20' bd>Center</Center>
<Center p='20' bgc='base-2'>R</Center>
</Grid>
ブレイクポイントでエリアを切り替える
Left
Center
Right
リサイズ可能
<Grid
g='15'
gtc={['1fr 1fr', '8em 1fr 8em']}
gta={[
`'main main' 'left right'`,
`'left main right'`
]}
>
<Box ga='left' p='15' bgc='base-2'>Left</Box>
<Box ga='main' p='15' bd>Center</Box>
<Box ga='right' p='15' bgc='base-2'>Right</Box>
</Grid>

position:absoluteを使わず、grid-area:1/1(.-ga:1)を利用して要素を重ねる例を紹介します。

Gritの子要素を重ねて表示する
SAMPLE TEXT
<Grid ar='16/9'>
<Frame ga='1/1' w='100%' h='100%' pos='rel'>
<Media src='https://cdn.lism-css.com/img/a-1.jpg' />
<Layer blur='10px' bgc='rgb(0 0 0 / 40%)' />
</Frame>
<Center ga='1/1' fz='3xl' z='1' c='white'>SAMPLE TEXT</Center>
</Grid>
新着記事一覧リストの作成例
<Grid gtc={['auto','auto 1fr']} bd-b>
<Grid gtc='subgrid' gc='1/-1' g='20' ai='center' bd-t py='20' px='10'>
<Grid gtc={['auto auto', '1fr 1fr']} g='20' jc='start' ai='center'>
<Lism fz='s'>2024.05.31</Lism>
<Lism d='in-flex' jc='center' fz='xs' lh='s' bgc='text' c='base' py='5' px='10' bdrs='5'>NEWS</Lism>
</Grid>
<Dummy className='u-trim' lang='ja' length='s' tag='a' href='####' hov='o' c='inherit' td='none' lh='s' />
</Grid>
<Grid gtc='subgrid' gc='1/-1' g='20' ai='center' bd-t py='20' px='10'>
<Grid gtc={['auto auto', '1fr 1fr']} g='20' jc='start' ai='center'>
<Lism fz='s'>2024.05.29</Lism>
<Lism d='in-flex' jc='center' fz='xs' lh='s' bgc='text' c='base' py='5' px='10' bdrs='5'>TIPS</Lism>
</Grid>
<Dummy className='u-trim' lang='ja' offset='2' tag='a' href='####' hov='o' c='inherit' td='none' lh='s' />
</Grid>
<Grid gtc='subgrid' gc='1/-1' g='20' ai='center' bd-t py='20' px='10'>
<Grid gtc={['auto auto', '1fr 1fr']} g='20' jc='start' ai='center'>
<Lism fz='s'>2024.05.18</Lism>
<Lism d='in-flex' jc='center' fz='xs' lh='s' bgc='text' c='base' py='5' px='10' bdrs='5'>COLUMN</Lism>
</Grid>
<Dummy className='u-trim' lang='ja' length='l' offset='6' tag='a' href='####' hov='o' c='inherit' td='none' lh='s' />
</Grid>
</Grid>

colsで列数、rowsで行数を指定できるgtユーティリティクラスです。

それぞれ、ブレイクポイント指定も可能で初期値は 1 です。

item1
item2
item3
item4
item5
item6
リサイズ可能
<Grid gt='repeat' cols='3' rows='3' g='5' min-h='50svh'>
<Box p='20' bgc='base-2'>item1</Box>
<Box p='20' bgc='base-2'>item2</Box>
<Box p='20' bgc='base-2'>item3</Box>
<Box p='20' bgc='base-2'>item4</Box>
<Box p='20' bgc='base-2' gc='span 2'>item5</Box>
<Center gc='3' gr='1 / -1' p='20' bgc='blue'>item6</Center>
</Grid>

cols,rows はそれぞれブレイクポイント指定も可能です。

A
B
C
D
E
リサイズ可能
<Grid gt='repeat' cols={['2', '3']} rows='4' min-h='50svh' gaf='row dense'>
<Box gc={['1 / -1','span 2']} gr={['span 2', '1 / -1']} p='20' bgc='base-2'>A</Box>
<Box p='20' bgc='green:20%'>B</Box>
<Box p='20' bgc='blue:20%'>C</Box>
<Box p='20' bgc='red:20%'>D</Box>
<Box p='20' bgc='purple:20%'>E</Box>
</Grid>