<div class="container">
  <div class="logo"></div>
  <div class="shadow"/></div>
</div>
:root {
  --drop-height: 200px;
  --logo-size: 48px;
  --offset: 100px;
  --shadow-height: 8px;
}

html, body {
  height: 100%;
  width: 100%;
  margin: 0;
}

.container {
  width: 100%;
  height: 100%;
  background-color: lightgray;
  position: relative;
}

.logo {
  width: var(--logo-size);
  height: var(--logo-size);
  border-radius: 100%;
  background-color: salmon;
  
  position: absolute;
  top: var(--offset);
  left: calc(50% - var(--logo-size)/2);
  
  animation-name: bounce; 
  animation-duration: 0.5s;
  animation-direction: alternate;
  animation-timing-function: cubic-bezier(0.95, 0.05, 0.795, 0.035);
  animation-iteration-count: infinite;
}

.shadow {
  width: var(--logo-size);
  height: var(--shadow-height);
  background-color: teal;
  position: absolute;
  top: calc(var(--offset) + var(--drop-height) + var(--logo-size) - 1.5 * var(--shadow-height));
  left: calc(50% - var(--logo-size)/2);
}

@keyframes bounce {
  from { 
    transform: translateY(0) scale(1);
  }
  to   { 
    transform: translateY(var(--drop-height)) scale(1, 0.7);
  }
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.