"use client"; import { useState } from "react"; import { motion, useReducedMotion } from "motion/react"; type GravityButtonProps = { /** Button label. Plain text, because each letter moves on its own. */ children: string; className?: string; onClick?: () => void; /** How high each letter jumps, in pixels. */ height?: number; /** Seconds between one letter and the next. */ stagger?: number; }; /* GravityButton: on hover each letter jumps, falls back under gravity and lands with a small bounce, one after another. */ export function GravityButton({ children, className = "rounded-full bg-[#a78bfa] px-9 py-4 text-[15px] font-medium text-[#1a1530]", onClick, height = 10, stagger = 0.03, }: GravityButtonProps) { const reduce = useReducedMotion(); const [hop, setHop] = useState(0); const jump = () => { if (!reduce) setHop((h) => h + 1); }; return ( ); }