Creating a multistep form was not straightforward in Drupal 7, although there were some solutions, like “mforms”,” multistep” and apparent solution by show/hiding fields by “Field Group” module but Drupal Developers have struggled to create MultiStep Form, In this article I’ll try to describe how we can create MultiStop Form in Drupal 8,it’s not hard as much as it was in Drupal 7, Drupal 8 makes it easy for us, stay with me.
In Drupal 7 there was another solution like something we want to do based on Ctools. Alternatively, there is the option of persisting data through the "$form_state" array and playing with its states as James wrote here, but as you know there are plenty changes and plenty new base classes provided to help developers feel better, MultiStepFormBase is one of that abstract classes provided to create MultiStep Forms in Drupal 8.
I wanted to write an example module and describe how to create a MultiStep Form in Drupal 8 step by step, But while I was searching for some example I found Daniel Sipos Article on SitePoint. It’s really great and complete tutorial.