Getting Started
Installation
npm install @theryansmee/ngx-virtual-gridyarn add @theryansmee/ngx-virtual-gridpnpm add @theryansmee/ngx-virtual-gridAngular Version Support
Each Angular major version is maintained on its own branch with a matching npm tag.
| Angular | Library | npm tag |
|---|---|---|
| 22.x | 22.x.x | latest |
| 21.x | 21.x.x | angular21 |
| 20.x | 20.x.x | angular20 |
| 19.x | 19.x.x | angular19 |
| 18.x | 18.x.x | angular18 |
| 17.x | 17.x.x | angular17 |
| 16.x | 16.x.x | angular16 |
| 15.x | 15.x.x | angular15 |
| 14.x | 14.x.x | angular14 |
To install a specific Angular version:
npm install @theryansmee/ngx-virtual-grid@angular21Basic Usage
Import the component and directive directly (standalone, no NgModule required):
import { Component } from '@angular/core';
import { NgxVirtualGridComponent, VirtualGridItemDirective } from '@theryansmee/ngx-virtual-grid';
@Component({
selector: 'app-example',
imports: [NgxVirtualGridComponent, VirtualGridItemDirective],
template: `
<ngx-virtual-grid
[items]="items"
[bufferSize]="3"
[loadMoreThreshold]="0.8"
(loadMore)="onLoadMore()">
<ng-template ngxVirtualGridItem let-item let-index="index">
<div class="card">{{ item.name }}</div>
</ng-template>
</ngx-virtual-grid>
`,
styles: [`
ngx-virtual-grid {
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 16px;
}
`],
})
export class ExampleComponent {
items: any[] = [];
onLoadMore(): void {
// Fetch and append more items
}
} The component works as a CSS Grid container. You control the layout with standard grid-template-columns and gap properties. See the Layouts page for more examples.