<div id="app-container" data-tilt >
  <div id="app">
    <vue-tabs id="tabs">
      <v-tab title="First Tab" class="tab" :selected="true">
        <div class="tab-content">
          <div class="tab-image first-image"></div>
          <div class="tab-content-text">
            <h1>First Header</h1>
            <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt nu aliqua. Sollicit udin purus faucibus ornare aliquam ultrices sagittis orci a scelerisque a consectetur atna purus.</p>
          </div>
        </div>
      </v-tab>

      <v-tab title="Second Tab" class="tab">
        <div class="tab-content">
          <div class="tab-image second-image"></div>
          <div class="tab-content-text">
            <h1>Second Header</h1>
            <p>Ac tortor vitae purus faucibus ornare suspendisse uis tristique sed nisi. Consectetur libero id ax faucibus in ornare faucibus nislt udin purus fi faucibus ac ornare aliquam ultrices in purus faucibu.</p>
          </div>
        </div>
      </v-tab>

      <v-tab title="Third Tab" class="tab">
        <div class="tab-content">
          <div class="tab-image third-image"></div>
          <div class="tab-content-text">
            <h1>Third Header</h1>
            <p>Scelerisque fermentum dui faucibus in ornare id. Amet consectetur adipiscing elit duis tristique sollicitudin purus faucibus ornare aliquam ultrices sagittis nibh elit duis nubro tristique itae purus faucibus.</p>
          </div>
        </div>
      </v-tab>
    </vue-tabs>

  </div>

</div>
$black: #071011;
$white: #fff;
$bkg-color: linear-gradient(to bottom, #2193b0, #6dd5ed);

body {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  background: $bkg-color;
  color: $white;
  font: 300 16px "Montserrat", sans-serif;
  line-height: 20px;
}

#app-container {
  width: 500px;
  height: 400px;
  background: $white;
  border-radius: 5px;
  background: transparent;

  transform-style: preserve-3d;
}

.vue-tabs {
  box-shadow: 0 12px 32px -10px $black;
  border-bottom-right-radius: 5px;
  border-bottom-left-radius: 5px;
}

/***** Nav Bar *****/

#tabs {
  height: 100%;
  transition: 0.3s;
}

.vue-tabs .nav-tabs {
  background: $black;
  border-bottom: $black;
  text-align: center;
  border-top-right-radius: 5px;
  border-top-left-radius: 5px;
}

.vue-tabs .nav-tabs > li {
  float: none;
  display: inline-block;
  margin-bottom: 0;
  cursor: pointer;
  font-weight: 400;
}

.vue-tabs .nav-tabs > li > a {
  border-radius: 0;
  transition: 0.2s;
  padding: 12px 15px;
  margin-right: 0;
}

.vue-tabs .nav-tabs > li > a:hover {
  background: inherit;
}

.vue-tabs .nav > li > a:hover,
.vue-tabs .nav > li > a:focus {
  color: $white;
  border-color: $black;
}

/***** Tab Content *****/

.tab .tab-content {
  position: relative;
  top: 0;
  left: 0;
  height: 350px;
}

.tab .tab-content .tab-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-bottom-right-radius: 5px;
  border-bottom-left-radius: 5px;
}

.tab .tab-content .tab-image:after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  border-bottom-right-radius: 5px;
  border-bottom-left-radius: 5px;
}

.tab .tab-content .first-image {
  background: url("https://images.unsplash.com/photo-1564923630403-2284b87c0041?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1651&q=80")
    no-repeat;
  background-size: cover;
  background-position: 0;
}

.tab .tab-content .second-image {
  background: url("https://images.unsplash.com/photo-1542206395-9feb3edaa68d?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1600&q=80")
    no-repeat;
  background-size: cover;
  background-position: 0;
}

.tab .tab-content .third-image {
  background: url("https://images.unsplash.com/photo-1548543604-a87c9909abec?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1268&q=80")
    no-repeat;
  background-size: cover;
  background-position: 0;
}

.tab-content-text {
  padding-top: 35px;
}

.tab h1 {
  position: relative;
  font: 400 2.5em "Oswald", sans-serif;
  transform: translateZ(20px);
  top: 0;
  left: 70px;
}

.tab p {
  position: relative;
  max-width: 400px;
  margin: 0 auto;
  padding: 0 40px;
  line-height: 24px;
  letter-spacing: 0.4px;

  transform: translateZ(20px);
  top: -25px;
  left: 0;
  padding: 0 70px;
}
View Compiled
new Vue({
  el:"#app",
});

$('.js-tilt').tilt({

})

External CSS

  1. https://unpkg.com/vue-nav-tabs/themes/vue-tabs.css

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.13/vue.min.js
  2. https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/js/bootstrap.min.js
  3. https://unpkg.com/vue-nav-tabs/dist/vue-tabs.js
  4. https://s3-us-west-2.amazonaws.com/s.cdpn.io/130527/vanilla-tilt.min.js