I am hammering out the guidelines for use of Material design's steppers in a system. The admin using this system can configure a form to some extent. The admin can not decide in which step of a multi step form a field will appear, but they can configure if the field should be mandatory or optional. I'm struggling with figuring out when to use linear versus non-linear steppers.

Non-linear stepper

A non-linear stepper should be used in cases where we do not control which steps contains mandatory fields, eg.

  • Step 1 (*contains required fields)
  • Step 2 (all fields are optional)
  • Step 3 (*contains required fields)

In use cases like this we want to allow the user to quickly jump to the necessary steps to complete the form.

Linear stepper

A linear stepper should be used in cases where the object that will be created depends on the selection done in the first step, eg.

  • Create internal
  • Create external

It should also be used when a field in the current step depends on a selection made in a previous step.

How do I determine if a linear or non-linear stepper is ideal for my use case?

  • 2
    I've made a few minor changes to help focus your question a bit—I hope you don't mind! Feel free to edit it again if I misinterpreted something. Feb 8, 2018 at 14:28
  • 1
    Thank you - I am grateful for the edit, it makes the question a lot more clear. Feb 8, 2018 at 14:53
  • Could you take the fields in step 2(optional) and add it into step 1? So that now there is only 2 mandatory steps, making it a linear stepper?
    – Kish
    Feb 8, 2018 at 18:04
  • No, in this case we can't control which fields will be mandatory because this can be altered by the customer who can configure the system as they wish. There might also be a 4th and a 5th step, and we can have cases where there are only required fields in eg. the 1st and the 5th step. This is why I would go for a non-linear stepper in these cases, but I would also be grateful for any other views on how to determine which one to choose. Feb 8, 2018 at 19:00

1 Answer 1


The point is (even it's the defaults of the framework or the design paradigm we used) linear vs non-linear steppers are utilised by the decision whether we'd like our users to be able to jump over to the next stage without finishing the previous step or not.

Basically, if you have any pre step your users have to fill before than any other steps, you have to consider using linear stepper as described by the link you provided about material design.

Otherwise non-linear stepper could be used to let user interact with any single progress of the stepper.

Hence, let's say the situation can be reproduced as you mentioned with your question above, and the linear stepper could be used as a first point that we require user's required information. The linear stepper inside non-linear stepper or vice-versa solution can be applied as if the development team capable of doing it according to the framework's best practices. You might probably have to explain it well and try to fully document it but anyway, besides its implementation's tricky side, it's plainly seem like executable.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.