Logo
Layout

Stepper

Guide users through a sequence of steps

Overview

Stepper combines step indicators, content panels, and back/continue buttons. Use it for setup flows, forms, and other tasks with a clear sequence.

Preview

Usage

Create a Stepper and add its items. Each item supplies content and its step information.

Assign the indicator, content, and navigation references.

Choose whether users may skip steps or go backward.

Use SetCanContinue() to gate the current step on validation.

Bind On Completed to finish the flow.


Tips

  • Choose horizontal or vertical orientation.
  • Indicator size, spacing, separator appearance, content padding, and navigation text are configurable.
  • Content and indicators have separate Duration and Ease settings under Animation. Pick Custom to draw your own curve.
  • Completion content can replace the steps after the flow finishes.

Public API

Use Stepper in the Evo.UI namespace.

Properties

NameTypeDescription
CurrentIndexintRead-only active step index.
CurrentItemItemActive item, or null.
CanContinueboolWhether the current step permits continuing.
IsCompletedboolWhether the flow is complete.
IsTransitioningboolWhether a step transition is running.

Fields

NameTypeDescription
itemsList<Item>Stepper.Item definitions.
allowStepSkippingboolAllows skipping ahead.
allowBackwardNavigationboolAllows returning to earlier steps.

Methods

NameParametersDescription
SetCanContinue()bool valueChanges the current step’s continuation flag.
NextStep()NoneAdvances or completes the flow.
PreviousStep()NoneNavigates backward.
GoToStep()int indexRequests a step by index.
TryGoToStep()int indexRequests a step and reports success. Returns bool.
Complete()NoneRequests completion.
Restart()NoneRestarts the flow.
Refresh()NoneRegenerates indicators and layout.

Events

NameTypeDescription
onStepChangedUnityEvent<int>Invoked with the active step index.
onCompletedUnityEventFlow completed.

Example

StepperExample.cs
using UnityEngine;
using Evo.UI;

public class StepperExample : MonoBehaviour
{
    [SerializeField] private Stepper target;

    private void Start()
    {
        target.allowStepSkipping = false;
        target.SetCanContinue(false);
        target.onCompleted.AddListener(() => Debug.Log("Setup complete"));
        // Call SetCanContinue(true) after validating the current step.
    }
}

On this page