mcpField
S
syncfusion-react-stepper

syncfusion-react-stepper

github.com/syncfusionDesign & UI3657 installsUpdated 1w ago
Repository

About syncfusion-react-stepper

A skill for React developers implementing the Syncfusion Stepper component to present and control multi-step processes. Its guidance covers navigation, validation, appearance customization, keyboard interaction, and localization.

Key features

  1. 01Configure horizontal or vertical navigation
  2. 02Choose linear or non-linear flows
  3. 03Validate input before step changes
  4. 04Customize step icons, labels, and templates
  5. 05Support keyboard interaction, ARIA, and RTL

Use cases

  1. 01Build an e-commerce checkout flow
  2. 02Create a multi-step registration form
  3. 03Make a software setup wizard
  4. 04Design a survey with progress indication

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/syncfusion/react-ui-components-skills --skill syncfusion-react-stepper

After installing, type/syncfusion-react-stepperin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
accessibility-globalization.md
advanced-patterns.md
animation-template-tooltip.md
events-and-interactions.md
getting-started.md
linear-flow-and-validation.md
methods-and-advanced.md
orientations-and-types.md
steps-and-configuration.md

Details

From the project README

Implementing Syncfusion React Stepper

The Stepper component guides users through a multi-step workflow or process with visual indicators, step labels, and flexible configuration. It's ideal for wizards, checkout flows, onboarding processes, and any guided user experience requiring sequential navigation.

When to Use This Skill

Use the Stepper component when you need to:

  • Guide users through multi-step processes (checkout, registration, setup wizards)
  • Display step-by-step workflows with progress indication
  • Validate user input before advancing to the next step
  • Support linear or non-linear navigation patterns
  • Customize appearance with icons, labels, and templates
  • Localize content for different languages/regions

Component Overview

Key Capabilities:

  • Step Navigation: Horizontal and vertical orientations, sequential or free navigation
  • Step Types: Default (icons + labels), label-only, or indicator-only modes
  • Events: Track step changes, validations, and interactions
  • Styling: Animations, templates, custom CSS, and tooltips
  • Accessibility: Full keyboard navigation and ARIA support
  • Globalization: Multi-language support and RTL compatibility

Documentation and Navigation Guide

Getting Started & Installation

📄 Read: references/getting-started.md

  • Package installation and dependencies
  • CSS imports and theme setup
  • Creating your first stepper
  • Initial configuration and rendering
Core Configuration: Steps and Properties

📄 Read: references/steps-and-configuration.md

  • Adding and defining steps with StepDirective
  • Icon CSS, text, and label properties
  • Active step management
  • Disabled states and customization
  • CSS class configuration
Layout & Appearance: Orientations and Types

📄 Read: references/orientations-and-types.md

  • Horizontal and vertical orientations
  • Step type modes (Default, Label, Indicator)
  • Label positioning (Top, Bottom, Start, End)
  • RTL support and responsive design
Interaction & Behavior: Events

📄 Read: references/events-and-interactions.md

  • Lifecycle events: created, stepChanged, stepChanging
  • User interaction events: stepClick, beforeStepRender
  • Event arguments and handling patterns
  • Preventing unwanted transitions
Workflow Control: Linear Flow and Validation

📄 Read: references/linear-flow-and-validation.md

  • Linear stepper configuration for sequential navigation
  • Step validation and status management
  • Preventing invalid transitions
  • Resetting stepper state
Advanced Styling & Customization

📄 Read: references/animation-template-tooltip.md

  • Animation configuration and timing
  • Template customization for steps
  • Tooltip integration and display
  • Custom content rendering
Methods and Advanced Patterns

📄 Read: references/methods-and-advanced.md

  • Component methods (reset, etc.)
  • Both API patterns (component-based vs property-based)
  • Advanced use cases and patterns
  • Performance optimization tips
Best Practices: Accessibility & Localization

📄 Read: references/accessibility-globalization.md

  • WCAG compliance and ARIA attributes
  • Keyboard navigation guidelines
  • Globalization and localization
  • RTL support implementation

Quick Start Examples

Pattern 1: Component-Based (StepsDirective)
import React from 'react';
import { StepperComponent, StepsDirective, StepDirective } from '@syncfusion/ej2-react-navigations';
import '@syncfusion/ej2-base/styles/tailwind3.css';
import '@syncfusion/ej2-navigations/styles/tailwind3.css';

function App() {
  return (
    <div>
      <StepperComponent>
        <StepsDirective>
          <StepDirective iconCss="sf-icon-cart" label="Cart" />
          <StepDirective iconCss="sf-icon-transport" label="Delivery" />
          <StepDirective iconCss="sf-icon-payment" label="Payment" />
          <StepDirective iconCss="sf-icon-success" label="Confirmation" />
        </StepsDirective>
      </StepperComponent>
    </div>
  );
}

