Hover Glow
보통마우스 위치를 따라 발광 효과가 나타나는 인터랙션
라이브 데모
Hover Me
코드
HoverGlow.tsx
export const HoverGlow = () => {
const [position, setPosition] = useState({ x: 0, y: 0 });
const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {
const rect = e.currentTarget.getBoundingClientRect();
setPosition({
x: e.clientX - rect.left,
y: e.clientY - rect.top,
});
};
return (
<div
className="hover-glow-box"
onMouseMove={handleMouseMove}
style={{
'--mouse-x': `${position.x}px`,
'--mouse-y': `${position.y}px`,
} as React.CSSProperties}
>
Hover Me
</div>
);
};effects.css
.hover-glow-box::before {
content: '';
position: absolute;
width: 200px;
height: 200px;
background: radial-gradient(circle, rgba(139, 92, 246, 0.8) 0%, transparent 70%);
left: var(--mouse-x);
top: var(--mouse-y);
transform: translate(-50%, -50%);
opacity: 0;
}
.hover-glow-box:hover::before {
opacity: 1;
}