Articulo publicado el
Aprende a construir un sistema de tooltips flexible, accesible y controlable sin depender de librerías externas.
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.
Un tooltip reutilizable debería ser capaz de:
La implementación desarrollada incluye:
data-toggle="tooltip".content.placement.auto placement.allowHTML.trigger.arrow.delay.classNames.show(), hide(), toggle() y destroy().<button data-toggle="tooltip" data-tooltip-content="Tooltip superior" data-tooltip-placement="top">Hover aquí</button>
import { Tooltip } from "./tooltip.js";
Tooltip.initAll();
Cualquier elemento que incluya:
data-toggle="tooltip"
será detectado automáticamente por:
Tooltip.initAll();
y recibirá una instancia independiente del componente.
const tooltip = new Tooltip("#button", {
content: "Tooltip creado desde JavaScript",
placement: "right"
}).init();
new Tooltip("#html-tooltip", {
content: `
<strong>Tooltip con HTML</strong>
<br>
<small>Contenido dinámico</small>
`,
allowHTML: true
}).init();
<button data-toggle="tooltip" data-tooltip-content="Tooltip superior" data-tooltip-placement="top">Hover aquí</button>
<button data-toggle="tooltip" data-tooltip-content="Tooltip inferior" data-tooltip-placement="bottom" data-tooltip-trigger="click">Click aquí</button>
const tooltip = new Tooltip("#manual-tooltip", {
content: "Tooltip controlado manualmente",
trigger: "manual"
}).init();
tooltip.show();
tooltip.hide();
tooltip.toggle();
new Tooltip("#button", {
placement: "auto"
}).init();
Muestra el tooltip.
tooltip.show();
Oculta el tooltip.
tooltip.hide();
Alterna el estado actual.
tooltip.toggle();
Destruye la instancia y elimina eventos.
tooltip.destroy();
El componente implementa:
role="tooltip".aria-describedby.focus.Escape.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.
Estos articulos pueden interesarte si te gusto este articulo.
Aprende a construir un sistema de modales flexible, reutilizable y controlable sin depender de librerías externas.
Diseña un componente modal sólido, accesible y configurable sin depender de frameworks, usando clases utilitarias de Tailwind CSS.
Un componente accesible, reutilizable y escalable con API programatica, teclado, ARIA y registro interno