'use client'; import { HTMLAttributes, useEffect, useRef, useState } from 'react'; export interface CursorTrailProps extends HTMLAttributes { trailCount?: number; trailSize?: number; trailColor?: string; blendMode?: 'normal' | 'difference' | 'screen'; hasCenterDot?: boolean; } export const CursorTrailTailwind = ({ trailCount = 3, trailSize = 20, trailColor = '#fff', hasCenterDot = true, className = '', ...props }: CursorTrailProps) => { const [trails, setTrails] = useState>([]); useEffect(() => { const handleMouseMove = (e: MouseEvent) => { setTrails(prev => [{ x: e.clientX, y: e.clientY }, ...prev].slice(0, trailCount)); }; document.addEventListener('mousemove', handleMouseMove); return () => document.removeEventListener('mousemove', handleMouseMove); }, [trailCount]); return ( {trails.map((pos, i) => ( ))} {hasCenterDot && trails[0] && ( )} ); };