Luca Perullo
Components

Component

LiveNew

Meteors

useMemo per N meteore con position/delay/duration random. ::before fa la coda gradient.

EffectBackgroundClient
Open in ClaudeSorgente

Esempio01

meteors.tsx
001Default · 20 meteors
002Hero card · meteor backdrop

Pronto a spedire?

Componenti già brand-locked, copy in italiano.

003Dense field · 40 meteors

Note Le posizioni sono memoizzate per non rishufflate ad ogni render. La rotation 215deg dà l'angolazione classica top-right → bottom-left.

Prompt LLM02

Incolla in Claude o ChatGPT per generare la tua variante. Include il contesto del brand, i token e i vincoli del progetto.

Prompt · meteors
Open in Claude
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 <Meteors>.
Props:
- number?: number (default 20).
- className?: string.

Implementazione:
- "use client". useMemo<{id, top, left, duration, delay}[]> di N meteore con valori random.
- Wrapper absolute inset-0 overflow-hidden.
- Per ogni meteora: span h-[2px] w-[2px] rounded-full bg-fg, ::before assoluto right-full h-[1px] w-[80px] linear-gradient-to-l from-fg to-transparent (coda).
- @keyframes meteors-fall: from translate(0,0) rotate(215deg) opacity 1 to translate(-450px, 450px) rotate(215deg) opacity 0.
- Animation 5–8s linear delay 0–4s infinite.

Output: file completo src/components/meteors.tsx.

Uso tipico03

tsx
<Meteors number={20} />

Dipendenze04

npm
  • tailwind-merge
  • clsx
Interno
  • @/lib/utils#cn

Ti è servito? Dimmelo, oppure proponi il prossimo componente.