title: Vertical Bootstrap Panel Heading
body: <p>I have a bootstrap panel which I have moved the heading to the left side. I am working on getting the text to be vertical (rotated 90 degrees).</p>
  
  <p>I have this for the most part but I am having some trouble getting other things aligned with the CSS.</p>
  
  <p>My end goal is that the icon comes before the Title/Sub Title, everything is centered in the panel heading, and the sub title comes below the title.</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-css lang-css prettyprint-override"><code>.panel {
    position: relative;
  }
  
  .panel-default&gt;.panel-leftheading {
    color: #333;
    background-color: #f5f5f5;
    border-color: #ddd;
  }
  
  .panel-primary&gt;.panel-leftheading {
    color: #fff;
    background-color: #428bca;
    border-color: #428bca;
  }
  
  .panel-success&gt;.panel-leftheading {
    color: #3c763d;
    background-color: #dff0d8;
    border-color: #d6e9c6;
  }
  
  .panel-info&gt;.panel-leftheading {
    color: #31708f;
    background-color: #d9edf7;
    border-color: #bce8f1;
  }
  
  .panel-warning&gt;.panel-leftheading {
    color: #8a6d3b;
    background-color: #fcf8e3;
    border-color: #faebcc;
  }
  
  .panel-danger&gt;.panel-leftheading {
    color: #a94442;
    background-color: #f2dede;
    border-color: #ebccd1;
  }
  
  .panel-leftheading {
    width: 42px;
    padding-top: 10px;
    padding-right: 15px;
    padding-bottom: 10px;
    padding-left: 8px;
    border-right: 1px solid transparent;
    border-bottom: 1px solid transparent;
    border-top-right-radius: 3px;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
    float: left;
    height: 100%;
  }
  
  .panel-lefttitle {
    margin-top: 110px;
    margin-bottom: 0;
    font-size: 12px;
    color: inherit;
    -webkit-transform: rotate(-90deg);
    -webkit-transform-origin: left top;
    -moz-transform: rotate(-90deg);
    -moz-transform-origin: left top;
    -ms-transform: rotate(-90deg);
    -ms-transform-origin: left top;
    -o-transform: rotate(-90deg);
    -o-transform-origin: left top;
    transform: rotate(-90deg);
    transform-origin: left top;
    white-space: nowrap;
  }
  
  .panel-rightbody {
    margin-left: 50px;
    height: 100%;
  }
  
  .mainTitle {
    font-style: bold;
    font-size: 14px;
  }
  
  .subTitle {
    font-style: italic;
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;script src="http://code.jquery.com/jquery-3.3.1.slim.min.js"&gt;&lt;/script&gt;
  &lt;link href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css" rel="stylesheet" /&gt;
  &lt;script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"&gt;&lt;/script&gt;
  &lt;link href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" rel="stylesheet" /&gt;
  &lt;div class="container"&gt;
    &lt;br /&gt;
    &lt;div class="row"&gt;
  
      &lt;div class="col-md-12"&gt;
  
        &lt;div class="panel panel-default"&gt;
          &lt;div class="panel-leftheading"&gt;
            &lt;h3 class="panel-lefttitle"&gt;
              &lt;span class="titleWrapper"&gt;
                  &lt;center&gt;
                  &lt;i class="fa fa-user"&gt;&lt;/i&gt;
                &lt;span class="mainTitle"&gt;
                  Main Title Here
                &lt;/span&gt;
              &lt;br&gt;
              &lt;span class="subTitle"&gt;
                  (Sub Title)
                &lt;/span&gt;
              &lt;/center&gt;
              &lt;/span&gt;
            &lt;/h3&gt;
          &lt;/div&gt;
          &lt;div class="panel-rightbody"&gt;
            &lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
              irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.&lt;/p&gt;
  
            &lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
            &lt;/p&gt;
  
          &lt;/div&gt;
          &lt;div class="clearfix"&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p>I tried all of the alignment properties I knew of (text-align, align-content etc) but they didn't seem to adjust the content within the divs as I expected.</p>
  
  <p>How can I align the content to the middle while keeping the icon to the left of the text?</p>
  
  <p>(JS Fiddle: <a href="http://jsfiddle.net/jbk075c8/2/" rel="noreferrer">http://jsfiddle.net/jbk075c8/2/</a>)</p>
  
  <p><strong>End Goal:</strong></p>
  
  <p><a href="https://i.stack.imgur.com/u3XLi.png" rel="noreferrer"><img src="https://i.stack.imgur.com/u3XLi.png" alt="enter image description here"></a></p>