CSS Subgrid supports Chrome 117+, Edge 117+, Firefox 71+, Safari 16+, Opera 103+, and Samsung Internet 24+. See full browser support details.

Prince Dewani
May 1, 2026
CSS Subgrid is a W3C CSS Grid Layout Module Level 2 feature that lets a nested grid inherit the row and column tracks of its parent grid through the subgrid value. It works in Chrome 117+, Edge 117+, Firefox 71+, Safari 16+, Opera 103+, and Samsung Internet 24+, while Internet Explorer and the legacy Android Browser never added support.
This guide covers what CSS Subgrid is, the browsers that support it, the key features, the use cases, support checks, and known issues.
CSS Subgrid is a value of the grid-template-columns and grid-template-rows properties, defined by the W3C CSS Grid Layout Module Level 2. When set, a nested grid stops creating its own tracks and reuses the parent grid's row or column tracks, so child items align with the parent grid lines.
CSS Subgrid is now Baseline Widely available. Every major engine ships it by default on desktop and mobile, with global support above 92 percent.
Chrome supports CSS Subgrid from Chrome 117 on Windows, macOS, ChromeOS, Linux, and Android. Chrome 114 to 116 had subgrid disabled by default behind the chrome://flags/#enable-experimental-web-platform-features flag, and Chrome 4 to 113 did not parse the subgrid value at all.
Microsoft Edge supports CSS Subgrid from Edge 117 on Windows, macOS, and ChromeOS through the same Chromium 117 base as Chrome. Edge 114 to 116 carried subgrid behind the edge://flags/#enable-experimental-web-platform-features flag, and Edge 12 to 113 did not support it.
Firefox supports CSS Subgrid from Firefox 71 on Windows, macOS, Linux, and Android. Mozilla shipped subgrid first, well ahead of every Chromium and WebKit engine. Firefox 2 to 70 did not parse the subgrid value, so test the older builds with a regular nested grid fallback.
Safari supports CSS Subgrid from Safari 16 on macOS Monterey 12.4 and later, iOS 16, iPadOS 16, and visionOS. The WebKit team rolled it out across desktop and mobile Safari at the same time. Safari 3.1 to 15 did not support subgrid on any Apple platform.
Opera supports CSS Subgrid from Opera 103 on Windows, macOS, and Linux through the Chromium 117 base. Opera 100 to 102 had subgrid disabled by default behind the opera://flags/#enable-experimental-web-platform-features flag, and Opera 9 to 99 did not support it. Opera Mobile picks it up from version 80.
Samsung Internet supports CSS Subgrid from Samsung Internet 24 on Galaxy phones and tablets. Samsung Internet 4.0 to 23 did not parse the subgrid value at all, so any layout that depends on it falls back to a regular nested grid on those builds.
The legacy stock Android Browser, frozen at version 4.4 before Chrome for Android took over, does not support CSS Subgrid. On modern Android phones, use Chrome for Android 147 or later, Samsung Internet 24, Firefox for Android, or another modern Chromium-based browser instead.
Internet Explorer never added CSS Subgrid. IE 5.5 through IE 11 do not parse the subgrid value on grid-template-columns or grid-template-rows; IE 10 and 11 only carried the older -ms-grid prefix. Microsoft has retired Internet Explorer, so use Edge, Chrome, or Firefox for any subgrid work.
Note: CSS Subgrid behaves differently on older Chromium, Firefox, and Safari builds. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
CSS Subgrid layers a small set of behaviors on top of CSS Grid that solve nested-grid alignment without JavaScript. Each piece composes with regular grid placement, so existing layouts only need a few extra lines to opt in.
Subgrid replaces the JavaScript and ad-hoc CSS hacks that used to power cross-row alignment in card grids, editorial pages, and forms. The same CSS keeps layouts aligned on every breakpoint without measurement scripts.
CSS exposes a one-line @supports gate, and JavaScript exposes feature detection through CSS.supports(). Both run inside the browser with no build step, so a layout can ship a fallback for older builds in a single conditional.
function checkSubgrid() {
const supportsColumns = CSS.supports("grid-template-columns: subgrid");
const supportsRows = CSS.supports("grid-template-rows: subgrid");
if (supportsColumns && supportsRows) {
console.log("CSS Subgrid is ready in this browser.");
return true;
}
console.log("CSS Subgrid is not available. Fall back to nested CSS Grid with explicit track sizing.");
return false;
}
checkSubgrid();If supportsColumns returns true but supportsRows returns false, the browser is on a partial implementation that only covers one axis; render a flat grid for those builds rather than a two-axis subgrid layout.
Subgrid is mature in every major engine, but a few rough edges around implicit tracks, intrinsic sizing, and DevTools still show up in production work.
In my experience, the failure that catches teams off guard is the implicit-track surprise: a card grid built with subgrid on both axes drops the last few cards into the bottom row when stock data is uneven, with no console warning. Switch to grid-template-rows: auto on the child whenever the row count is data-driven.
All CSS Subgrid version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance