mirror of
https://github.com/apache/superset.git
synced 2026-04-07 10:31:50 +00:00
193 lines
5.9 KiB
Plaintext
193 lines
5.9 KiB
Plaintext
---
|
|
title: Grid
|
|
sidebar_label: Grid
|
|
---
|
|
|
|
<!--
|
|
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.
|
|
-->
|
|
|
|
import { StoryWithControls } from '../../../src/components/StorybookWrapper';
|
|
|
|
# Grid
|
|
|
|
The Grid system of Ant Design is based on a 24-grid layout. The `Row` and `Col` components are used to create flexible and responsive grid layouts.
|
|
|
|
## Live Example
|
|
|
|
<StoryWithControls
|
|
component="Grid"
|
|
renderComponent="Row"
|
|
props={{
|
|
align: "top",
|
|
justify: "start",
|
|
wrap: true,
|
|
gutter: 16
|
|
}}
|
|
controls={[
|
|
{
|
|
name: "align",
|
|
label: "Align",
|
|
type: "select",
|
|
options: [
|
|
"top",
|
|
"middle",
|
|
"bottom",
|
|
"stretch"
|
|
],
|
|
description: "Vertical alignment of columns within the row."
|
|
},
|
|
{
|
|
name: "justify",
|
|
label: "Justify",
|
|
type: "select",
|
|
options: [
|
|
"start",
|
|
"end",
|
|
"center",
|
|
"space-around",
|
|
"space-between",
|
|
"space-evenly"
|
|
],
|
|
description: "Horizontal distribution of columns within the row."
|
|
},
|
|
{
|
|
name: "wrap",
|
|
label: "Wrap",
|
|
type: "boolean",
|
|
description: "Whether columns are allowed to wrap to the next line."
|
|
},
|
|
{
|
|
name: "gutter",
|
|
label: "Gutter",
|
|
type: "number",
|
|
description: "Spacing between columns in pixels."
|
|
}
|
|
]}
|
|
sampleChildren={[{"component":"Col","props":{"span":4,"children":"col-4","style":{"background":"#e6f4ff","padding":"8px","border":"1px solid #91caff","textAlign":"center"}}},{"component":"Col","props":{"span":4,"children":"col-4 (tall)","style":{"background":"#e6f4ff","padding":"24px 8px","border":"1px solid #91caff","textAlign":"center"}}},{"component":"Col","props":{"span":4,"children":"col-4","style":{"background":"#e6f4ff","padding":"8px","border":"1px solid #91caff","textAlign":"center"}}}]}
|
|
/>
|
|
|
|
## Try It
|
|
|
|
Edit the code below to experiment with the component:
|
|
|
|
```tsx live
|
|
function Demo() {
|
|
return (
|
|
<Row gutter={[16, 16]}>
|
|
<Col span={12}>
|
|
<div style={{ background: '#e6f4ff', padding: '8px', border: '1px solid #91caff' }}>col-12</div>
|
|
</Col>
|
|
<Col span={12}>
|
|
<div style={{ background: '#e6f4ff', padding: '8px', border: '1px solid #91caff' }}>col-12</div>
|
|
</Col>
|
|
<Col span={8}>
|
|
<div style={{ background: '#e6f4ff', padding: '8px', border: '1px solid #91caff' }}>col-8</div>
|
|
</Col>
|
|
<Col span={8}>
|
|
<div style={{ background: '#e6f4ff', padding: '8px', border: '1px solid #91caff' }}>col-8</div>
|
|
</Col>
|
|
<Col span={8}>
|
|
<div style={{ background: '#e6f4ff', padding: '8px', border: '1px solid #91caff' }}>col-8</div>
|
|
</Col>
|
|
</Row>
|
|
);
|
|
}
|
|
```
|
|
|
|
## Responsive Grid
|
|
|
|
```tsx live
|
|
function ResponsiveGrid() {
|
|
return (
|
|
<Row gutter={[16, 16]}>
|
|
<Col xs={24} sm={12} md={8} lg={6}>
|
|
<div style={{ background: '#e6f4ff', padding: '16px', border: '1px solid #91caff', textAlign: 'center' }}>
|
|
Responsive
|
|
</div>
|
|
</Col>
|
|
<Col xs={24} sm={12} md={8} lg={6}>
|
|
<div style={{ background: '#e6f4ff', padding: '16px', border: '1px solid #91caff', textAlign: 'center' }}>
|
|
Responsive
|
|
</div>
|
|
</Col>
|
|
<Col xs={24} sm={12} md={8} lg={6}>
|
|
<div style={{ background: '#e6f4ff', padding: '16px', border: '1px solid #91caff', textAlign: 'center' }}>
|
|
Responsive
|
|
</div>
|
|
</Col>
|
|
<Col xs={24} sm={12} md={8} lg={6}>
|
|
<div style={{ background: '#e6f4ff', padding: '16px', border: '1px solid #91caff', textAlign: 'center' }}>
|
|
Responsive
|
|
</div>
|
|
</Col>
|
|
</Row>
|
|
);
|
|
}
|
|
```
|
|
|
|
## Alignment
|
|
|
|
```tsx live
|
|
function AlignmentDemo() {
|
|
const boxStyle = { background: '#e6f4ff', padding: '16px 0', border: '1px solid #91caff', textAlign: 'center' };
|
|
return (
|
|
<div style={{ display: 'flex', flexDirection: 'column', gap: 16 }}>
|
|
<Row justify="start" gutter={8}>
|
|
<Col span={4}><div style={boxStyle}>start</div></Col>
|
|
<Col span={4}><div style={boxStyle}>start</div></Col>
|
|
</Row>
|
|
<Row justify="center" gutter={8}>
|
|
<Col span={4}><div style={boxStyle}>center</div></Col>
|
|
<Col span={4}><div style={boxStyle}>center</div></Col>
|
|
</Row>
|
|
<Row justify="end" gutter={8}>
|
|
<Col span={4}><div style={boxStyle}>end</div></Col>
|
|
<Col span={4}><div style={boxStyle}>end</div></Col>
|
|
</Row>
|
|
<Row justify="space-between" gutter={8}>
|
|
<Col span={4}><div style={boxStyle}>between</div></Col>
|
|
<Col span={4}><div style={boxStyle}>between</div></Col>
|
|
</Row>
|
|
</div>
|
|
);
|
|
}
|
|
```
|
|
|
|
## Props
|
|
|
|
| Prop | Type | Default | Description |
|
|
|------|------|---------|-------------|
|
|
| `align` | `string` | `"top"` | Vertical alignment of columns within the row. |
|
|
| `justify` | `string` | `"start"` | Horizontal distribution of columns within the row. |
|
|
| `wrap` | `boolean` | `true` | Whether columns are allowed to wrap to the next line. |
|
|
| `gutter` | `number` | `16` | Spacing between columns in pixels. |
|
|
|
|
## Import
|
|
|
|
```tsx
|
|
import Grid from '@superset/components';
|
|
```
|
|
|
|
---
|
|
|
|
:::tip[Improve this page]
|
|
This documentation is auto-generated from the component's Storybook story.
|
|
Help improve it by [editing the story file](https://github.com/apache/superset/edit/master/superset-frontend/packages/superset-ui-core/src/components/Grid/Grid.stories.tsx).
|
|
:::
|