Button Options
Button Preview
Additional JavaScript for Ripple Effect
function createRipple(event) {
const button = event.currentTarget;
const ripple = document.createElement('span');
const rect = button.getBoundingClientRect();
const size = Math.max(rect.width, rect.height) * 2;
ripple.style.width = ripple.style.height = `${size}px`;
ripple.style.left = `${event.clientX - rect.left - size/2}px`;
ripple.style.top = `${event.clientY - rect.top - size/2}px`;
ripple.classList.add('ripple');
button.appendChild(ripple);
setTimeout(() => {
ripple.remove();
}, 600);
}
// Add this to your buttons
document.querySelectorAll('.ripple-button').forEach(button => {
button.addEventListener('click', createRipple);
});
Additional CSS for Animations
/* For ripple effect */
.ripple {
position: absolute;
border-radius: 50%;
background-color: rgba(255, 255, 255, 0.4);
transform: scale(0);
animation: ripple 0.6s linear;
}
@keyframes ripple {
to {
transform: scale(2.5);
opacity: 0;
}
}
/* For wobble effect */
.wiggle {
animation: wiggle 0.5s ease;
}
@keyframes wiggle {
0%, 100% { transform: rotate(0deg); }
25% { transform: rotate(-5deg); }
50% { transform: rotate(0deg); }
75% { transform: rotate(5deg); }
}
/* For pulse effect */
.pulse {
animation: pulse 0.5s ease;
}
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.05); }
100% { transform: scale(1); }
}