• Sobre mí
  • Proyectos
  • Contacto
  • Blog

Apasionado por el desarrollo web y el diseño de interfaces intuitivas.

Cada error es un paso. Cada línea, un aprendizaje.

📍   Salou, Tarragona, España ✉️   frankuxui.dev@gmail.com 📞   +34 641932611

Curriculum

Ver mi curriculum completo

Mapa del sitio

  • Inicio
  • Blog
  • Proyectos
  • Sobre mi
  • Mi misión
  • Sitemap

Contácto

  • Página de contácto
  • LinkedIn
  • GitHub

2026 Frankuxui - Todos los derechos reservados

  • Términos y condiciones
  • Política de privacidad
  • Política de cookies
Fotografía de Unsplash creada por Carter Obasohan
Fotografía de Unsplash creada por Carter Obasohan
  • HTML
  • JavaScript

Articulo publicado el 27 de junio de 2026

Por Frank Esteban Isdray Junco

Creando un Tooltip reutilizable con JavaScript Vanilla

Aprende a construir un sistema de tooltips flexible, accesible y controlable sin depender de librerías externas.

Por qué crear tu propio tooltip reutilizable

Los tooltips son uno de los componentes más utilizados en cualquier interfaz moderna. Aunque visualmente parecen sencillos, una implementación profesional debe resolver problemas relacionados con el posicionamiento dinámico, accesibilidad, interacción mediante teclado, soporte para contenido HTML y adaptación al viewport.

En este artículo construiremos un Tooltip reutilizable con JavaScript Vanilla, diseñado para ser flexible, extensible y fácil de integrar en cualquier proyecto.

Qué problemas debe resolver un tooltip moderno

Un tooltip reutilizable debería ser capaz de:

  • Posicionarse respecto a cualquier elemento.
  • Soportar múltiples posiciones.
  • Reposicionarse automáticamente cuando no exista espacio suficiente.
  • Permitir contenido dinámico.
  • Soportar contenido HTML.
  • Funcionar con hover, focus o click.
  • Ser accesible mediante teclado.
  • Exponer una API programática.
  • Limpiar correctamente los eventos al destruir la instancia.

Características del componente

La implementación desarrollada incluye:

  • Inicialización automática mediante data-toggle="tooltip".
  • API programática.
  • content.
  • placement.
  • auto placement.
  • allowHTML.
  • trigger.
  • arrow.
  • delay.
  • classNames.
  • Métodos show(), hide(), toggle() y destroy().
  • Eventos personalizados.
  • Reposicionamiento automático.
Estructura HTML mínima
html
<button data-toggle="tooltip" data-tooltip-content="Tooltip superior" data-tooltip-placement="top">Hover aquí</button>

Inicialización automática

js
import { Tooltip } from "./tooltip.js";

Tooltip.initAll();

Cómo funciona la inicialización declarativa

Cualquier elemento que incluya:

html
data-toggle="tooltip"

será detectado automáticamente por:

js
Tooltip.initAll();

y recibirá una instancia independiente del componente.

Inicialización programática

js
const tooltip = new Tooltip("#button", {
  content: "Tooltip creado desde JavaScript",
  placement: "right"
}).init();

Tooltip con contenido HTML

js
new Tooltip("#html-tooltip", {
  content: `
    <strong>Tooltip con HTML</strong>
    <br>
    <small>Contenido dinámico</small>
  `,
  allowHTML: true
}).init();

Casos de uso

Tooltip básico con hover

html
<button data-toggle="tooltip" data-tooltip-content="Tooltip superior" data-tooltip-placement="top">Hover aquí</button>

Tooltip mediante click

html
<button data-toggle="tooltip" data-tooltip-content="Tooltip inferior" data-tooltip-placement="bottom" data-tooltip-trigger="click">Click aquí</button>

Tooltip manual

js
const tooltip = new Tooltip("#manual-tooltip", {
  content: "Tooltip controlado manualmente",
  trigger: "manual"
}).init();

tooltip.show();
tooltip.hide();
tooltip.toggle();

Tooltip con auto placement

js
new Tooltip("#button", {
  placement: "auto"
}).init();

API pública

show()

Muestra el tooltip.

js
tooltip.show();

hide()

Oculta el tooltip.

js
tooltip.hide();

toggle()

Alterna el estado actual.

js
tooltip.toggle();

destroy()

Destruye la instancia y elimina eventos.

js
tooltip.destroy();

Accesibilidad

El componente implementa:

  • role="tooltip".
  • aria-describedby.
  • Soporte para focus.
  • Cierre mediante Escape.

Demo interactiva en CodePen

Conclusión

Crear un Tooltip reutilizable con JavaScript Vanilla permite entender mejor cómo diseñar componentes UI desacoplados, accesibles y preparados para producción.

La combinación de atributos data-*, una API programática y un sistema de posicionamiento inteligente convierte este componente en una base sólida para cualquier proyecto frontend moderno.

En este artículo

  1. Por qué crear tu propio tooltip reutilizable
  2. Qué problemas debe resolver un tooltip moderno
  3. Características del componente
  4. Inicialización automática
  5. Cómo funciona la inicialización declarativa
  6. Inicialización programática
  7. Tooltip con contenido HTML
  8. Casos de uso
  9. Tooltip básico con hover
  10. Tooltip mediante click
  11. Tooltip manual
  12. Tooltip con auto placement
  13. API pública
  14. show()
  15. hide()
  16. toggle()
  17. destroy()
  18. Accesibilidad
  19. Demo interactiva en CodePen
  20. Conclusión

Articulos relacionados

Estos articulos pueden interesarte si te gusto este articulo.

Fotografía de Unsplash creada por Marek Piwnicki
Imagen del articulo Modal reutilizable creado con JavaScript Vanilla y TypeScript
27 de junio de 2026
HTML
·JavaScript

Creando un modal reutilizable con JavaScript Vanilla para tu proyecto

Aprende a construir un sistema de modales flexible, reutilizable y controlable sin depender de librerías externas.

Imagen de Unsplash creada por Kjell-Jostein Sivertsen
Imagen del articulo Ejemplo de un modal reutilizable con JavaScript Vanilla y Tailwind CSS
27 de junio de 2026
JavaScript
·Tailwind CSS
·HTML

Cómo crear un modal reutilizable con JavaScript Vanilla y Tailwind CSS

Diseña un componente modal sólido, accesible y configurable sin depender de frameworks, usando clases utilitarias de Tailwind CSS.

Fotografía de Unsplash creada por Natalia Rudomin
Imagen del articulo Tabs accesibles y escalables en JavaScript Vanilla
27 de junio de 2026
JavaScript
·Componentes
·Accesibilidad

Tabs reutilizables con JavaScript Vanilla

Un componente accesible, reutilizable y escalable con API programatica, teclado, ARIA y registro interno