Un componente de Tooltip para React moderno, ligero, fluido y altamente personalizable.
Desarrollado con las mejores prácticas: animaciones fluidas (fade-in / fade-out), acoplamiento perfecto de bordes, y soporte total para Tailwind CSS o CSS puro.
- Animaciones fluidas: Transiciones suaves de entrada y salida gracias al manejo avanzado del ciclo de vida en React.
- Bordes Dinámicos: La flecha del tooltip hereda dinámicamente el grosor y color del borde, fusionándose como una sola pieza (gracias al uso inteligente de
drop-shadow). - Agnóstico al CSS: Estilos neutros por defecto. Úsalo como lienzo en blanco con Tailwind CSS o tus propios estilos en línea.
- Portales de React: Renderizado seguro fuera de la jerarquía del DOM para evitar problemas con
overflow: hiddenoz-index. - Cero dependencias pesadas: Construido nativamente sobre React.
DEMO: -->> https://tooltip-react-jz.vercel.app
Puedes instalarlo utilizando tu gestor de paquetes favorito:
npm install @juanzbdev/tooltip-reactpnpm add @juanzbdev/tooltip-reactyarn add @juanzbdev/tooltip-react- Importa el componente (¡los estilos se inyectan automáticamente!).
- Envuelve el elemento que disparará el tooltip.
import { Tooltip } from "@juanzbdev/tooltip-react";
export default function App() {
return (
<div style={{ padding: "50px" }}>
<Tooltip label="¡Hola, soy un tooltip!" position="top">
<button>Pasa el mouse sobre mí</button>
</Tooltip>
</div>
);
}El componente está diseñado para ser moldeable. Puedes sobreescribir completamente su apariencia usando la prop className (ideal para Tailwind CSS) o la prop style.
<Tooltip
label="Tooltip verde y redondeado"
position="right"
style={{
backgroundColor: "#10b981",
borderColor: "#059669",
borderRadius: "12px",
}}
>
<button>Hover me</button>
</Tooltip>¡Magia!: La flecha heredará automáticamente el color de fondo y del borde, adaptándose perfectamente a tu diseño sin que tengas que hacer trucos adicionales.
| Prop | Tipo | Por defecto | Descripción |
|---|---|---|---|
label (*) |
ReactNode |
- |
El texto o componente que se mostrará dentro del tooltip. |
children (*) |
ReactNode |
- |
El elemento (ej. botón) sobre el cual se hará hover para mostrar el tooltip. |
position |
'top' | 'bottom' | 'left' | 'right' |
'top' |
La dirección hacia donde aparecerá el tooltip. |
showArrow |
boolean |
true |
Muestra u oculta la flecha del tooltip. |
disabled |
boolean |
false |
Desactiva temporalmente el tooltip para que no se muestre al hacer hover. |
delayHide |
number |
0 |
Retardo en milisegundos (ms) que el tooltip esperará antes de desaparecer al quitar el mouse. |
className |
string |
"" |
Clases CSS adicionales (ej. Tailwind) para la caja del tooltip. |
style |
CSSProperties |
{} |
Estilos en línea para personalizar la caja del tooltip. |
containerClassName |
string |
"react-tooltip-container" |
Clase CSS para el contenedor que envuelve a los children. |
MIT