Skip to main content
Version: Next

grid


title: Grid sidebar_position: 1

Grid Component

The Grid component provides a flexible layout system for arranging content in rows and columns.

Props

PropTypeDefaultDescription
gutternumber or [number, number]0Grid spacing between items, can be a single number or [horizontal, vertical]
columnsnumber12Number of columns in the grid
justifystring'start'Horizontal alignment: 'start', 'center', 'end', 'space-between', 'space-around'
alignstring'top'Vertical alignment: 'top', 'middle', 'bottom'
wrapbooleantrueWhether to wrap items when they overflow

Row Props

PropTypeDefaultDescription
gutternumber or [number, number]0Spacing between items in the row
justifystring'start'Horizontal alignment for this row
alignstring'top'Vertical alignment for this row

Col Props

PropTypeDefaultDescription
spannumber-Number of columns the grid item spans
offsetnumber0Number of columns the grid item is offset
xs, sm, md, lg, xlnumber or object-Responsive props for different screen sizes

Examples

Basic Grid

import { Grid, Row, Col } from '@superset-ui/core';

function Example() {
return (
<Grid>
<Row gutter={16}>
<Col span={8}>
<div>Column 1</div>
</Col>
<Col span={8}>
<div>Column 2</div>
</Col>
<Col span={8}>
<div>Column 3</div>
</Col>
</Row>
</Grid>
);
}

Responsive Grid

import { Grid, Row, Col } from '@superset-ui/core';

function Example() {
return (
<Grid>
<Row gutter={[16, 24]}>
<Col xs={24} sm={12} md={8} lg={6}>
<div>Responsive Column 1</div>
</Col>
<Col xs={24} sm={12} md={8} lg={6}>
<div>Responsive Column 2</div>
</Col>
<Col xs={24} sm={12} md={8} lg={6}>
<div>Responsive Column 3</div>
</Col>
<Col xs={24} sm={12} md={8} lg={6}>
<div>Responsive Column 4</div>
</Col>
</Row>
</Grid>
);
}

Best Practices

  • Use the Grid system for complex layouts that need to be responsive
  • Specify column widths for different screen sizes to ensure proper responsive behavior
  • Use gutters to create appropriate spacing between grid items
  • Keep the grid structure consistent throughout your application
  • Consider using the grid system for dashboard layouts to ensure consistent spacing and alignment