The Drupal 8 Form API is largely similar to the Drupal 7 Form API. The forms are still represented with nested render array structures and there is a separate validation and submission step. There are some new (HTML 5) elements available and the integration of these components into the rest of the Drupal system changed a bit.
In Drupal 8, Forms are defined by implementing the \Drupal\Core\Form\FormInterface and the basic workflow of a form is defined by buildForm, validateForm, and submitForm methods on the interface.
New (HTML 5) elements
Check out system_element_info() for all the core provided elements. There are new HTML 5 elements like
'#type' => 'tel',
'#type' => 'email',
'#type' => 'number',
'#type' => 'date',
'#type' => 'url',
'#type' => 'search',
'#type' => 'range', etc. Using these elements as opposed to requesting data in plain textfields is preferable because devices can pull up the proper input methods for them, such as when a telephone number is requested, the dialpad would show up on a device.