Collapsing CSS arrows.

Using jQuery, Bootstrap and Font Awesome.

by Ayyappan Sakthivadivel

HTML

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="panel panel-info">
  <div class="panel-heading collapsed" data-toggle="collapse" data-target="#bar">
    <i class="fa fa-fw fa-chevron-down"></i>
    <i class="fa fa-fw fa-chevron-right"></i>Foo
  </div>
  <div class="panel-body">
    <!-- The inside div eliminates the 'jumping' animation. -->
    <div class="collapse" id="bar">
      Bar.
    </div>
  </div>
    <div class="panel-heading" data-toggle="collapse" data-target="#bar2">
    <i class="fa fa-fw fa-chevron-down"></i>
    <i class="fa fa-fw fa-chevron-right"></i>Foo
  </div>
  <div class="panel-body">
    <!-- The inside div eliminates the 'jumping' animation. -->
    <div class="collapse" id="bar2">
      Bar.
    </div>
  </div>
</div>

CSS

.panel-heading.collapsed .fa-chevron-down,
.panel-heading .fa-chevron-right {
  display: none;
}

.panel-heading.collapsed .fa-chevron-right,
.panel-heading .fa-chevron-down {
  display: inline-block;
}

i.fa {
  cursor: pointer;
  margin-right: 5px;
}

.collapsed ~ .panel-body {
  padding: 0;
}