Grid
Grid
is a component for managing grid layouts. It also comes with handy style shorthand.
<Grid gap="md" templateColumns="repeat(4, 1fr)">
<For each={Array.from({ length: 4 })}>
{(_, index) => (
<GridItem
key={index}
bg="bg.contrast"
color="fg.contrast"
minH="16"
h="full"
/>
)}
</For>
</Grid>
Usage
import { Grid, GridItem } from "@yamada-ui/react"
import { Grid, GridItem } from "@/components/ui"
import { Grid, GridItem } from "@workspaces/ui"
<Grid>
<GridItem />
</Grid>
Use Template Areas
<Grid
templateAreas={`
"one one two three"
"four five two six"
"four seven seven eight"
`}
gap="md"
>
<For each={["one", "two", "three", "four", "five", "six", "seven", "eight"]}>
{(area, index) => (
<GridItem
key={index}
bg="bg.contrast"
color="fg.contrast"
minH="16"
h="full"
area={area}
/>
)}
</For>
</Grid>
Spanning Multiple Columns and Rows
<Grid gap="md" templateColumns="repeat(4, 1fr)" templateRows="repeat(3, 1fr)">
<GridItem
bg="bg.contrast"
color="fg.contrast"
minH="16"
h="full"
colSpan={2}
/>
<GridItem
bg="bg.contrast"
color="fg.contrast"
minH="16"
h="full"
colSpan={2}
rowSpan={3}
/>
<GridItem
bg="bg.contrast"
color="fg.contrast"
minH="16"
h="full"
rowStart={2}
rowEnd={4}
/>
<GridItem
bg="bg.contrast"
color="fg.contrast"
minH="16"
h="full"
colStart={2}
colEnd={3}
rowStart={2}
rowEnd={4}
/>
</Grid>