Application Setup & Architecture

June 25, 2026 · View on GitHub

Part of the igniteui-angular-components skill hub.

Contents

Installation

# Open-source
npm install igniteui-angular

# Licensed (requires @infragistics registry configured)
npm install @infragistics/igniteui-angular

Both packages share identical entry-point paths. Everywhere below, replace igniteui-angular with @infragistics/igniteui-angular if using the licensed package.

Required Providers (app.config.ts)

AGENT INSTRUCTION: Before adding any Ignite UI component, verify that app.config.ts contains the providers listed below. Missing provideAnimations() is the most common cause of runtime errors — all overlay and animated components (Dialog, Combo, Select, Date Picker, Snackbar, Toast, Banner, Navigation Drawer, Dropdown) will silently fail or throw without it.

import { ApplicationConfig } from '@angular/core';
import { provideAnimations } from '@angular/platform-browser/animations';
import { provideRouter } from '@angular/router';
import { provideIgniteIntl } from 'igniteui-angular/core';

export const appConfig: ApplicationConfig = {
  providers: [
    provideAnimations(),    // REQUIRED — all overlay and animated components
    provideRouter(appRoutes),
    provideIgniteIntl(),    // recommended — localization for date/time pickers, grids, etc.
  ]
};
ProviderPackageRequired for
provideAnimations()@angular/platform-browser/animationsAll overlay and animated components — Dialog, Combo, Select, Dropdown, Date/Time Picker, Snackbar, Toast, Banner, Navigation Drawer, Carousel, Overlay service

Touch gestures (Optional) (Slider, Drag & Drop, swipe) - To enable touch gesture support, install the hammerjs package and add it to the scripts array in your angular.json:

npm install hammerjs
// angular.json — inside your project's architect.build.options
"scripts": ["./node_modules/hammerjs/hammer.min.js"]

provideAnimationsAsync() lazy-loads the animations module — prefer it for SSR or when optimizing initial bundle size:

import { provideAnimationsAsync } from '@angular/platform-browser/animations/async';

Architecture — Standalone Components

All Ignite UI components are standalone — no NgModules needed. Import them directly into your component's imports array:

import { ChangeDetectionStrategy, Component } from '@angular/core';
import { IgxButtonDirective } from 'igniteui-angular/directives';
import { IgxDialogComponent } from 'igniteui-angular/dialog';

@Component({
  selector: 'app-example',
  imports: [IgxButtonDirective, IgxDialogComponent],
  templateUrl: './example.component.html',
  changeDetection: ChangeDetectionStrategy.OnPush
})
export class ExampleComponent {}

Multi-Entry-Point Imports

AGENT INSTRUCTION: Always import from specific entry points, never from the root barrel. Check package.json to determine whether the project uses igniteui-angular or @infragistics/igniteui-angular — that prefix applies to every import path.

// CORRECT — tree-shakeable, specific entry point
import { IgxComboComponent } from 'igniteui-angular/combo';
import { IgxDatePickerComponent } from 'igniteui-angular/date-picker';

// AVOID — pulls in entire library
import { IgxComboComponent } from 'igniteui-angular';

Common Entry Points

Component / DirectiveEntry Point
Input Groupigniteui-angular/input-group
Combo / Simple Comboigniteui-angular/combo
Selectigniteui-angular/select
Date Picker / Date Range Pickerigniteui-angular/date-picker
Time Pickerigniteui-angular/time-picker
Calendarigniteui-angular/calendar
Checkboxigniteui-angular/checkbox
Radioigniteui-angular/radio
Switchigniteui-angular/switch
Sliderigniteui-angular/slider
Tabsigniteui-angular/tabs
Stepperigniteui-angular/stepper
Accordion / Expansion Paneligniteui-angular/expansion-panel
Splitterigniteui-angular/splitter
Navigation Drawerigniteui-angular/navigation-drawer
Bottom Navigationigniteui-angular/bottom-nav
Listigniteui-angular/list
Treeigniteui-angular/tree
Cardigniteui-angular/card
Dialogigniteui-angular/dialog
Snackbarigniteui-angular/snackbar
Toastigniteui-angular/toast
Bannerigniteui-angular/banner
Chipsigniteui-angular/chips
Avatarigniteui-angular/avatar
Badgeigniteui-angular/badge
Iconigniteui-angular/icon
Carouseligniteui-angular/carousel
Paginatorigniteui-angular/paginator
Linear Progressigniteui-angular/progressbar
Circular Progressigniteui-angular/progressbar
Chatigniteui-angular/chat
Button / Icon Buttonigniteui-angular/directives
Button Groupigniteui-angular/button-group
Rippleigniteui-angular/directives
IgxTooltipDirective, IgxTooltipTargetDirectiveigniteui-angular/directives
Drag & Dropigniteui-angular/directives
Layout Manager (igxLayout, igxFlex)igniteui-angular/directives
Core utilities, services, base typesigniteui-angular/core
Icon Serviceigniteui-angular/icon
Overlay Serviceigniteui-angular/core
Dock Managerigniteui-dockmanager (separate package — npm install igniteui-dockmanager)

Grid-specific entry points (tree-shakable imports):

Component / FeatureEntry Point
Shared grid infrastructure (columns, toolbar, filtering, sorting, etc.)igniteui-angular/grids/core
Standard grid (IgxGridComponent)igniteui-angular/grids/grid
Tree grid (IgxTreeGridComponent)igniteui-angular/grids/tree-grid
Hierarchical grid (IgxHierarchicalGridComponent, IgxRowIslandComponent)igniteui-angular/grids/hierarchical-grid
Pivot grid (IgxPivotGridComponent, IgxPivotDataSelectorComponent)igniteui-angular/grids/pivot-grid

Convenience Directive Collections

For complex components, use the bundled directive arrays instead of listing every sub-directive individually:

TokenEntry PointIncludes
IGX_BUTTON_GROUP_DIRECTIVESigniteui-angular/button-groupButton group + button directive
IGX_INPUT_GROUP_DIRECTIVESigniteui-angular/input-groupInput group + label, hint, prefix, suffix
IGX_TABS_DIRECTIVESigniteui-angular/tabsTabs + tab item, header, content
IGX_STEPPER_DIRECTIVESigniteui-angular/stepperStepper + step
IGX_EXPANSION_PANEL_DIRECTIVESigniteui-angular/expansion-panelPanel + header, body
IGX_LIST_DIRECTIVESigniteui-angular/listList + list item
IGX_TREE_DIRECTIVESigniteui-angular/treeTree + tree node

See Also