Back to Superset

Grid Component

docs/components/layout-components/grid.md

2021.41.03.5 KB
Original Source
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -->

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

jsx
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

jsx
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