Implementing Syncfusion TypeScript Stepper Control
Complete Table of Contents
1. Getting Started
2. API Reference
- Complete API Reference
- Stepper Properties (15 properties)
- Stepper Methods (12 methods)
- Stepper Events (5 events)
- Step Properties (8 properties)
- Enums & Types (4 enums)
- Animation Settings (3 properties)
- Event Arguments (4 argument interfaces)
3. Core Concepts
Steps Configuration
- Adding & Managing Steps
- Step Properties (label, iconCss, text, disabled, optional, status, isValid)
- Disabling Steps
- Setting Read-Only Mode
- Setting Active Step
- Icon-Only, Label-Only, and Hybrid Steps
- Validation States
Step Types
- Default Type (Icons + Labels)
- Label-Only Type
- Indicator-Only Type
- Label Positioning (Top, Bottom, Start, End)
- Type Comparison & Selection
- Switching Types Dynamically
Orientations & Layout
- Horizontal Orientation (Default)
- Vertical Orientation
- Responsive Behavior
- Dynamic Layout Switching
- Layout-Specific Styling
4. Advanced Features
5. Utilities & Patterns
- Troubleshooting & Best Practices
- Common Setup Issues
- Event Handling Best Practices
- Form Validation Patterns
- CSS Customization
- Theme Integration
- Performance Optimization
- Edge Cases & Solutions
When to Use This Skill
Use the Syncfusion TypeScript Stepper skill when you need to:
- Display a multi-step process or wizard workflow
- Create a progress indicator showing completion status
- Build a form wizard with validation between steps
- Show step-by-step guided experiences (checkout, onboarding, setup)
- Add step navigation with back/forward controls
- Implement linear workflow validation
- Create checkpoint-based processes with tracking
- Enable step customization with icons, labels, and templates
- Handle step events and user interactions
- Support multiple orientations (horizontal/vertical layouts)
Stepper Overview
The Stepper is a navigation control that displays a series of logical steps to guide users through a workflow. Each step can have:
- Indicators (numbers, icons, or shapes)
- Labels (text descriptions)
- Status tracking (active, completed, disabled)
- Event handlers for step transitions
- Custom templates for rich content
- Flexible styling with themes
Key Characteristics
| Aspect |
Description |
| Component |
Navigation control for multi-step workflows |
| Steps |
Array of step objects with properties |
| Indicators |
Numbered or icon-based step markers |
| Orientations |
Horizontal (default) or Vertical layouts |
| Types |
Default (icon+label), Label-only, Indicator-only |
| Events |
created, beforeStepRender, stepClick, stepChanging, stepChanged |
| Methods |
12 control methods (nextStep, previousStep, reset, etc.) |
| Properties |
15 stepper + 8 step properties |
| Customization |
Templates, animations, themes, CSS styling |
Documentation and Navigation Guide
📚 Learning Path (Recommended Order)
Start Here: Getting Started
- Installation and npm package setup
- Dependencies (ej2-navigations, ej2-base, ej2-popups)
- Development environment configuration
- Basic stepper initialization with code examples
- CSS imports and theme setup
Fundamentals: Steps Configuration
- Adding steps to the stepper
- Step properties (iconCss, text, label, cssClass, disabled, status)
- Using StepModel interface for type safety
- Step arrays and dynamic step updates
- Accessing and modifying steps at runtime
Data Organization: Step Types
- Default type: icons with labels
- Label-only type: text descriptions only
- Indicator-only type: numbers or icons only
- Label positions (top, bottom, start, end)
- Choosing the right type for your use case
UI Layout: Orientations and Layout
- Horizontal orientation (default, side-by-side)
- Vertical orientation (stacked, one above another)
- Responsive behavior and switching
- Layout-specific styling
Interactivity: Events and Interaction
- stepChanged: when step successfully changes
- stepChanging: before step change (can cancel)
- stepClick: user clicked a step
- beforeStepRender: before rendering each step
- created: initialization complete
- Event arguments and patterns
Enhancements: Templates and Animation
- Custom HTML templates for step content
- Template data binding
- Animation settings and timing
- Animation duration and delay
- Tooltip customization
Production: Validation and Globalization
- Form validation patterns
- Linear workflow enforcement
- Multi-language support
- Right-to-left (RTL) support
- Accessibility compliance
Troubleshooting: Best Practices
- Common issues and solutions
- Performance optimization
- CSS customization
- Theme integration
- Edge cases
🔍 Quick Navigation by Topic
By Feature:
- 📄 Steps Configuration - Working with steps
- 📄 Step Types - Display options
- 📄 Orientations - Layout options
- 📄 Events & Interaction - Handling user actions
By Use Case:
- 🧩 Form Wizard: See Events & Interaction and Validation
- 🛒 Checkout Flow: See Steps Configuration and Events
- 🎨 Custom Styling: See Templates & Animation and Best Practices
- 🌍 Multi-Language: See Validation & Globalization
By API Lookup:
- 🔗 Complete API Reference - All properties, methods, events, and enums
Quick Start Example
Here's a minimal stepper setup to get started immediately:
import { Stepper } from '@syncfusion/ej2-navigations';
// Create a basic stepper with 4 steps
let stepper: Stepper = new Stepper({
steps: [
{ label: 'Cart' },
{ label: 'Shipping' },
{ label: 'Payment' },
{ label: 'Confirmation' }
]
});
// Render to DOM
stepper.appendTo('#stepper');
<nav id="stepper"></nav>
Common Patterns
Pattern 1: Icon + Label Steps (Default)
import { Stepper, StepModel } from '@syncfusion/ej2-navigations';
let steps: StepModel[] = [
{ iconCss: 'sf-icon-cart', label: 'Cart' },
{ iconCss: 'sf-icon-truck', label: 'Shipping' },
{ iconCss: 'sf-icon-payment', label: 'Payment' }
];
let stepper: Stepper = new Stepper({ steps: steps });
stepper.appendTo('#stepper');
Pattern 2: Vertical Workflow with Events
import { Stepper } from '@syncfusion/ej2-navigations';
let stepper: Stepper = new Stepper({
steps: [{}, {}, {}, {}],
orientation: 'Vertical',
stepChanged: (args) => console.log('Changed to step:', args.activeStep),
stepChanging: (args) => {
if (!validateCurrentStep()) args.cancel = true;
}
});
stepper.appendTo('#stepper');
Pattern 3: Form Wizard with Validation
import { Stepper, StepperChangingEventArgs } from '@syncfusion/ej2-navigations';
let stepper: Stepper = new Stepper({
steps: [
{ label: 'Personal Info' },
{ label: 'Address' },
{ label: 'Review' }
],
linear: true, // Must complete steps in order
stepChanging: (args: StepperChangingEventArgs) => {
// Validate current step before allowing transition
if (!isCurrentStepValid()) {
args.cancel = true; // Prevent step change
}
}
});
stepper.appendTo('#stepper');
Pattern 4: Dynamic Step Management
import { Stepper } from '@syncfusion/ej2-navigations';
let stepper: Stepper = new Stepper({
steps: [{}, {}, {}, {}],
activeStep: 0
});
stepper.appendTo('#stepper');
// Navigate with methods
stepper.nextStep(); // Move to next step
stepper.previousStep(); // Move to previous step
stepper.reset(); // Return to first step
// Update properties
stepper.activeStep = 2;
stepper.dataBind(); // Apply changes
Key Properties at a Glance
Stepper Control Properties
| Property |
Type |
Default |
Description |
steps |
StepModel[] |
[] |
Array of step definitions |
activeStep |
number |
0 |
Currently active step (zero-based) |
stepType |
string |
'Default' |
Type: Default, Label, or Indicator |
orientation |
string |
'Horizontal' |
Layout: Horizontal or Vertical |
labelPosition |
string |
'Bottom' |
Label placement: Top, Bottom, Start, End |
linear |
boolean |
false |
Enforce sequential navigation |
readOnly |
boolean |
false |
Disable all interactions |
showTooltip |
boolean |
false |
Show tooltips on steps |
animation |
object |
{...} |
Animation settings (enable, duration, delay) |
locale |
string |
'en-US' |
Language/region code |
enableRtl |
boolean |
false |
Right-to-left rendering |
enablePersistence |
boolean |
false |
Save state in localStorage |
Step Properties
| Property |
Type |
Default |
Description |
label |
string |
'' |
Step label text |
text |
string |
'' |
Step description |
iconCss |
string |
'' |
Step icon CSS class |
status |
string |
'NotStarted' |
NotStarted, InProgress, Completed |
isValid |
boolean | null |
null |
Validation state (true/false/null) |
disabled |
boolean |
false |
Disable this step |
optional |
boolean |
false |
Step is optional |
cssClass |
string |
'' |
Custom CSS class |
Common Use Cases
Checkout Wizard: Multi-step purchase flow with cart, shipping, payment, and confirmation steps.
Form Wizard: Split long forms across multiple steps with validation at each stage.
Onboarding Flow: Guide new users through setup steps with progress indication.
Task Workflow: Track progress through a series of tasks or milestones.
Process Tracker: Display current position in a documented process flow.
Multi-Page Survey: Distribute survey questions across steps with progress tracking.
API Reference Quick Links
- Complete API Documentation
- Stepper Properties (15 total)
- Stepper Methods (12 total)
- Stepper Events (5 total)
- Step Properties (8 total)
- Enums (4 types)
- Animation Settings
- Event Arguments
🚀 Ready to implement? Start with Getting Started to set up your first stepper, or jump to the API Reference for complete documentation.
1---2name: syncfusion-javascript-stepper3description: Create and implement the Syncfusion TypeScript Stepper navigation component. Use this skill whenever a user wants to display a progress indicator with steps, implement a wizard workflow, show a multi-step process, display navigation between form pages, add step validation, or configure step-by-step guided experiences. Always reference this skill when working with Stepper controls, step configuration, orientations, events, or animations.4---56# Implementing Syncfusion TypeScript Stepper Control78## Complete Table of Contents910### 1. Getting Started11- [Getting Started Guide](references/getting-started.md)12- [Installation & Setup](#installation-setup)13- [First Stepper](#first-stepper)14- [CSS Themes](#css-themes)1516### 2. API Reference17- [Complete API Reference](references/api-reference.md)18 - **Stepper Properties** (15 properties)19 - **Stepper Methods** (12 methods)20 - **Stepper Events** (5 events)21 - **Step Properties** (8 properties)22 - **Enums & Types** (4 enums)23 - **Animation Settings** (3 properties)24 - **Event Arguments** (4 argument interfaces)2526### 3. Core Concepts27- [Steps Configuration](references/steps-configuration.md)28 - Adding & Managing Steps29 - Step Properties (label, iconCss, text, disabled, optional, status, isValid)30 - Disabling Steps31 - Setting Read-Only Mode32 - Setting Active Step33 - Icon-Only, Label-Only, and Hybrid Steps34 - Validation States3536- [Step Types](references/step-types.md)37 - Default Type (Icons + Labels)38 - Label-Only Type39 - Indicator-Only Type40 - Label Positioning (Top, Bottom, Start, End)41 - Type Comparison & Selection42 - Switching Types Dynamically4344- [Orientations & Layout](references/orientations.md)45 - Horizontal Orientation (Default)46 - Vertical Orientation47 - Responsive Behavior48 - Dynamic Layout Switching49 - Layout-Specific Styling5051### 4. Advanced Features52- [Events & Interaction](references/events-interaction.md)53 - **All 5 Events:**54 - created55 - beforeStepRender56 - stepClick57 - stepChanging (with cancellation)58 - stepChanged59 - Event Arguments & Properties60 - Event Handling Patterns61 - Validation with Events62 - User Interaction Detection6364- [Templates & Animation](references/templates-animation.md)65 - Custom Step Templates66 - Template Context Variables67 - Template Data Binding68 - Tooltip Customization69 - Animation Configuration70 - Animation Duration & Delay71 - Animation Enable/Disable7273- [Validation & Globalization](references/validation-globalization.md)74 - Step Validation (isValid states)75 - Linear Flow Enforcement76 - Preventing Invalid Transitions77 - Localization (L10n, Locale)78 - Right-to-Left (RTL) Support79 - Multi-Language Support80 - Accessibility (ARIA, Keyboard Navigation)8182### 5. Utilities & Patterns83- [Troubleshooting & Best Practices](references/troubleshooting-patterns.md)84 - Common Setup Issues85 - Event Handling Best Practices86 - Form Validation Patterns87 - CSS Customization88 - Theme Integration89 - Performance Optimization90 - Edge Cases & Solutions9192---9394## When to Use This Skill9596Use the **Syncfusion TypeScript Stepper** skill when you need to:9798- Display a **multi-step process or wizard** workflow99- Create a **progress indicator** showing completion status100- Build a **form wizard** with validation between steps101- Show **step-by-step guided experiences** (checkout, onboarding, setup)102- Add **step navigation** with back/forward controls103- Implement **linear workflow validation**104- Create **checkpoint-based processes** with tracking105- Enable **step customization** with icons, labels, and templates106- Handle **step events** and user interactions107- Support **multiple orientations** (horizontal/vertical layouts)108109## Stepper Overview110111The **Stepper** is a navigation control that displays a series of logical steps to guide users through a workflow. Each step can have:112113- **Indicators** (numbers, icons, or shapes)114- **Labels** (text descriptions)115- **Status tracking** (active, completed, disabled)116- **Event handlers** for step transitions117- **Custom templates** for rich content118- **Flexible styling** with themes119120### Key Characteristics121122| Aspect | Description |123|--------|-------------|124| **Component** | Navigation control for multi-step workflows |125| **Steps** | Array of step objects with properties |126| **Indicators** | Numbered or icon-based step markers |127| **Orientations** | Horizontal (default) or Vertical layouts |128| **Types** | Default (icon+label), Label-only, Indicator-only |129| **Events** | created, beforeStepRender, stepClick, stepChanging, stepChanged |130| **Methods** | 12 control methods (nextStep, previousStep, reset, etc.) |131| **Properties** | 15 stepper + 8 step properties |132| **Customization** | Templates, animations, themes, CSS styling |133134---135136## Documentation and Navigation Guide137138### 📚 Learning Path (Recommended Order)1391401. **Start Here:** [Getting Started](references/getting-started.md)141 - Installation and npm package setup142 - Dependencies (ej2-navigations, ej2-base, ej2-popups)143 - Development environment configuration144 - Basic stepper initialization with code examples145 - CSS imports and theme setup1461472. **Fundamentals:** [Steps Configuration](references/steps-configuration.md)148 - Adding steps to the stepper149 - Step properties (iconCss, text, label, cssClass, disabled, status)150 - Using StepModel interface for type safety151 - Step arrays and dynamic step updates152 - Accessing and modifying steps at runtime1531543. **Data Organization:** [Step Types](references/step-types.md)155 - Default type: icons with labels156 - Label-only type: text descriptions only157 - Indicator-only type: numbers or icons only158 - Label positions (top, bottom, start, end)159 - Choosing the right type for your use case1601614. **UI Layout:** [Orientations and Layout](references/orientations.md)162 - Horizontal orientation (default, side-by-side)163 - Vertical orientation (stacked, one above another)164 - Responsive behavior and switching165 - Layout-specific styling1661675. **Interactivity:** [Events and Interaction](references/events-interaction.md)168 - stepChanged: when step successfully changes169 - stepChanging: before step change (can cancel)170 - stepClick: user clicked a step171 - beforeStepRender: before rendering each step172 - created: initialization complete173 - Event arguments and patterns1741756. **Enhancements:** [Templates and Animation](references/templates-animation.md)176 - Custom HTML templates for step content177 - Template data binding178 - Animation settings and timing179 - Animation duration and delay180 - Tooltip customization1811827. **Production:** [Validation and Globalization](references/validation-globalization.md)183 - Form validation patterns184 - Linear workflow enforcement185 - Multi-language support186 - Right-to-left (RTL) support187 - Accessibility compliance1881898. **Troubleshooting:** [Best Practices](references/troubleshooting-patterns.md)190 - Common issues and solutions191 - Performance optimization192 - CSS customization193 - Theme integration194 - Edge cases195196### 🔍 Quick Navigation by Topic197198**By Feature:**199- 📄 [Steps Configuration](references/steps-configuration.md) - Working with steps200- 📄 [Step Types](references/step-types.md) - Display options201- 📄 [Orientations](references/orientations.md) - Layout options202- 📄 [Events & Interaction](references/events-interaction.md) - Handling user actions203204**By Use Case:**205- 🧩 **Form Wizard:** See [Events & Interaction](references/events-interaction.md) and [Validation](references/validation-globalization.md)206- 🛒 **Checkout Flow:** See [Steps Configuration](references/steps-configuration.md) and [Events](references/events-interaction.md)207- 🎨 **Custom Styling:** See [Templates & Animation](references/templates-animation.md) and [Best Practices](references/troubleshooting-patterns.md)208- 🌍 **Multi-Language:** See [Validation & Globalization](references/validation-globalization.md)209210**By API Lookup:**211- 🔗 [Complete API Reference](references/api-reference.md) - All properties, methods, events, and enums212213---214215## Quick Start Example216217Here's a minimal stepper setup to get started immediately:218219```typescript220import { Stepper } from '@syncfusion/ej2-navigations';221222// Create a basic stepper with 4 steps223let stepper: Stepper = new Stepper({224 steps: [225 { label: 'Cart' },226 { label: 'Shipping' },227 { label: 'Payment' },228 { label: 'Confirmation' }229 ]230});231232// Render to DOM233stepper.appendTo('#stepper');234```235236```html237<nav id="stepper"></nav>238```239240---241242## Common Patterns243244### Pattern 1: Icon + Label Steps (Default)245```typescript246import { Stepper, StepModel } from '@syncfusion/ej2-navigations';247248let steps: StepModel[] = [249 { iconCss: 'sf-icon-cart', label: 'Cart' },250 { iconCss: 'sf-icon-truck', label: 'Shipping' },251 { iconCss: 'sf-icon-payment', label: 'Payment' }252];253254let stepper: Stepper = new Stepper({ steps: steps });255stepper.appendTo('#stepper');256```257258### Pattern 2: Vertical Workflow with Events259```typescript260import { Stepper } from '@syncfusion/ej2-navigations';261262let stepper: Stepper = new Stepper({263 steps: [{}, {}, {}, {}],264 orientation: 'Vertical',265 stepChanged: (args) => console.log('Changed to step:', args.activeStep),266 stepChanging: (args) => {267 if (!validateCurrentStep()) args.cancel = true;268 }269});270stepper.appendTo('#stepper');271```272273### Pattern 3: Form Wizard with Validation274```typescript275import { Stepper, StepperChangingEventArgs } from '@syncfusion/ej2-navigations';276277let stepper: Stepper = new Stepper({278 steps: [279 { label: 'Personal Info' },280 { label: 'Address' },281 { label: 'Review' }282 ],283 linear: true, // Must complete steps in order284 stepChanging: (args: StepperChangingEventArgs) => {285 // Validate current step before allowing transition286 if (!isCurrentStepValid()) {287 args.cancel = true; // Prevent step change288 }289 }290});291stepper.appendTo('#stepper');292```293294### Pattern 4: Dynamic Step Management295```typescript296import { Stepper } from '@syncfusion/ej2-navigations';297298let stepper: Stepper = new Stepper({299 steps: [{}, {}, {}, {}],300 activeStep: 0301});302stepper.appendTo('#stepper');303304// Navigate with methods305stepper.nextStep(); // Move to next step306stepper.previousStep(); // Move to previous step307stepper.reset(); // Return to first step308309// Update properties310stepper.activeStep = 2;311stepper.dataBind(); // Apply changes312```313314---315316## Key Properties at a Glance317318### Stepper Control Properties319320| Property | Type | Default | Description |321|----------|------|---------|-------------|322| `steps` | StepModel[] | [] | Array of step definitions |323| `activeStep` | number | 0 | Currently active step (zero-based) |324| `stepType` | string | 'Default' | Type: Default, Label, or Indicator |325| `orientation` | string | 'Horizontal' | Layout: Horizontal or Vertical |326| `labelPosition` | string | 'Bottom' | Label placement: Top, Bottom, Start, End |327| `linear` | boolean | false | Enforce sequential navigation |328| `readOnly` | boolean | false | Disable all interactions |329| `showTooltip` | boolean | false | Show tooltips on steps |330| `animation` | object | {...} | Animation settings (enable, duration, delay) |331| `locale` | string | 'en-US' | Language/region code |332| `enableRtl` | boolean | false | Right-to-left rendering |333| `enablePersistence` | boolean | false | Save state in localStorage |334335### Step Properties336337| Property | Type | Default | Description |338|----------|------|---------|-------------|339| `label` | string | '' | Step label text |340| `text` | string | '' | Step description |341| `iconCss` | string | '' | Step icon CSS class |342| `status` | string | 'NotStarted' | NotStarted, InProgress, Completed |343| `isValid` | boolean \| null | null | Validation state (true/false/null) |344| `disabled` | boolean | false | Disable this step |345| `optional` | boolean | false | Step is optional |346| `cssClass` | string | '' | Custom CSS class |347348---349350## Common Use Cases351352**Checkout Wizard:** Multi-step purchase flow with cart, shipping, payment, and confirmation steps.353354**Form Wizard:** Split long forms across multiple steps with validation at each stage.355356**Onboarding Flow:** Guide new users through setup steps with progress indication.357358**Task Workflow:** Track progress through a series of tasks or milestones.359360**Process Tracker:** Display current position in a documented process flow.361362**Multi-Page Survey:** Distribute survey questions across steps with progress tracking.363364---365366## API Reference Quick Links367368- **[Complete API Documentation](references/api-reference.md)**369 - Stepper Properties (15 total)370 - Stepper Methods (12 total)371 - Stepper Events (5 total)372 - Step Properties (8 total)373 - Enums (4 types)374 - Animation Settings375 - Event Arguments376377---378379**🚀 Ready to implement?** Start with [Getting Started](references/getting-started.md) to set up your first stepper, or jump to the [API Reference](references/api-reference.md) for complete documentation.380