--- productId: material-ui title: React GridLegacy component components: GridLegacy githubLabel: 'component: Grid' materialDesign: https://m2.material.io/design/layout/understanding-layout.html githubSource: packages/mui-material/src/GridLegacy --- # GridLegacy
The Material Design responsive layout grid adapts to screen size and orientation, ensuring consistency across layouts.
The [grid](https://m2.material.io/design/layout/responsive-layout-grid.html) creates visual consistency between layouts while allowing flexibility across a wide variety of designs. Material Design's responsive UI is based on a 12-column grid layout. {{"component": "@mui/docs/ComponentLinkHeader", "design": false}} :::warning The `GridLegacy` component shouldn't be confused with a data grid; it is closer to a layout grid. For a data grid head to [the `DataGrid` component](/x/react-data-grid/). ::: :::warning The `GridLegacy` component has been deprecated. Please use [Grid](/material-ui/react-grid/) instead. See the [Grid upgrade guide](/material-ui/migration/upgrade-to-grid-v2/) for more details. ::: ## How it works The grid system is implemented with the `GridLegacy` component: - It uses [CSS's Flexible Box module](https://www.w3.org/TR/css-flexbox-1/) for high flexibility. - There are two types of layout: _containers_ and _items_. - Item widths are set in percentages, so they're always fluid and sized relative to their parent element. - Items have padding to create the spacing between individual items. - There are five grid breakpoints: xs, sm, md, lg, and xl. - Integer values can be given to each breakpoint, indicating how many of the 12 available columns are occupied by the component when the viewport width satisfies the [breakpoint constraints](/material-ui/customization/breakpoints/#default-breakpoints). If you are **new to or unfamiliar with flexbox**, we encourage you to read this [CSS-Tricks flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) guide. ## Fluid grids Fluid grids use columns that scale and resize content. A fluid grid's layout can use breakpoints to determine if the layout needs to change dramatically. ### Basic grid Column widths are integer values between 1 and 12; they apply at any breakpoint and indicate how many columns are occupied by the component. A value passed to any given breakpoint also applies to all wider breakpoints (if they have no values explicitly defined). For example, `xs={12}` sizes a component to occupy the full width of its parent container, regardless of the viewport size. {{"demo": "BasicGrid.js", "bg": true}} ### Grid with multiple breakpoints Components may have multiple widths defined, causing the layout to change at the defined breakpoint. Width values given to larger breakpoints override those given to smaller breakpoints. For example, `xs={12} sm={6}` sizes a component to occupy half of the viewport width (6 columns) when viewport width is [600 or more pixels](/material-ui/customization/breakpoints/#default-breakpoints). For smaller viewports, the component fills all 12 available columns. {{"demo": "FullWidthGrid.js", "bg": true}} ## Spacing To control space between children, use the `spacing` prop. The spacing value can be any positive number, including decimals and any string. The prop is converted into a CSS property using the [`theme.spacing()`](/material-ui/customization/spacing/) helper. {{"demo": "SpacingGrid.js", "bg": true}} ### Row & column spacing The `rowSpacing` and `columnSpacing` props allow for specifying the row and column gaps independently. It's similar to the `row-gap` and `column-gap` properties of [CSS Grid](/system/grid/#row-gap-amp-column-gap). {{"demo": "RowAndColumnSpacing.js", "bg": true}} ## Responsive values You can switch the props' value based on the active breakpoint. For instance, we can implement the ["recommended"](https://m2.material.io/design/layout/responsive-layout-grid.html) responsive layout grid of Material Design. {{"demo": "ResponsiveGrid.js", "bg": true}} Responsive values is supported by: - `columns` - `columnSpacing` - `direction` - `rowSpacing` - `spacing` - all the [other props](#system-props) of MUI System :::warning When using a responsive `columns` prop, each grid item needs its corresponding breakpoint. For instance, this is not working. The grid item misses the value for `md`: ```jsx