Flip-Menu CSS

by David Kyle

HTML

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/css/all.min.css">
<h1>Card Flip with Text</h1>
<h3>Hover over the image below:</h3>

<div class="flip-card">
  <div class="flip-card-inner">
    <div class="flip-card-front">
    <div class="toggler">
    <i id="config-toggler" class="fas fa-cogs left"> - Configuration</i>
    </div>
    <ul>
    <li>FOM Option 1</li>
    </ul>
    </div>
    <div class="flip-card-back">
    <div class="toggler-alt">
    <i id="fom-toggler" class="fas fa-sync left"> - Operations</i>
    </div>
      <ul>
      <li>FCM Option 1
      <ul>
      <li>Sub</li>
      </ul></li>
      </ul>
    </div>
  </div>
</div>

CSS

body {
  font-family: Arial, Helvetica, sans-serif;
}

.flip-card {
  background-color: transparent;
  width: 300px;
  height: 300px;
  perspective: 1000px;
}

.toggler, .toggler-alt {
  height: 30px;
  box-shadow: 0px 2px 2px #000000;
}

.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
  transition: transform 0.6s;
  transform-style: preserve-3d;
  box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2);
}

.flip-card:hover .flip-card-inner {
 
}

.flip-card-front, .flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.left {
  float: left;
  height: 30px;
  padding: 6px 2px;
  text-decoration: none;
  cursor: pointer;
}

.flip-card-front, .toggler-alt {
  background-color: #bbb;
  color: black;
}

.flip-card-back, .toggler {
    background-color: #2980b9;
    color: white;
}

.flip-card-back {
  transform: rotateX(180deg);
}

JavaScript

$(function() {
	$(document).on('click', '#config-toggler', function(e) {
  	$(".flip-card .flip-card-inner").css('transform', 'rotateX(180deg)');
  });
  
  $(document).on('click', '#fom-toggler', function(e) {
  	$('.flip-card .flip-card-inner').css('transform', 'rotateX(0deg)');
  });
});