27 CSS Card Hover Effects

Shockwave

Two concentric ring pulses expand outward from the card border on hover, like a shockwave ripple effect.

Pure CSS MIT licensed

Shockwave the 23rd of 27 designs in the 27 CSS Card Hover Effects collection. The design is implemented in pure CSS — no JavaScript required. Copy the HTML and CSS panels below into your project. Because the demo is pure CSS, it works in any framework or templating engine you happen to use. The design honours prefers-reduced-motion and uses real semantic markup, so it ships accessibility-ready out of the box.

Live preview

Open in playground

The code

<div class="card-23">
  <span class="card-23__tag">Pulse</span>
  <h4 class="card-23__title">Shockwave</h4>
  <p class="card-23__body">Two ripple rings expand outward on hover.</p>
</div>
.card-23__tag {
  font-family: monospace;
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 20px;
  background: rgba(124, 108, 255, 0.15);
  color: #7c6cff;
  border: 1px solid rgba(124, 108, 255, 0.3);
  display: inline-block;
  margin-bottom: 10px;
}
.card-23__title {
  font-size: 17px;
  font-weight: 700;
  color: #f0eeff;
  margin-bottom: 6px;
}
.card-23__body {
  font-size: 13px;
  color: #b8b6d4;
  line-height: 1.6;
}
.card-23 {
  width: 100%;
  max-width: 280px;
  position: relative;
  overflow: visible;
  padding: 22px;
  border-radius: 14px;
  background: #17171f;
  border: 1px solid rgba(255, 255, 255, 0.08);
  cursor: pointer;
  transition:
    border-color 0.3s,
    transform 0.3s;
}
.card-23:hover {
  border-color: rgba(124, 108, 255, 0.5);
  transform: scale(1.02);
}
.card-23::before,
.card-23::after {
  content: "";
  position: absolute;
  inset: -8px;
  border-radius: 20px;
  border: 2px solid rgba(124, 108, 255, 0.55);
  opacity: 0;
  pointer-events: none;
}
.card-23:hover::before {
  animation: card-23-a 0.7s cubic-bezier(0.2, 0.6, 0.4, 1) forwards;
}
.card-23:hover::after {
  animation: card-23-b 0.7s cubic-bezier(0.2, 0.6, 0.4, 1) 0.18s forwards;
}
@keyframes card-23-a {
  0% { transform: scale(1); opacity: 0.8; }
  100% { transform: scale(1.18); opacity: 0; }
}
@keyframes card-23-b {
  0% { transform: scale(1); opacity: 0.5; }
  100% { transform: scale(1.32); opacity: 0; }
}

Search CodeFronts

Loading…