A radio control that confirms selection using a subtle pulse rather than a static fill.

HTML

<label class="radio-pulse">
  <input type="radio" name="opt">
  <span class="radio-pulse__dot"></span>
</label>

CSS

.radio-pulse {
  width: 200px;
  display: flex;
  justify-content: center;
}

.radio-pulse input {
  display: none;
}

.radio-pulse__dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #f3f4f6;
  position: relative;
  cursor: pointer;
}

.radio-pulse__dot::after {
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  background: #6366f1;
  opacity: 0;
}

.radio-pulse input:checked + .radio-pulse__dot::after {
  animation: pulse 300ms ease;
  opacity: 1;
}

@keyframes pulse {
  0% { transform: scale(0.6); }
  100% { transform: scale(1); }
}

@media (prefers-color-scheme: dark) {
  .radio-pulse__dot {
    background: #020617;
  }
}

Notes

  • Pulse-based confirmation
  • No heavy animation loops
  • Ideal for preference selection

Preview styles shown. Production customization recommended.

Browse More UI Components

Explore hundreds of reusable HTML & CSS UI components built for modern web projects.
Discover buttons, cards, loaders, animations, layouts, and more all with live previews and clean, copy-paste code.

Leave a Reply

Your email address will not be published. Required fields are marked *