Implementing Syncfusion Angular Stepper
The Syncfusion Angular Stepper component displays a step-by-step process or workflow, ideal for wizards, onboarding, or multi-step forms. This skill guides you through implementing, configuring, and customizing the Stepper component with complete control over step appearance, validation, events, and animations.
When to Use This Skill
Use this skill when:
- Building multi-step wizards or workflows
- Creating step-by-step forms or onboarding flows
- Configuring step validation and linear flow
- Adding icons, labels, and custom templates to steps
- Handling step events (created, stepChanged, stepChanging, beforeStepRender, stepClick)
- Customizing step appearance with animations and styling
- Implementing tooltips, globalization, or RTL support
Component Overview
The Stepper component provides:
- Multiple step types: Default (icons + labels), Indicator Only, Label Only
- Two orientations: Horizontal (default) and Vertical
- Rich event system: created, stepChanged, stepChanging, beforeStepRender, stepClick
- Step validation: Linear flow, completion states, conditional progression
- Customization: Icons, labels, templates, animations, tooltips
- Accessibility: WCAG compliance, keyboard navigation, RTL support
Complete Table of Contents
🚀 Getting Started
📄 Read: references/getting-started.md
- Installation and package configuration
- Angular CLI setup and dependencies
- Basic stepper implementation in standalone Angular
- CSS imports and theme setup
- First render and initial configuration
📋 API Reference
📄 Read: references/api-reference.md
- Stepper Component Properties:
activeStep, animation, cssClass, enablePersistence, enableRtl, labelPosition, linear, locale, orientation, readOnly, showTooltip, stepType, steps, template, tooltipTemplate
- Step Model Properties:
cssClass, disabled, iconCss, isValid, label, optional, status, text
- Animation Settings:
enable, duration, delay
- Stepper Methods:
destroy(), nextStep(), previousStep(), refreshProgressbar(), reset()
- Events Overview:
created, stepChanged, stepChanging, stepClick, beforeStepRender
- Enumerations:
StepType, StepStatus, StepLabelPosition, StepperOrientation
⚙️ Configuring Steps
📄 Read: references/steps-configuration.md
- Adding steps with
<e-step> directive
- Configuring icons with
iconCss property
- Setting labels and text content
- Setting active step with
activeStep
- Optional steps and disabling steps
- Step read-only mode
- Step status tracking
- Step validation with
isValid property
- Label positioning and alignment
🎨 Choosing Step Types
📄 Read: references/step-types.md
- Default type with indicators and labels
- Indicator Only type for compact layouts
- Label Only type for text-based navigation
- Label positions (Top, Bottom, Start, End)
- When to use each type
- Type selection patterns
📐 Setting Orientations
📄 Read: references/orientations-and-layouts.md
- Horizontal orientation (default)
- Vertical orientation for tall layouts
- Layout configuration and responsive design
- Orientation selection based on use case
🎯 Handling Events & Interactions
📄 Read: references/events-and-interactions.md
created event for initialization
stepChanged event after step changes (with EventArgs)
stepChanging event for step change prevention (with EventArgs)
beforeStepRender event for pre-render customization (with EventArgs)
stepClick event for click handling (with EventArgs)
- Complete EventArgs reference documentation
- Event handler patterns and best practices
✅ Validation and Flow Control
📄 Read: references/validation-and-flow.md
- Linear flow configuration for sequential progression
- Step validation and completion states
- Step status management
- Conditional step progression
- Error handling and state management
🎭 Templates and Styling
📄 Read: references/templates-and-customization.md
- Custom step templates using
<ng-template>
- Template binding and data context
- CSS class customization (
cssClass property)
- Layout and appearance customization
- Responsive styling patterns
🌟 Advanced Features
📄 Read: references/advanced-features.md
- Animation settings (duration, delay, enable) with StepperAnimationSettingsModel
- Tooltip configuration and tooltip templates
- Globalization and localization (i18n)
- RTL (Right-to-Left) support with
enableRtl
- Accessibility features and keyboard navigation
- WCAG compliance and screen reader support
Quick Start Example
import { Component } from "@angular/core";
import { StepperAllModule, StepperModule } from "@syncfusion/ej2-angular-navigations";
@Component({
imports: [ StepperAllModule, StepperModule ],
standalone: true,
selector: 'app-root',
template: `
<div class="stepper-container">
<ejs-stepper>
<e-steps>
<e-step label="Cart" iconCss="sf-icon-cart"></e-step>
<e-step label="Delivery Address" iconCss="sf-icon-transport"></e-step>
<e-step label="Payment" iconCss="sf-icon-payment"></e-step>
<e-step label="Confirmation" iconCss="sf-icon-success"></e-step>
</e-steps>
</ejs-stepper>
</div>
`,
styles: [`
.stepper-container {
padding: 20px;
max-width: 800px;
margin: 0 auto;
}
`]
})
export class AppComponent { }
Common Patterns
Pattern 1: Wizard with Form Validation
<ejs-stepper (stepChanging)="onStepChanging($event)">
<e-steps>
<e-step label="Personal Info"></e-step>
<e-step label="Contact Details"></e-step>
<e-step label="Address"></e-step>
<e-step label="Confirmation"></e-step>
</e-steps>
</ejs-stepper>
Use the stepChanging event to validate form data before allowing step progression.
Pattern 2: Dynamic Step Icons
<ejs-stepper>
<e-steps>
<e-step *ngFor="let step of steps"
[label]="step.label"
[iconCss]="step.icon"></e-step>
</e-steps>
</ejs-stepper>
Bind step data dynamically using *ngFor directive.
Pattern 3: Linear Workflow
<ejs-stepper [linear]="true">
<e-steps>
<e-step label="Step 1"></e-step>
<e-step label="Step 2"></e-step>
<e-step label="Step 3"></e-step>
</e-steps>
</ejs-stepper>
Enable linear property to enforce sequential progression.
Pattern 4: Event Handling
onStepChanged(args: StepperChangedEventArgs) {
console.log(`Active step index: ${args.activeStep}`);
}
onStepChanging(args: StepperChangingEventArgs) {
if (!isFormValid()) {
args.cancel = true; // Prevent step change
}
}
Use event handlers to track navigation and validate progress.
Key Properties Summary
| Property |
Type |
Default |
When to Use |
stepType |
StepType |
Default |
Change display style: Default, Indicator, Label |
orientation |
Orientation |
Horizontal |
Set layout: Horizontal or Vertical |
linear |
boolean |
false |
Enforce sequential progression |
activeStep |
number |
0 |
Set current active step (0-indexed) |
animation |
StepperAnimationSettingsModel |
enabled |
Configure transition animations |
showTooltip |
boolean |
false |
Display tooltips on step hover |
labelPosition |
string |
Bottom |
Position labels: Top, Bottom, Start, End |
readOnly |
boolean |
false |
Disable all step interactions |
cssClass |
string |
- |
Apply custom CSS classes |
enableRtl |
boolean |
false |
Enable RTL for Arabic, Hebrew, Urdu |
enablePersistence |
boolean |
false |
Persist state between page reloads |
locale |
string |
en-US |
Set language/culture |
For complete API reference with code examples, see: 📚 API Reference
Common Use Cases
Wizard Forms: Implement multi-step form wizards with validation at each step
Onboarding Flow: Guide new users through setup or introduction steps
Process Tracking: Display workflow progress (order processing, job applications)
Multi-Step Checkout: Create shopping cart workflows with address and payment steps
Setup Assistants: Configure tools or services through guided step-by-step setup
Document Submission: Multi-step document upload with validation
Next Steps: Select a reference above based on what you need to implement. Start with getting-started.md if this is your first time using the Stepper component.
1---2name: syncfusion-angular-stepper3description: Create and configure Syncfusion Angular Stepper component for multi-step workflows, wizards, forms, and onboarding flows. Use this skill when implementing step-by-step navigation, configuring step validation, handling step events, or customizing step appearance with icons, labels, and templates. This covers stepper-based wizard interfaces, progress tracking workflows, and multi-form configurations.4---56# Implementing Syncfusion Angular Stepper78The Syncfusion Angular Stepper component displays a step-by-step process or workflow, ideal for wizards, onboarding, or multi-step forms. This skill guides you through implementing, configuring, and customizing the Stepper component with complete control over step appearance, validation, events, and animations.910## When to Use This Skill1112**Use this skill when:**13- Building multi-step wizards or workflows14- Creating step-by-step forms or onboarding flows15- Configuring step validation and linear flow16- Adding icons, labels, and custom templates to steps17- Handling step events (created, stepChanged, stepChanging, beforeStepRender, stepClick)18- Customizing step appearance with animations and styling19- Implementing tooltips, globalization, or RTL support2021## Component Overview2223The Stepper component provides:24- **Multiple step types**: Default (icons + labels), Indicator Only, Label Only25- **Two orientations**: Horizontal (default) and Vertical26- **Rich event system**: created, stepChanged, stepChanging, beforeStepRender, stepClick27- **Step validation**: Linear flow, completion states, conditional progression28- **Customization**: Icons, labels, templates, animations, tooltips29- **Accessibility**: WCAG compliance, keyboard navigation, RTL support3031## Complete Table of Contents3233### 🚀 Getting Started34📄 **Read:** [references/getting-started.md](references/getting-started.md)35- Installation and package configuration36- Angular CLI setup and dependencies37- Basic stepper implementation in standalone Angular38- CSS imports and theme setup39- First render and initial configuration4041### 📋 API Reference42📄 **Read:** [references/api-reference.md](references/api-reference.md)43- **Stepper Component Properties**: `activeStep`, `animation`, `cssClass`, `enablePersistence`, `enableRtl`, `labelPosition`, `linear`, `locale`, `orientation`, `readOnly`, `showTooltip`, `stepType`, `steps`, `template`, `tooltipTemplate`44- **Step Model Properties**: `cssClass`, `disabled`, `iconCss`, `isValid`, `label`, `optional`, `status`, `text`45- **Animation Settings**: `enable`, `duration`, `delay`46- **Stepper Methods**: `destroy()`, `nextStep()`, `previousStep()`, `refreshProgressbar()`, `reset()`47- **Events Overview**: `created`, `stepChanged`, `stepChanging`, `stepClick`, `beforeStepRender`48- **Enumerations**: `StepType`, `StepStatus`, `StepLabelPosition`, `StepperOrientation`4950### ⚙️ Configuring Steps51📄 **Read:** [references/steps-configuration.md](references/steps-configuration.md)52- Adding steps with `<e-step>` directive53- Configuring icons with `iconCss` property54- Setting labels and text content55- Setting active step with `activeStep`56- Optional steps and disabling steps57- Step read-only mode58- Step status tracking59- Step validation with `isValid` property60- Label positioning and alignment6162### 🎨 Choosing Step Types63📄 **Read:** [references/step-types.md](references/step-types.md)64- Default type with indicators and labels65- Indicator Only type for compact layouts66- Label Only type for text-based navigation67- Label positions (Top, Bottom, Start, End)68- When to use each type69- Type selection patterns7071### 📐 Setting Orientations72📄 **Read:** [references/orientations-and-layouts.md](references/orientations-and-layouts.md)73- Horizontal orientation (default)74- Vertical orientation for tall layouts75- Layout configuration and responsive design76- Orientation selection based on use case7778### 🎯 Handling Events & Interactions79📄 **Read:** [references/events-and-interactions.md](references/events-and-interactions.md)80- `created` event for initialization81- `stepChanged` event after step changes (with EventArgs)82- `stepChanging` event for step change prevention (with EventArgs)83- `beforeStepRender` event for pre-render customization (with EventArgs)84- `stepClick` event for click handling (with EventArgs)85- Complete EventArgs reference documentation86- Event handler patterns and best practices8788### ✅ Validation and Flow Control89📄 **Read:** [references/validation-and-flow.md](references/validation-and-flow.md)90- Linear flow configuration for sequential progression91- Step validation and completion states92- Step status management93- Conditional step progression94- Error handling and state management9596### 🎭 Templates and Styling97📄 **Read:** [references/templates-and-customization.md](references/templates-and-customization.md)98- Custom step templates using `<ng-template>`99- Template binding and data context100- CSS class customization (`cssClass` property)101- Layout and appearance customization102- Responsive styling patterns103104### 🌟 Advanced Features105📄 **Read:** [references/advanced-features.md](references/advanced-features.md)106- Animation settings (duration, delay, enable) with StepperAnimationSettingsModel107- Tooltip configuration and tooltip templates108- Globalization and localization (i18n)109- RTL (Right-to-Left) support with `enableRtl`110- Accessibility features and keyboard navigation111- WCAG compliance and screen reader support112113## Quick Start Example114115```ts116import { Component } from "@angular/core";117import { StepperAllModule, StepperModule } from "@syncfusion/ej2-angular-navigations";118119@Component({120 imports: [ StepperAllModule, StepperModule ],121 standalone: true,122 selector: 'app-root',123 template: `124 <div class="stepper-container">125 <ejs-stepper>126 <e-steps>127 <e-step label="Cart" iconCss="sf-icon-cart"></e-step>128 <e-step label="Delivery Address" iconCss="sf-icon-transport"></e-step>129 <e-step label="Payment" iconCss="sf-icon-payment"></e-step>130 <e-step label="Confirmation" iconCss="sf-icon-success"></e-step>131 </e-steps>132 </ejs-stepper>133 </div>134 `,135 styles: [`136 .stepper-container {137 padding: 20px;138 max-width: 800px;139 margin: 0 auto;140 }141 `]142})143export class AppComponent { }144```145146## Common Patterns147148### Pattern 1: Wizard with Form Validation149```html150<ejs-stepper (stepChanging)="onStepChanging($event)">151 <e-steps>152 <e-step label="Personal Info"></e-step>153 <e-step label="Contact Details"></e-step>154 <e-step label="Address"></e-step>155 <e-step label="Confirmation"></e-step>156 </e-steps>157</ejs-stepper>158```159160Use the `stepChanging` event to validate form data before allowing step progression.161162### Pattern 2: Dynamic Step Icons163```html164<ejs-stepper>165 <e-steps>166 <e-step *ngFor="let step of steps" 167 [label]="step.label" 168 [iconCss]="step.icon"></e-step>169 </e-steps>170</ejs-stepper>171```172173Bind step data dynamically using `*ngFor` directive.174175### Pattern 3: Linear Workflow176```html177<ejs-stepper [linear]="true">178 <e-steps>179 <e-step label="Step 1"></e-step>180 <e-step label="Step 2"></e-step>181 <e-step label="Step 3"></e-step>182 </e-steps>183</ejs-stepper>184```185186Enable `linear` property to enforce sequential progression.187188### Pattern 4: Event Handling189```ts190onStepChanged(args: StepperChangedEventArgs) {191 console.log(`Active step index: ${args.activeStep}`);192}193194onStepChanging(args: StepperChangingEventArgs) {195 if (!isFormValid()) {196 args.cancel = true; // Prevent step change197 }198}199```200201Use event handlers to track navigation and validate progress.202203## Key Properties Summary204205| Property | Type | Default | When to Use |206|----------|------|---------|------------|207| `stepType` | StepType | Default | Change display style: Default, Indicator, Label |208| `orientation` | Orientation | Horizontal | Set layout: Horizontal or Vertical |209| `linear` | boolean | false | Enforce sequential progression |210| `activeStep` | number | 0 | Set current active step (0-indexed) |211| `animation` | StepperAnimationSettingsModel | enabled | Configure transition animations |212| `showTooltip` | boolean | false | Display tooltips on step hover |213| `labelPosition` | string | Bottom | Position labels: Top, Bottom, Start, End |214| `readOnly` | boolean | false | Disable all step interactions |215| `cssClass` | string | - | Apply custom CSS classes |216| `enableRtl` | boolean | false | Enable RTL for Arabic, Hebrew, Urdu |217| `enablePersistence` | boolean | false | Persist state between page reloads |218| `locale` | string | en-US | Set language/culture |219220**For complete API reference with code examples, see:** [📚 API Reference](references/api-reference.md)221222## Common Use Cases223224**Wizard Forms**: Implement multi-step form wizards with validation at each step225**Onboarding Flow**: Guide new users through setup or introduction steps226**Process Tracking**: Display workflow progress (order processing, job applications)227**Multi-Step Checkout**: Create shopping cart workflows with address and payment steps228**Setup Assistants**: Configure tools or services through guided step-by-step setup229**Document Submission**: Multi-step document upload with validation230231---232233**Next Steps:** Select a reference above based on what you need to implement. Start with [getting-started.md](references/getting-started.md) if this is your first time using the Stepper component.