Pour l'exemple tu n'as pas besoin de bootstrap ou de angular.
Je pense quelque chose dans ce style:
Tu mets un display none sur les éléments non visible pour "l'état fermé" et une petite largeur pour le menu . Tu fais un event en javascript lorsque l'utilisateur clique sur l'icone menu. Ensuite c'est assez basique tu agrandis le menu, tu passes les éléments en display none en display block et voilà.