Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The grid aims for visual consistency between layouts and to provide flexibility across a wide variety of designs.

Anatomy

  • Our design's responsive UI is based on a 12-column grid layout.

  • The grid system is implemented with the Grid component. It uses CSS's Flexible Box module for high flexibility.

  • 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 6 grid breakpoints: xxs, xs, sm, md, lg, 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.

  • There are two types of layout: containers and items.

Usage

...

Usage

Do’s

  • For fluid grid use breakpoints to determine where the page layout has to change.

  • For basic grid use integer values between 1 and 12

...

  • to define how many columns

...

  • will be occupied by the component.

  • Use the spacing props to control space between children.

Info

 A value given to a breakpoint applies to all the other wider breakpoints

wider than it

(unless overridden). For example, xs={12} sizes a component to occupy the whole viewport width regardless of its size.

Grid with multiple breakpoints - components may have multiple widths defined, causing the layout to change at the defined breakpoint.

Info

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. For smaller viewports, the component fills all 12 available columns.

To control space between children, use the spacing props.

Info

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() helper.