Click Ripple Effect Generator
Preview material-style ripple clicks and export CSS + JS using Pointer Events.
Click ripple
Choose a preset, customize, then click the preview.
.ripple-target {
position: relative;
overflow: hidden;
}
.ripple {
position: absolute;
border-radius: 50%;
transform: scale(0);
animation: ripple-anim 600ms ease-out;
pointer-events: none;
background: #2563eb80;
}
@keyframes ripple-anim {
to { transform: scale(4); opacity: 0; }
}
function attachRipple(el, size = 80) {
el.classList.add('ripple-target');
el.addEventListener('pointerdown', (e) => {
const r = document.createElement('span');
r.className = 'ripple';
const rect = el.getBoundingClientRect();
const d = Math.max(rect.width, rect.height, size);
r.style.width = r.style.height = d + 'px';
r.style.left = (e.clientX - rect.left - d / 2) + 'px';
r.style.top = (e.clientY - rect.top - d / 2) + 'px';
el.appendChild(r);
r.addEventListener('animationend', () => r.remove());
});
}Cursor motion
Move your pointer over the preview — not just on click.
.cursor-dot-wrap {
position: relative;
}
.cursor-dot {
position: absolute;
width: 12px;
height: 12px;
border-radius: 50%;
background: #2563eb;
pointer-events: none;
transform: translate(-50%, -50%);
transition: left 0.05s linear, top 0.05s linear;
}
function attachCursorDot(el) {
el.classList.add('cursor-dot-wrap');
const dot = document.createElement('div');
dot.className = 'cursor-dot';
el.appendChild(dot);
el.addEventListener('pointermove', (e) => {
const rect = el.getBoundingClientRect();
dot.style.left = (e.clientX - rect.left) + 'px';
dot.style.top = (e.clientY - rect.top) + 'px';
});
}How to use
- 1
Preview ripple
Click the demo area to see the effect.
- 2
Customize
Change color, duration, and ripple size.
- 3
Export code
Copy CSS and JS that uses Pointer Events for mobile and desktop.
Frequently Asked Questions
Yes. It listens to pointerdown so taps and clicks both trigger ripples.
Call attachRipple(yourElement) from the exported snippet.
Related tools
Pomodoro Timer
Focus timer with work and break cycles. Customizable durations, cycle counter, and sound alerts.
Random Picker & Number Generator
Pick a random name or option from a list, or generate a random number in any range.
Typing Speed Test
Measure your typing speed in WPM and accuracy with a live typing test.
Online Notepad
A simple notepad that auto-saves to your browser. Word and character count included.