Prompt · rainbow-button
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 <RainbowButton> CTA.
Type:
- RainbowButtonProps = ButtonHTMLAttributes<HTMLButtonElement> & { children: ReactNode; className?: string }
Implementazione:
- "use client" non necessario (pure CSS).
- Bottone rounded-full, min-h-[44px] px-5 py-2, border border-border-strong bg-bg-alt text-fg, classe press.
- Pseudo-layer in absolute -inset-[2px] -z-10 con conic-gradient di 5 stop (red-500, amber-500, emerald-500, blue-500, violet-500), filter blur(10px), opacity 0.55, animation rainbow-rotate 6s linear infinite (@keyframes da definire inline via <style>).
- Sotto al gradient un secondo span absolute inset-0 -z-10 rounded-full bg-bg-alt che fa da maschera per dare l'effetto "alone esterno".
Output: file completo src/components/rainbow-button.tsx.