import React, { ComponentPropsWithoutRef, CSSProperties } from "react"; import { cn } from "@/lib/utils"; interface RippleProps extends ComponentPropsWithoutRef<"div"> { mainCircleSize?: number; mainCircleOpacity?: number; numCircles?: number; } export const Ripple = React.memo(function Ripple({ mainCircleSize = 210, mainCircleOpacity = 0.24, numCircles = 8, className, ...props }: RippleProps) { return (
{Array.from({ length: numCircles }, (_, i) => { const size = mainCircleSize + i * 70; const opacity = mainCircleOpacity - i * 0.03; const animationDelay = `${i * 0.06}s`; const borderStyle = i === numCircles - 1 ? "dashed" : "solid"; const borderOpacity = 5 + i * 5; return (
); })}
); }); Ripple.displayName = "Ripple";