What's new Report an issue
GIG Cymru NHS Wales, Digital Health and Care Wales

Grid and layout

Column grids, breakpoints, gutter and margin tokens for Blazor web, .NET MAUI and EPR application layouts.

Breakpoint system

Five breakpoints define how layouts adapt. All five exist as tokens — the value shown beside each token name is read from the built tokens at build time, so this table cannot drift from what ships.

BreakpointWidth rangeColumnsGutterMarginTokenPlatform
Mobile0 – 767px416px16px--breakpoint-mobile-max = 767pxMAUI mobile · web mobile
Tablet768 – 1023px824px32px--breakpoint-tablet-min = 768pxMAUI tablet · web tablet
Desktop1024 – 1279px1224px40px--breakpoint-desktop-min = 1024pxBlazor web
Large1280 – 1439px1224px64px--breakpoint-large-min = 1280pxBlazor web (standard)
XLarge1440px +1232px80px--breakpoint-xlarge-min = 1440pxBlazor web (wide)

--breakpoint-desktop-min also switches the typography scale from the mobile to the desktop values. Changing it moves both.

Grid types

Mobile and tablet grids are fluid — columns scale to fill. Desktop is 12-column with fixed margins.

Mobile

4-Column Fluid

Columns
4
Gutter
16px
Margin
16px

0 – 767px

Tablet

8-Column Fluid

Columns
8
Gutter
24px
Margin
32px

768 – 1023px

Desktop

12-Column Fixed

Columns
12
Gutter
24–32px
Margin
40–80px

1024px +

EPR application grid

When the EPR navigation sidebar is visible the content zone is reduced. Design against the content zone, not the full frame width.

ContextFrameSidebarContent zoneColumnsGutterMargin
Full width (no sidebar)1440px1440px1232px80px
EPR with sidebar1440px248px1192px1224px32px
EPR with sidebar1280px248px1032px1220px24px

Sidebar is 248px, matching the Navigation component and the Figma grid frame. The component had shipped at 220px, leaving these content zones 28px out against it; both were reconciled to 248px together in 2026-08.

Spacing token reference

Gutter and margin values map directly to the Space scale in Primitives.

UsageValuePrimitiveSemantic
Mobile — gutter & margin16pxSpace/4Spacing/Layout/XS
Tablet — gutter24pxSpace/6Spacing/Layout/SM
Tablet — margin32pxSpace/8Spacing/Layout/MD
Desktop — gutter24pxSpace/6Spacing/Layout/SM
Desktop — margin (1024px)40pxSpace/10
Desktop — margin (1280px)64pxSpace/16Spacing/Layout/Page
Desktop — margin (1440px)80pxSpace/20

The 40px and 80px desktop margins have no semantic layout token. Use the primitive until one exists.

Platform guidance

Web — Blazor

Targets Desktop and Tablet. The sidebar reduces content width — design in the content zone.

  • Desktop XLarge (1440px) — 12 col, 32px gutter, 80px margin
  • Desktop Large (1280px) — 12 col, 24px gutter, 64px margin
  • Desktop (1024px) — 12 col, 24px gutter, 40px margin
  • Tablet (768px) — 8 col, 24px gutter, 32px margin

.NET MAUI

Mobile only — phone and tablet. MAUI has no desktop target in this system; Blazor web covers Desktop/Large/XLarge. Drive layout switches with breakpoint token values, not hardcoded numbers.

  • Phone (< 768px) — 4 col, 16px gutter, 16px margin
  • Tablet (768–1023px) — 8 col, 24px gutter, 32px margin
  • Use OnIdiom / AdaptiveTrigger with Breakpoint/* tokens