Part of the
igniteui-angular-gridsskill hub. For grid setup, column config, sorting, filtering, selection — seestructure.md. For virtualization and performance — seefeatures.md.
The grid uses border-box sizing — border and padding are included in the width/height calculations. Do not override box-sizing on the grid element; doing so will break size calculations.
The grid supports both component inputs (width/height) and regular CSS/layout sizing from the host or wrapping container (including flex/grid layouts). Use the inputs when you need explicit fixed or percentage grid sizing.
Docs: Grid Sizing — Width
Default: 100% — the grid fills available width of the parent/window.
<igx-grid width="1200px" ...></igx-grid>- Grid is fixed at the specified size and does not react to browser/DOM resizing.
- A horizontal scrollbar appears inside the grid when the combined column widths exceed the grid
width. - If a parent element is narrower than the grid and has
overflow: auto | scroll, the parent scrolls — the grid itself remains at its specified width.
<igx-grid width="100%" ...></igx-grid>- Grid sizes relative to its parent element (or the browser window if there is no parent with explicit width).
- Resizes responsively when the browser or parent is resized.
- Setting
widthabove100%(e.g.150%) makes the grid wider than the parent; the parent renders a scrollbar only if it hasoverflow: auto | scroll.
Docs: Grid Sizing — Height
Default: 100% — see the Percentage Height section for how this behaves depending on the DOM structure.
<igx-grid [height]="null" ...></igx-grid>- All rows are rendered — row virtualization is disabled.
- Grid height expands to show every row with no vertical scrollbar inside the grid.
- If rows overflow the viewport, the browser renders a native scrollbar.
- A parent element with
overflow: auto | scrollwill scroll while the grid itself remains unshrunk. - Warning: large data sets with
nullheight can significantly impact browser performance due to no virtualization.
<igx-grid height="500px" ...></igx-grid>- Grid is fixed at the specified height.
- A vertical scrollbar appears when rows exceed the visible area.
- If the grid is taller than a parent with
overflow: auto | scroll, the parent scrolls.
<igx-grid height="100%" ...></igx-grid>- Grid sizes relative to the parent element's height.
- Parent has explicit height (px or %): grid sizes to that percentage of the parent's height.
- Parent has NO explicit height: the browser cannot resolve a percentage, so the grid falls back to rendering a maximum of 10 rows with a vertical scrollbar if there are more rows, or fits all rows if there are fewer.
- To fill the entire browser window: set both
bodyand the parent containerheight: 100%, then useheight="100%"on the grid.
/* Full-window grid */
html, body, .grid-container {
height: 100%;
}<div class="grid-container">
<igx-grid height="100%" ...></igx-grid>
</div>- Auto-sized columns share the available grid width equally.
- Minimum column width is
136px; if the equal share is less than136px, all auto-sized columns default to136pxand the grid renders a horizontal scrollbar. - Feature columns (row selector checkbox, etc.) consume space that reduces what is available for auto-sized columns.
<!-- No width on these columns — they auto-fill available space -->
<igx-column field="name" header="Name"></igx-column>
<igx-column field="email" header="Email"></igx-column><igx-column field="name" width="200px"></igx-column>- Column is fixed at the specified width regardless of grid size.
- If the combined column widths are less than the grid width, empty space appears on the right — this is expected.
- If the combined column widths exceed the grid width, a horizontal scrollbar is rendered.
<igx-column field="description" width="auto"></igx-column>- Column sizes to fit the longest visible cell value.
- May leave empty space if most values are short but one is very long.
<igx-column field="name" width="20%"></igx-column>- Column width is calculated as a percentage of the grid width.
- Responsive — resizes when the grid resizes.
- Combined percentages less than
100%leave an empty area; greater than100%triggers a horizontal scrollbar.
The grid automatically adapts internal cell spacing based on the size (display density) setting. Fine-grained control is available through CSS custom properties.
igx-grid {
--ig-spacing: 0.8; /* multiplier — reduces all grid spacing by 20% */
}.my-compact-grid {
--ig-spacing: 0.6;
}.my-grid {
--ig-spacing-inline: 0.5; /* horizontal padding */
--ig-spacing-block: 1.0; /* vertical padding */
}.my-grid {
--ig-spacing-small: 0.5; /* compact density */
--ig-spacing-medium: 1.0; /* medium density */
--ig-spacing-large: 1.3; /* comfortable density */
}.my-grid igx-grid-header {
--ig-spacing: 0.7;
}
.my-grid igx-grid-cell {
--ig-spacing: 0.9;
}- Grid sizing can come from CSS/layout context (host/container sizing) or from
[width]/[height]inputs. - Never override
box-sizingon the grid — it uses border-box and relies on this. - Use
nullfor height only when the data set is small; row virtualization is disabled and large data will hurt performance. - When using percentage height, the parent must have an explicit height for the percentage to resolve correctly. Without it, the grid falls back to 10 visible rows.
- A mix of fixed-width and auto-sized columns is valid — auto-sized columns fill the remaining space after fixed-width columns are laid out.