All foundations
THE FOUNDATION

Grid & layout

One system. Every screen.

Version 1

About grid & layout

A fluid grid gives content structure without tying it to a single screen. The V1 foundation provides six breakpoint references, while content must also work below the smallest reference.

Our grid principles

Anatomy of the grid

Columns define the structure. Column gutters separate tracks; row gutters separate rows. Margins frame the outside. Composition zones let content span several columns without consuming gutters as content space.

A 12-column scaffold
123456789101112
Composition zone · 8 columns4 columns12 columns · a new row
① Column② Column gutter③ Outer margin④ Composition zone⑤ Row gutter
Original diagram adapted from the Figma grid anatomy. The outer blue frame is the margin; pale vertical bands are columns; open channels are gutters.

Optimizing column layouts

Compose a full-width element, equal halves, thirds, quarters, or sixths. A primary area can take two thirds while supporting content takes one third. An intentional offset can establish hierarchy, but empty columns must not replace the grid’s margin or component padding.

Seven composition patterns
12/12
6/126/12
4/124/124/12
3/123/123/123/12
2/122/122/122/122/122/12
8/124/12
2/128/122/12
These patterns use a 12-column canvas. At smaller breakpoints, recompose into the available four or eight columns; retain a meaningful reading order.

Breakpoints, gutters, and density

The source specifies four columns below 800px, eight from 800px, and twelve from 1200px. Default and compact density have distinct gutters and margins. Compact is this workspace’s starting point; density changes whitespace, never permission to shrink essential touch targets or clip text.

BreakpointMinimumColumnsDefault gutter / marginCompact gutter / margin
Default0px416px / 16px8px / 8px
Extra small480px416px / 16px8px / 8px
Small640px416px / 16px8px / 8px
Medium800px824px / 24px12px / 12px
Large960px824px / 24px12px / 12px
Extra large1200px1224px / 24px16px / 16px
Extra extra large1600px1232px / 32px16px / 16px

The source provides numeric rules for default and compact density. Additional density modes need explicit values before becoming part of the token contract.

Responsive grid explorer
123456789101112
Extra large: 12 columns, 16px gutters and margins. The diagram is schematic; the viewport control selects source rules rather than resizing your browser.

Columns and rows

Columns and rows establish a repeatable visual rhythm. A fluid grid partitions the available space; a fixed grid repeats controlled dimensions.

Density mode shifts

Default density provides more room between content zones. Compact density reduces gutters and margins for information-rich work. It does not reduce the readable text size or required pointer target area.

Default
Compact
Default and compact, comparedThe same twelve-column canvas with more or less whitespace between tracks.

Fluid layouts and fixed composition

A fluid application grid uses available container width and changes track size as the container changes. Fixed compositions are useful for controlled specimens or exports, but must not impose a desktop width on the product. Use a maximum content width where reading comfort matters and let surrounding margins absorb extra space.

Panels, rails, and available space

At 1280px and wider, persistent panels reduce the grid’s available width. Below 1280px, the source calls for panels to overlay the content. The left panel holds primary functions; the right panel holds secondary tools or context. Keep a gap between panels and the grid equal to the active margin.

Panel composition explorer
1200px · Overlay
Navigation
Main content
Below 1280px: panels overlay the unchanged grid. A real modal panel needs dismissal, focus management, and an accessible name.

The four documented combinations are a collapsed left rail with an expanded right panel, both panels expanded, a left rail alone, and a left panel alone. Floating overlays do not resize the grid. Unlike the source’s hover-only examples, this implementation guidance requires click and keyboard activation too.

Panel and rail combinations

A persistent rail or panel subtracts its width from the available content area. Keep the gap between it and the grid equal to the active outer margin. Below 1280px, panels overlay the content instead of shrinking an already narrow layout.

Floating overlays

Menus, tooltips, and transient panels float above the grid. They do not move the content behind them. Essential controls must also work by click and keyboard; a hover-only interaction is insufficient.

Implementation and reflow

Use CSS Grid for the scaffold and independent layout rules inside each composition zone. Set min-width: 0 on flexible children. Test 320px, each breakpoint boundary, both density modes, long translated strings, and browser zoom. Horizontally scroll genuinely two-dimensional data tables within their own labeled region.

.layout { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 8px; }
@media (min-width: 50rem) { .layout { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 12px; padding: 12px; } }
@media (min-width: 75rem) { .layout { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; padding: 16px; } }

Start below 480px

The smallest source breakpoint is 480px, not a minimum supported screen width. Begin with a single-column layout at 320px and progressively introduce columns when content has enough room.

Six breakpoint references

The captured values are xsmall 480, small 640, medium 800, large 960, xlarge 1200, and xxlarge 1600px. Use them as shared vocabulary. Choose transitions based on content rather than device labels.

Alignment and gutters

Align related elements consistently across sections. Keep gutters clear, use the 4px spacing rhythm, and avoid letting elements spill into neighboring columns. Layout and reading order must agree.

Responsive scaffolding

Use minmax(0, 1fr) where long content might otherwise expand a track. Collapse navigation into a labeled dialog on narrow screens. Keep tables in a labeled horizontal scroll region when the information genuinely requires two dimensions.