Luca Perullo
Components

Component

LiveNew

Interactive Hover Button

Hover-only, gated a fine pointer. Niente JS, solo transform + opacity sui due layer di label.

ButtonHoverCSS
Open in ClaudeSorgente

Esempio01

interactive-hover-button.tsx
001Default · hover to morph
002Hero · same label, no morph

Tutto il catalogo, gratis

36 componenti, prompt LLM, codice copia-e-incolla.

003Discovery CTA · alt label reveals action

Note Sui touch device l'effetto è gated, quindi vedrai solo lo stato a riposo. Il bottone resta accessibile (label fissa, aria-label opzionale).

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 · interactive-hover-button
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 <InteractiveHoverButton>: bottone two-state con dot che si espande on hover.
Props:
- children: ReactNode (label a riposo).
- hoverText?: ReactNode (default = children).
- className?: string + ...rest.

Implementazione:
- Server component. Classe press, rounded-full, min-h-[44px], px-5 py-2, border border-border-strong bg-bg-alt text-fg.
- Span dot absolute left-3 top-1/2 size-1.5 rounded-full bg-accent.
- Span "rest" label, span "hover" label absolute con freccia ArrowRight.
- @media (hover: hover) and (pointer: fine): on hover scale(120) sul dot, translateX rest → 140%, hover → 0, opacity swap. Transition 380ms var(--ease-out).

Output: file completo src/components/interactive-hover-button.tsx.

Uso tipico03

tsx
<InteractiveHoverButton hoverText="Avvia">Get Started</InteractiveHoverButton>

Dipendenze04

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

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