| name | syncfusion-javascript-stepper |
| description | 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. |
| metadata | {"author":"Syncfusion Inc","version":"33.1.44","category":"Navigation"} |
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:
By Use Case:
By API Lookup:
Quick Start Example
Here's a minimal stepper setup to get started immediately:
import { Stepper } from '@syncfusion/ej2-navigations';
let stepper: Stepper = new Stepper({
steps: [
{ label: 'Cart' },
{ label: 'Shipping' },
{ label: 'Payment' },
{ label: 'Confirmation' }
]
});
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,
stepChanging: (args: StepperChangingEventArgs) => {
if (!isCurrentStepValid()) {
args.cancel = true;
}
}
});
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');
stepper.nextStep();
stepper.previousStep();
stepper.reset();
stepper.activeStep = 2;
stepper.dataBind();
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.