export default App;
Pattern 2: Property-Based (steps Array)
import React from 'react';
import { StepperComponent } from '@syncfusion/ej2-react-navigations';
import '@syncfusion/ej2-base/styles/tailwind3.css';
import '@syncfusion/ej2-navigations/styles/tailwind3.css';

function App() {
  const steps = [
    { iconCss: 'sf-icon-cart', label: 'Cart' },
    { iconCss: 'sf-icon-transport', label: 'Delivery' },
    { iconCss: 'sf-icon-payment', label: 'Payment' },
    { iconCss: 'sf-icon-success', label: 'Confirmation' }
  ];

  return (
    <div>
      <StepperComponent steps={steps} />
    </div>
  );
}

export default App;

Common Patterns

Pattern 1: Wizard with Validation
const [activeStep, setActiveStep] = React.useState(0);
const stepperRef = React.useRef(null);

const handleStepChanging = (args) => {
  // Validate current step before advancing
  if (!validateStep(activeStep)) {
    args.cancel = true; // Prevent transition
  }
};

<StepperComponent 
  ref={stepperRef}
  stepChanging={handleStepChanging}
>
  {/* steps */}
</StepperComponent>
Pattern 2: Linear vs Non-Linear Navigation
// Linear: Users must complete steps sequentially
<StepperComponent linear={true}>

// Non-linear: Users can skip to any step
<StepperComponent linear={false}>
Pattern 3: Responsive Orientation
// Auto-switch orientation based on screen size
const [orientation, setOrientation] = React.useState('horizontal');

React.useEffect(() => {
  const handleResize = () => {
    setOrientation(window.innerWidth < 768 ? 'vertical' : 'horizontal');
  };
  window.addEventListener('resize', handleResize);
  return () => window.removeEventListener('resize', handleResize);
}, []);

<StepperComponent orientation={orientation}>

Key Props and Configuration

Component Properties
PropTypeDefaultPurpose
activeStepnumber0Currently active step index
animationStepperAnimationSettingsModelundefinedAnimation configuration (enable, duration, delay)
cssClassstring''CSS class for custom styling
enablePersistencebooleanfalsePersist component state between page reloads
enableRtlbooleanfalseEnable right-to-left layout
labelPositionstring'Bottom'Label placement: 'Top', 'Bottom', 'Start', 'End'
linearbooleanfalseEnforce sequential step navigation
localestring'en-US'Localization culture code
orientationstring'horizontal'Layout direction: 'horizontal' or 'vertical'
readOnlybooleanfalseDisable user interaction
showTooltipbooleantrueShow tooltips on hover
stepTypestring'Default'Visual mode: 'Default', 'Label', 'Indicator'
stepsStepModel[][]Array of step objects (property-based pattern)
templatestring | functionundefinedCustom template for steps
tooltipTemplatestring | functionundefinedCustom template for tooltips
Step Properties (StepModel)
PropertyTypePurpose
cssClassstringCSS class for individual step styling
disabledbooleanDisable the step
iconCssstringIcon CSS class for the step
isValidbooleanValidation status of the step
labelstringStep label text
optionalbooleanMark step as optional
statusstringStep status: 'NotStarted', 'InProgress', 'Completed'
textstringText content (usually number)
Animation Settings
PropertyTypeDefaultPurpose
enablebooleantrueEnable animations
durationnumber400Animation duration in milliseconds
delaynumber0Delay before animation starts
Events
EventFiresUse ForArguments
createdAfter component initializationSetup, initializationEvent
stepChangedAfter step changesUpdate UI, load contentStepperChangedEventArgs
stepChangingBefore step changesValidate, prevent transitionsStepperChangingEventArgs
stepClickUser clicks stepTrack interactionsStepperClickEventArgs
beforeStepRenderBefore rendering each stepCustomize step appearanceStepperRenderingEventArgs
Methods
MethodParametersReturnsPurpose
reset()nonevoidReset stepper to initial state (activeStep: 0)
nextStep()nonevoidMove to next step programmatically
previousStep()nonevoidMove to previous step programmatically
refreshProgressbar()nonevoidRefresh progress bar on container resize
destroy()nonevoidDestroy component and release resources

Event Arguments Reference:

  • StepperChangedEventArgs: activeStep, previousStep, isInteracted, name, event, element
  • StepperChangingEventArgs: activeStep, previousStep, cancel, isInteracted, name, event, element
  • StepperClickEventArgs: activeStep, name, event, element
  • StepperRenderingEventArgs: activeStep, name, element

Common Use Cases

  • E-Commerce Checkout: Multi-step checkout flow with order review, shipping, payment
  • User Registration: Multi-step signup with email, profile, verification
  • Setup Wizards: Software onboarding with configuration steps
  • Survey Forms: Step-by-step questionnaire with progress indication
  • Installation Guides: Installation steps with instructions and validation

Comments

Markdown supported