Supported Browsers
GridCraft ships no browser targeting of its own. It is compiled by your Angular build, against your browserslist, and it runs wherever that output runs. This page tells you what that resolves to by default, and how to check it for your project rather than trusting a table.
The default target
The Angular CLI applies a default browserslist query when a project has no .browserslistrc: baseline widely available as of a date pinned inside @angular/build. On Angular 22 that date is 2025-10-20, which resolves to these floors:
| Browser | Minimum version |
|---|---|
| Chrome | 111 |
| Edge | 111 |
| Firefox | 112 |
| Safari (macOS) | 16.4 |
| Safari (iOS / iPadOS) | 16.4 |
| Chrome / Firefox for Android | current |
Anything at or above those versions runs the grid. Internet Explorer is not supported in any version — Angular itself dropped it long before this library existed.
Check it for your project, not ours
This is the part worth taking away. Your .browserslistrc — or its absence — decides the answer, and it can differ from ours:
# What the grid supports is whatever your Angular build targets.
# Print it for your own project — this is the real answer, not a table on a page:
npx browserslist
# With no .browserslistrc, the Angular CLI applies its own default query:
npx browserslist "baseline widely available on 2025-10-20"Two things follow. If you set a wider target than the default, your build will down-level further and you may hit a browser we have never run the grid in. If you set a narrower one, your bundle gets smaller and nothing about the grid objects:
# .browserslistrc — narrow the target and the output gets smaller and faster
last 2 Chrome versions
last 2 Firefox versions
last 2 Safari major versions
last 2 Edge versionsWhat this list actually depends on
Two moving parts, and it is worth knowing which is which:
- The syntax floor comes from your Angular version and your browserslist. It is what decides whether your build emits code a given browser can parse.
- The runtime floor comes from the web platform features the grid uses directly. The demanding ones are CSS Grid, CSS custom properties,
ResizeObserver,IntersectionObserver,structuredCloneand the Clipboard API — all of which are available at or below the versions in the table above.
Because the first floor is Angular's and the second is below it, the table is set by Angular. That also means it moves on a dependency bump: upgrading the CLI can change the default query without anything in your code changing. Re-run the command above after an upgrade rather than assuming this page is still current for you.
Older browsers
There is no polyfill bundle and no legacy build. If you must support something below the floor, the supported route is the same one Angular offers: widen your browserslist so the CLI down-levels the output, add the polyfills your target needs, and test it. We do not test below the default target, so we do not claim it works — that is a claim you would be making, not us.
Rendering and interaction notes
- Touch. Row drag, column resize and column reorder are pointer-event based and work on touch devices. Right-click features (the context menu) have no touch equivalent by definition; use the column menu instead.
- Zoom and OS text scaling. Row and header heights are configured in pixels, so they do not scale with the browser's font size. Set
rowHeightandheaderHeightyourself if your application scales its type. - Reduced motion. Row animations respect
prefers-reduced-motion; nothing else in the grid animates by default. - Server-side rendering. The grid renders under SSR without a browser present and hydrates on the client. See RTL & platform for the direction-aware side of that.