Grid
コンテンツをGridレイアウトで配置するためのコンポーネントです。
Import
Section titled “Import”import { Grid } from 'lism-css/react'; | Prop | CSS |
|---|---|
gd | grid |
gt | grid-template |
gta | grid-template-areas |
gtc | grid-template-columns |
gtr | grid-template-rows |
gaf | grid-auto-flow |
gar | grid-auto-rows |
gac | grid-auto-columns |
<Grid gtc='auto 1fr auto' g='20'> <Center p='30' bgc='base-2'>L</Center> <Center p='30' bd>Center</Center> <Center p='30' bgc='base-2'>R</Center></Grid><Grid g='20' gtc={['1fr 1fr', '8em 1fr 8em']} gta={[ `'main main' 'left right'`, `'left main right'` ]}> <Box ga='left' p='20' bgc='base-2'>Left</Box> <Box ga='main' p='20' bd>Center</Box> <Box ga='right' p='20' bgc='base-2'>Right</Box></Grid>比率を固定して要素を並べる
Section titled “比率を固定して要素を並べる”
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi provident libero, eum nulla sunt, porro sed dicta. Impedit ullam eveniet obcaecati minima.
<Grid gtc={['1fr 1fr', '1fr 2fr']} ai='center' g='30'> <Box> <Frame ar='16/9'><img src='https://cdn.lism-css.com/img/a-1.jpg' alt='' /></Frame> </Box> <Box> <Dummy /> </Box> <Box> <Frame ar='16/9'><img src='https://cdn.lism-css.com/img/a-2.jpg' alt='' /></Frame> </Box> <Box> <Dummy length='l'/> </Box></Grid>u-itemDividerを使ってテーブルのような表現にするLorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi provident libero, eum nulla sunt, porro sed dicta. Impedit ullam eveniet obcaecati minima.
<Grid gtc={['2fr 3fr', '1fr 2fr']} className='u-itemDivider' bd bdc='line'> <Box p='20' bgc='base-2'>A</Box> <Box p='20' bgc='base-2'>B</Box> <Box p='20'>Lorem ipsum</Box> <Box p='20'><Dummy /></Box> <Box p='20'>Dolor sit amet</Box> <Box p='20'><Dummy length='l'/></Box></Grid>子要素を重ねて表示する
Section titled “子要素を重ねて表示する”position:absoluteを使わず、grid-area:1/1(.-ga:1)を利用して要素を重ねる例を紹介します。
<Grid ar='16/9' ji='center' ai='center'> <Frame ga='1/1' w='100%' h='100%'> <Media src='https://cdn.lism-css.com/img/a-1.jpg' o='-20'/> </Frame> <Decorator ga='1/1' blur='80px' bgc='white' w='50%' h='4em'/> <Box ga='1/1' fz='2xl' z='1'>SAMPLE TEXT</Box></Grid>subgridの活用
Section titled “subgridの活用”<Grid gtc={['auto','auto 1fr']} bd-b> <Grid gtc='subgrid' gc='1/-1' g='20' ai='center' bd-t py='30'> <Grid gtc={['auto auto', '1fr 1fr']} g='20' jc='start' ai='center'> <Lism fz='xs'>2024.05.31</Lism> <Lism d='in-flex' jc='center' bd fz='xs' lh='1' bgc='text' c='base' p='10' bdrs='5'>NEWS</Lism> </Grid> <Dummy lang='ja' tag='a' href='####' hov='o' c='inherit' td='none' className='u-trim' lh='s' /> </Grid> <Grid gtc='subgrid' gc='1/-1' g='20' ai='center' bd-t py='30'> <Grid gtc={['auto auto', '1fr 1fr']} g='20' jc='start' ai='center'> <Lism fz='xs'>2024.05.29</Lism> <Lism d='in-flex' jc='center' bd fz='xs' lh='1' bgc='text' c='base' p='10' bdrs='5'>TIPS</Lism> </Grid> <Dummy lang='ja' offset='1' tag='a' href='####' hov='o' c='inherit' td='none' length='s' className='u-trim' lh='s' /> </Grid> <Grid gtc='subgrid' gc='1/-1' g='20' ai='center' bd-t py='30'> <Grid gtc={['auto auto', '1fr 1fr']} g='20' jc='start' ai='center'> <Lism fz='xs'>2024.05.18</Lism> <Lism d='in-flex' jc='center' bd fz='xs' lh='1' bgc='text' c='base' p='10' bdrs='5'>COLUMN</Lism> </Grid> <Dummy lang='ja' offset='2' tag='a' href='####' hov='o' c='inherit' td='none' className='u-trim' lh='s' /> </Grid></Grid>-gtc:liquid
Section titled “-gtc:liquid”l--grid との併用が前提の、gtcユーティリティクラスです。
列数を指定せず、子要素が指定した幅より小さくならないように自動で折り返しされるカラムレイアウトを作成します。
ペアプロパティ
Section titled “ペアプロパティ”colsで子要素が維持する最小幅を指定できます(デフォルトは--sz--minです)。
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
Amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
Sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
<Grid gtc='liquid' g='20'> <Box bxsh='20' p='20'><Dummy/></Box> <Box bxsh='20' p='20'><Dummy/></Box> <Box bxsh='20' p='20'><Dummy offset='1' /></Box> <Box bxsh='20' p='20'><Dummy offset='2' /></Box> <Box bxsh='20' p='20'><Dummy length='s' /></Box> <Box bxsh='20' p='20'><Dummy /></Box></Grid>cols=12remLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.
Lorem ipsum dolor sit, amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
Amet consectetur adipisicing elit, sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
Sed do eiusmod tempor. Non facere laudantium ex eos doloribus aut dolore nisi.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor.
<Grid gtc='liquid' g='20' cols='12rem'> <Box bxsh='20' p='20'><Dummy length='s' /></Box> <Box bxsh='20' p='20'><Dummy length='s' /></Box> <Box bxsh='20' p='20'><Dummy /></Box> <Box bxsh='20' p='20'><Dummy offset='1' /></Box> <Box bxsh='20' p='20'><Dummy offset='2' /></Box> <Box bxsh='20' p='20'><Dummy length='s' /></Box></Grid>-gt:repeat
Section titled “-gt:repeat”colsで列数、rowsで行数を指定できるgtユーティリティクラスです。
それぞれ、ブレイクポイント指定も可能で初期値は 1 です。
<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 はそれぞれブレイクポイント指定も可能です。
<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='30' bgc='base-2'>A</Box> <Box p='30' bgc='green:20%'>B</Box> <Box p='30' bgc='blue:20%'>C</Box> <Box p='30' bgc='red:20%'>D</Box> <Box p='30' bgc='purple:20%'>E</Box></Grid>