import :
import * as React from 'react';
import Grid from '@mui/material/Grid2';
config.layout.tsx : setting breakpoints
const theme = createTheme ({ breakpoints : {
values : {
xs : 0,
sm : 576,
md : 768,
lg : 992,
xl : 1200,
xxl : 1601,
},
},
});
component : basic
<Grid
container spacing={
2}>
<Grid size= {8} >
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
size=8
</Box>
</Grid>
<Grid size= {4} >
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
size=4
</Box>
</Grid>
</Grid>
component : Multiple Breakpoints
<Grid
container spacing={
2}>
<Grid size={{xs: 6, md: 8 }} >
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
xs=6 md=8
</Box>
</Grid>
<Grid size={{xs: 6, md: 4 }} >
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
xs=6 md=4
</Box>
</Grid>
</Grid>
component : row & column spacing / loop
<Grid
container rowSpacing={{
xs: 1, sm: 2, md: 3}}
spacing={{
xs: 1, sm: 2, md: 3}} >
{Array
.from(Array(
4))
.map((
_, index)) => (
<Grid
key={
index}
size={
6} >
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
size=6
</Box>
</Grid>
))}
</Grid>
component : Auto-layout
<Grid
container spacing={
2}>
<Grid size="grow">
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
size=grow
</Box>
</Grid>
<Grid size= {6} >
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
size=6
</Box>
</Grid>
<Grid size="grow">
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
size=grow
</Box>
</Grid>
</Grid>
component : width content
<Grid
container spacing={
2}>
<Grid size="auto">
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
size=auto
</Box>
</Grid>
<Grid size= {6} >
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
size=6
</Box>
</Grid>
<Grid size="grow">
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
size=grow
</Box>
</Grid>
</Grid>
component : Offset
<Grid
container spacing={
2}
sx={{
flexGrow: 1}}>
<Grid size={{xs: 6, md: 2}} offset={{xs: 3, md: 0}} >
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
1
</Box>
</Grid>
<Grid size={{xs: 4, md: 2}} offset={{md: 'auto'}} >
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
2
</Box>
</Grid>
<Grid size={{xs: 4, md: 2}} offset={{xs: 4, md: 0}} >
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
3
</Box>
</Grid>
<Grid size={{xs: 'grow', md: 6}} offset={{md: 2}} >
<Box sx={{ p: 2, border: '1px dashed var(--color-gray)', textAlign: 'center' }}>
4
</Box>
</Grid>
</Grid>