<link href="https://fonts.googleapis.com/css?family=Abril+Fatface|Open+Sans" rel="stylesheet">
<section>
  <div class="container">
    <h1>Skeleton State Loading</h1>
    <p>Between 200 milliseconds and 1 second, people feel they are within the flow of their actions. After 1 second without any other feedback, focus starts to shift. Beyond 10 seconds, user focus is likely to be lost entirely.</p>
    <p>Skeleton screens provide an alternative to the traditional methods. Rather than show an abstract widget, skeleton screens create anticipation of what is to come and reduce cognitive load.</p>
    <div class="card-skeleton">
      <div class="animated-background"> 
        <div class="card-skeleton-img"></div>
        <div class="skel-mask-container">
          <div class="skel-mask skel-mask-1"></div>
          <div class="skel-mask skel-mask-2"></div>
          <div class="skel-mask skel-mask-3"></div>
          <div class="skel-mask skel-mask-4"></div>
          <div class="skel-mask skel-mask-5"></div>
          <div class="skel-mask skel-mask-6"></div>
        </div>
      </div>
    </div>
    <div class="card-skeleton">
      <div class="animated-background"> 
        <div class="card-skeleton-img"></div>
        <div class="skel-mask-container">
          <div class="skel-mask skel-mask-1"></div>
          <div class="skel-mask skel-mask-2"></div>
          <div class="skel-mask skel-mask-3"></div>
          <div class="skel-mask skel-mask-4"></div>
          <div class="skel-mask skel-mask-5"></div>
          <div class="skel-mask skel-mask-6"></div>
        </div>
      </div>
    </div>
    <div class="card-skeleton">
      <div class="animated-background"> 
        <div class="card-skeleton-img"></div>
        <div class="skel-mask-container">
          <div class="skel-mask skel-mask-1"></div>
          <div class="skel-mask skel-mask-2"></div>
          <div class="skel-mask skel-mask-3"></div>
          <div class="skel-mask skel-mask-4"></div>
          <div class="skel-mask skel-mask-5"></div>
          <div class="skel-mask skel-mask-6"></div>
        </div>
      </div>
    </div>
    <div class="card-skeleton">
      <div class="animated-background"> 
        <div class="card-skeleton-img"></div>
        <div class="skel-mask-container">
          <div class="skel-mask skel-mask-1"></div>
          <div class="skel-mask skel-mask-2"></div>
          <div class="skel-mask skel-mask-3"></div>
          <div class="skel-mask skel-mask-4"></div>
          <div class="skel-mask skel-mask-5"></div>
          <div class="skel-mask skel-mask-6"></div>
        </div>
      </div>
    </div>
    <div class="card-skeleton">
      <div class="animated-background"> 
        <div class="card-skeleton-img"></div>
        <div class="skel-mask-container">
          <div class="skel-mask skel-mask-1"></div>
          <div class="skel-mask skel-mask-2"></div>
          <div class="skel-mask skel-mask-3"></div>
          <div class="skel-mask skel-mask-4"></div>
          <div class="skel-mask skel-mask-5"></div>
          <div class="skel-mask skel-mask-6"></div>
        </div>
      </div>
    </div>
    <div class="card-skeleton">
      <div class="animated-background"> 
        <div class="card-skeleton-img"></div>
        <div class="skel-mask-container">
          <div class="skel-mask skel-mask-1"></div>
          <div class="skel-mask skel-mask-2"></div>
          <div class="skel-mask skel-mask-3"></div>
          <div class="skel-mask skel-mask-4"></div>
          <div class="skel-mask skel-mask-5"></div>
          <div class="skel-mask skel-mask-6"></div>
        </div>
      </div>
    </div>
    <div class="card-skeleton">
      <div class="animated-background"> 
        <div class="card-skeleton-img"></div>
        <div class="skel-mask-container">
          <div class="skel-mask skel-mask-1"></div>
          <div class="skel-mask skel-mask-2"></div>
          <div class="skel-mask skel-mask-3"></div>
          <div class="skel-mask skel-mask-4"></div>
          <div class="skel-mask skel-mask-5"></div>
          <div class="skel-mask skel-mask-6"></div>
        </div>
      </div>
    </div>
    <div class="card-skeleton">
      <div class="animated-background"> 
        <div class="card-skeleton-img"></div>
        <div class="skel-mask-container">
          <div class="skel-mask skel-mask-1"></div>
          <div class="skel-mask skel-mask-2"></div>
          <div class="skel-mask skel-mask-3"></div>
          <div class="skel-mask skel-mask-4"></div>
          <div class="skel-mask skel-mask-5"></div>
          <div class="skel-mask skel-mask-6"></div>
        </div>
      </div>
    </div>
    <div class="card-skeleton">
      <div class="animated-background"> 
        <div class="card-skeleton-img"></div>
        <div class="skel-mask-container">
          <div class="skel-mask skel-mask-1"></div>
          <div class="skel-mask skel-mask-2"></div>
          <div class="skel-mask skel-mask-3"></div>
          <div class="skel-mask skel-mask-4"></div>
          <div class="skel-mask skel-mask-5"></div>
          <div class="skel-mask skel-mask-6"></div>
        </div>
      </div>
    </div>
  </div>
