Luca Perullo
Components

Component

LiveNew

Dot Pattern

Pure SVG <pattern> + <rect>. Server component con useId() di React 19. Opzionale glow mask radiale.

BackgroundPattern
Open in ClaudeSorgente

Esempio01

dot-pattern.tsx
001Default · static dots
002Glow mask · radial fade
003Hero backdrop · with content
section · 001

Pronto a spedire?

Note useId() garantisce stable ID server/client. Con glow=true applica mask-image radial gradient per fade verso i bordi.

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 · dot-pattern
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 <DotPattern> SVG dotted-grid.
Props:
- width?: number (default 16), height?: number (default 16).
- cx?: number (default 1), cy?: number (default 1), cr?: number (default 1).
- glow?: boolean (default false).
- className?: string.

Implementazione:
- Server component. import { useId } from "react".
- <svg aria-hidden absolute inset-0 h-full w-full text-fg-soft/40>: <defs><pattern id={id} width={width} height={height} patternUnits="userSpaceOnUse"><circle cx cy r fill="currentColor"/></pattern></defs><rect 100% fill={url(#id)}/>.
- Se glow → classe [mask-image:radial-gradient(closest-side_at_center,black,transparent)].

Output: file completo src/components/dot-pattern.tsx.

Uso tipico03

tsx
<div className="relative">
  <DotPattern glow />
</div>

Dipendenze04

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

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