Prompt · shine-border
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 <ShineBorder> wrapper con bordo conic-gradient ruotante. Props: - borderRadius?: number (default 8), borderWidth?: number (default 1). - duration?: number (sec, default 14). - color?: string | string[] (default ["var(--accent)", "transparent"]). - className?, children: ReactNode. Implementazione: - Server component. Wrapper relative isolate con CSS vars --shine-radius/width/duration. - Layer rotante: span absolute inset-0 -z-10 overflow-hidden borderRadius radius. Inner span aspect-square w-200% con conic-gradient, animation shine-border-spin duration linear infinite. - Inset mask: span absolute inset-0 -z-10 bg-bg-alt borderRadius (radius - width), margin width. Output: file completo src/components/shine-border.tsx.