</section>
body { 
font-family: 'Open Sans', sans-serif;
color: white;
text-align: center;
background: #EB3349;  /* fallback for old browsers */
background: -webkit-linear-gradient(to right, #F45C43, #EB3349);  /* Chrome 10-25, Safari 5.1-6 */
background: linear-gradient(to right, #F45C43, #EB3349); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */


}

h1 {
  font-size: 50px;
  letter-spacing: 4px;
  text-transform: uppercase; 
}
p {
  line-height: 2;
  margin-bottom: 50px;
  font-size: 18px;
  
}
.container {
  margin: 0 auto;
  max-width:930px;
}
@keyframes placeHolderShimmer {
    0% {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
        background-position: -468px 0
    }
    to {
        -webkit-transform: translateZ(0);
        transform: translateZ(0);
        background-position: 468px 0
    }
}

.card-skeleton {
    width: 270px;
    height:300px;
    margin: 5px;
    position: relative;
     float: left;
    top: 0;
    left: 0;
    transition: all .3s ease-in-out;
    -webkit-backface-visibility: hidden;
    background: #fff;
    z-index: 10;
    padding: 15px;
    opacity: 1
}

.card-skeleton.hidden {
    transition: all .3s ease-in-out;
    opacity: 0;
    height: 0;
    padding: 0
}

.card-skeleton-img {
    width: 100%;
    height: 120px;
    background: #e6e6e6;
    display: block
}

.animated-background {
    will-change: transform;
    animation: placeHolderShimmer 1s linear infinite forwards;
    -webkit-backface-visibility: hidden;
    background: #e6e6e6;
    background: linear-gradient(90deg, #eee 8%, #ddd 18%, #eee 33%);
    background-size: 800px 104px;
    height: 100%;
    position: relative
}

.skel-mask-container {
    position: relative
}

.skel-mask {
    background: #fff;
    position: absolute;
    z-index: 200
}

.skel-mask-1 {
    width: 100%;
    height: 15px;
    top: 0;
    left: 0
}

.skel-mask-2 {
    width: 25%;
    height: 10px;
    top: 15px;
    right: 0
}

.skel-mask-3 {
    top: 25px
}

.skel-mask-3,
.skel-mask-4 {
    width: 100%;
    height: 15px;
    right: 0
}

.skel-mask-4 {
    top: 50px
}

.skel-mask-5 {
    width: 10%;
    height: 30px;
    top: 65px;
    right: 30%
}

.skel-mask-6 {
    width: 100%;
    height: 15px;
    top: 95px;
    right: 0
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.