Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Introduction

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

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. For 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 given to a breakpoint applies to all the other breakpoints wider than it (unless overridden, as you can read later in this page). 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. 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 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() helper.

  • No labels