Skip to content
1440px

Material Design 3 Breakpoints

The M3 defaults, the media queries they generate, and how they line up against real device widths.

Material Design 3 M3 · window size classes · dp
600 · 840 · 1200 · 1600

4 breakpoints from 600px to 1600px. Material 3 replaced fixed breakpoints with window size classes measured in density-independent pixels. Compact covers most phones in portrait.

Material Design 3 M3 default breakpoints. "Devices ≥" counts how many of the 242 catalogued devices have a CSS viewport at least that wide.
NameValuePixelsMedia queryDevices ≥
Compact0dpwidth < 600dp242
Medium600dp600600dp ≤ width < 840dp99
Expanded840dp840840dp ≤ width < 1200dp67
Large1200dp12001200dp ≤ width < 1600dp53
Extra-large1600dp1600width ≥ 1600dp24

Configuration

Material Design 3 config
// Jetpack Compose
val windowSizeClass = calculateWindowSizeClass(activity)
when (windowSizeClass.widthSizeClass) {
  WindowWidthSizeClass.Compact -> { /* phone portrait */ }
  WindowWidthSizeClass.Medium  -> { /* foldable, tablet portrait */ }
  WindowWidthSizeClass.Expanded-> { /* tablet landscape, desktop */ }
}

How Material Design 3 compares

Breakpoint comparison across 10 CSS frameworks — 13 shared widths
FrameworkUnit4805766006407689921024120012801440153616001920Only here
Tailwind CSSrem···smmd·lg·xl·2xl··
Bootstrappx·sm··mdlg·xl·····1400 xxl
MUI (Material UI)px··sm····lg··xl··900 md
Bulmapx······desktop······769 tablet, 1216 widescreen, 1408 fullhd
Foundationem···medium··largexlarge·xxlarge···
Chakra UIemsm···mdlg··xl·2xl··
Ant Designpx·sm··mdlg·xl···xxl·
Vuetifypx··sm·····lg···xl960 md, 2560 xxl
Material Design 3dp··Medium····Large···Extra-large·840 Expanded
Open Propsem--sm···--md·--lg··--xl··--xxl240 --xxs, 384 --xs

Questions

What are the default Material Design 3 breakpoints?

Material Design 3 M3 ships 5 tiers: Compact (0px), Medium (600px), Expanded (840px), Large (1200px), Extra-large (1600px).

Are Material Design 3 breakpoints min-width or max-width?

Material Design 3 uses window size classes.

How do I change the Material Design 3 breakpoints?

Override them in the configuration — see the snippet on this page. Changing them is usually a mistake unless you have a concrete layout reason; the defaults are chosen to sit between real device clusters.

Why does Material Design 3 use dp?

Pixel breakpoints are predictable and map directly to device widths, which makes them easy to reason about — at the cost of ignoring the user's font-size preference.

Other frameworks

Values taken from the official Material Design 3 documentation (https://m3.material.io/foundations/layout/applying-layout/window-size-classes), version M3, verified 2026-08-07.