<button class="btn_clip" href="#">
<span>Эффект фонарика</span>
<span>Эффект фонарика</span>
</button>
<button class="btn_clip " href="#">
<span>Эффект фонарика</span>
<span>Эффект фонарика</span>
</button>
<button class="btn_clip " href="#">
<span>Эффект фонарика</span>
<span>Эффект фонарика</span>
</button>
.btn_clip {
position: relative;
width: 500px;
align-items: center;
padding: 22px 35px 27px 35px;
border-radius: 0px 15px 15px 15px;
background: #000;
color: #fff;
font-size: 24px;
display: inline-block;
text-decoration: none;
cursor: none;
border: none;
box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25);
}
.btn_clip span {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #000;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
text-transform: uppercase;
letter-spacing: 2px;
}
.btn_clip span:nth-child(2) {
color: #fff;
background: #000000;
overflow: hidden;
z-index: 2;
}
.btn_clip span:hover {
clip-path: circle(20px at var(--x) var(--y));
background-color: #f4e300;
color: #000000;
}
let pos = document.documentElement;
pos.addEventListener('mousemove' , e => {
pos.style.setProperty('--x', e.clientX + 'px');
pos.style.setProperty('--y', e.clientY + 'px')
})