console
<div>
</div>
*,
body {
padding: 0;
margin: 0;
font-size: 0;
}
div {
box-sizing: border-box;
position: absolute;
top: 50%;
left: 50%;
width: 220px;
height: 150px;
border: 10px solid #333;
border-radius: 2px;
background: linear-gradient(to right, #333 0px, #333 10px, transparent 10px) #fff 95px 0/100%;
transform: translate(-50%, -50%);
transform-style: preserve-3d;
perspective: 600px;
}
@keyframes flip {
0% {
background-size: 0% 80%;
transform: rotateY(0deg);
}
25% {
background-size: 75% 80%;
transform: rotateY(0deg);
}
100% {
background-size: 75% 80%;
transform: rotateY(-180deg);
}
}
div::before,
div::after {
box-sizing: border-box;
content: '';
position: absolute;
top: -10px;
right: -10px;
width: 110px;
height: 150px;
border: 10px solid #333;
border-left-width: 5px;
border-radius: 2px;
background: repeating-linear-gradient(to bottom, #333, #333 8px, white 8px, white 16px) center/75% 80% no-repeat #fff;
transform-origin: top left;
animation: flip 3s ease infinite;
}
div::after {
left: -10px;
border-left-width: 10px;
border-right-width: 5px;
animation: none;
}