There's a new render element type named
details which is for creating a collapsible widget in Drupal 8.
details is similar to the existing
fieldset Form API element but
details can be used even outside of forms.
The following render array
$build builds a collapsible widget shown in the image below.
$build['author'] = [ '#type' => 'details', '#title' => $this->t('Author'), ]; $build['author']['name'] = [ '#type' => 'textfield', '#title' => $this->t('Name'), ];
This sample is taken from the official d.o. page linked below.