Shorthand prop for gridAutoColumns
SimpleGrid
SimpleGrid provides a friendly interface to create responsive grid layouts with ease.
Import#
import { SimpleGrid } from '@chakra-ui/react'
Usage#
Specifying the number of columns for the grid layout.
<SimpleGrid columns={2} spacing={10}><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box></SimpleGrid>
You can also make it responsive by passing array or object values into the
columns prop.
// Passing `columns={[2, null, 3]}` and `columns={{sm: 2, md: 3}}`// will have the same effect.<SimpleGrid columns={[2, null, 3]} spacing='40px'><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box></SimpleGrid>
Auto-responsive grid#
To make the grid responsive and adjust automatically without passing columns,
simply pass the minChildWidth prop to specify the min-width a child should
have before adjusting the layout.
This uses css grid auto-fit and minmax() internally.
<SimpleGrid minChildWidth='120px' spacing='40px'><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box></SimpleGrid>
Changing the spacing for columns and rows#
Simply pass the spacing prop to change the row and column spacing between the
grid items. SimpleGrid also allows you pass spacingX and spacingY to
define the space between columns and rows respectively.
<SimpleGrid columns={2} spacingX='40px' spacingY='20px'><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box><Box bg='tomato' height='80px'></Box></SimpleGrid>
Props#
SimpleGrid composes Box so you can pass all the Box props and css grid props
with addition of these:
autoColumns
autoColumnsResponsiveValue<GridAutoColumns<0 | (string & {})>>autoFlow
autoFlowShorthand prop for gridAutoFlow
ResponsiveValue<GridAutoFlow>autoRows
autoRowsShorthand prop for gridAutoRows
ResponsiveValue<GridAutoRows<0 | (string & {})>>column
columnShorthand prop for gridColumn
ResponsiveValue<GridColumn>columnGap
columnGapShorthand prop for gridColumnGap
ResponsiveValue<string | number | (string & {})>columns
columnsThe number of columns
ResponsiveValue<number>gap
gapShorthand prop for gridGap
ResponsiveValue<string | number | (string & {})>minChildWidth
minChildWidthThe width at which child elements will break into columns. Pass a number for pixel values or a string for any other valid CSS length.
ResponsiveValue<string | number | (string & {})>row
rowShorthand prop for gridRow
ResponsiveValue<GridRow>rowGap
rowGapShorthand prop for gridRowGap
ResponsiveValue<string | number | (string & {})>spacing
spacingThe gap between the grid items
ResponsiveValue<string | number | (string & {})>spacingX
spacingXThe column gap between the grid items
ResponsiveValue<string | number | (string & {})>spacingY
spacingYThe row gap between the grid items
ResponsiveValue<string | number | (string & {})>templateAreas
templateAreasShorthand prop for gridTemplateAreas
ResponsiveValue<GridTemplateAreas>templateColumns
templateColumnsShorthand prop for gridTemplateColumns
ResponsiveValue<GridTemplateColumns<0 | (string & {})>>templateRows
templateRowsShorthand prop for gridTemplateRows
ResponsiveValue<GridTemplateRows<0 | (string & {})>>