Prompt · magic-card
Sei un senior frontend engineer. Stai lavorando su un sito Next.js 16 + React 19 + Tailwind v4 in italiano, look chanhdai-inspired: colonna stretta 672px, Geist Sans + Geist Mono, hairline 1px, divisori a stripe diagonale, palette zinc.
Token CSS disponibili: --bg, --bg-alt, --fg, --fg-muted, --fg-soft, --border, --border-strong, --accent. Usa SEMPRE queste variabili tramite le utility tailwind generate (bg-bg, text-fg-muted, border-border, ecc.). Helper "cn" da "@/lib/utils". Niente librerie UI extra: solo lucide-react e tailwind-merge.
Genera un componente <MagicCard> spotlight follower.
Props:
- children: ReactNode.
- gradientSize?: number (default 200).
- gradientColor?: string (default "var(--accent)").
- gradientOpacity?: number (default 0.18).
- gradientFrom?, gradientTo?, className?.
Implementazione:
- "use client". useRef<HTMLDivElement>, onPointerMove imposta --mx/--my via setProperty (coordinate locali da getBoundingClientRect).
- onPointerLeave: --mx/--my = -9999px.
- Span overlay con radial-gradient(${size}px circle at var(--mx) var(--my), var(--mc-inner)).
- @media (hover: hover) and (pointer: fine) → .magic-card-glow opacity var(--mc-opacity).
Output: file completo src/components/magic-card.tsx.