Cómo añadir tooltips con estilo a Webflow sin usar jQuery

Aprende a añadir tooltips animados y totalmente personalizados a cualquier elemento de Webflow usando Tippy.js, sin necesidad de jQuery.

Cómo añadir tooltips con estilo a Webflow sin usar jQuery

Colin Lateano
Evangelista de desarrolladores
Ver perfil del autor
Colin Lateano
Evangelista de desarrolladores
Ver perfil del autor
Índice de contenidos

El atributo title te ofrece un tooltip, pero no uno muy bueno. Aparece tras un retraso controlado por el navegador y se ve diferente en cada sistema operativo y navegador. Además, no se puede personalizar. Tippy.js soluciona los tres problemas sin requerir jQuery.

El tooltip del atributo `title` en Webflow aparece tras un retraso controlado por el navegador, se ve distinto en Safari que en Chrome y no permite personalización. Es uno de los problemas más frecuentes con los tooltips, y la solución más citada (Tooltipster) requiere jQuery, algo que no deberías añadir a proyectos nuevos.

Tippy.js ofrece una alternativa. No requiere jQuery, la versión CDN es estable en la v6.3.7 y se puede configurar en Webflow en pocos minutos. Obtienes control total sobre la ubicación, la animación y el contenido, incluyendo HTML enriquecido dentro del tooltip.

En esta guía, exploramos la configuración completa: cargar la biblioteca, marcar los elementos, inicializar con opciones y solucionar los cuatro errores comunes que atrapan a la mayoría de los desarrolladores la primera vez.

¿Qué necesitas para añadir tooltips en Webflow?

Necesitas un plan de pago de Webflow que permita código personalizado. Ese es el único requisito estricto. Nada de cuentas externas, claves API o servicios de terceros.

El elemento Incrustar código personalizado y las secciones de código personalizado en la configuración del sitio están disponibles en cualquier plan de sitio de pago (Basic, CMS, Business o Enterprise) y en los planes de espacio de trabajo Core, Growth, Agency y Freelancer. Los planes gratuitos no pueden usar código personalizado.

Una vez que tienes acceso al código personalizado, la configuración requiere dos lugares en Webflow: la configuración del sitio para cargar la biblioteca y la configuración del elemento para marcar los elementos individuales. Así es como funciona cada paso.

5 pasos para añadir tooltips de Tippy.js a Webflow

La configuración consta de dos fases distintas: cargar Tippy.js globalmente a través de la configuración del sitio y configurarlo para activar elementos específicos. La implementación completa no requiere más que unos pocos bloques de código. Aquí tienes qué hace cada uno y dónde va.

1. Cargar Tippy.js en la configuración del sitio

Empiezas pegando dos etiquetas script en la sección de código del pie de página (Footer code) de Webflow: una para Popper.js (mantenido principalmente ahora como Floating UI), el motor de posicionamiento que requiere Tippy.js, y otra para Tippy.js. Ve a Configuración del sitio → Código personalizado → Código del pie de página para llegar allí.

Tippy.js depende de Popper.js para la lógica de posicionamiento. Cargas ambos mediante CDN: primero Popper, después Tippy.

Ahora, pega ambas etiquetas script en la sección de código del pie de página (antes de </body>):

<!-- Popper.js (required by Tippy.js for positioning) -->
<script src="https://unpkg.com/@popperjs/core@2/dist/umd/popper.min.js"></script>

<!-- Tippy.js v6 -->
<script src="https://unpkg.com/tippy.js@6/dist/tippy-bundle.umd.js"></script>

Así es como se ve:

La tippy-bundle versión empaqueta Popper.js y el CSS de Tippy.js juntos.

Si tu proyecto tiene una Política de seguridad de contenido que restringe los estilos en línea, cárgalos por separado:

<link rel="stylesheet" href="https://unpkg.com/tippy.js@6/dist/tippy.css" />

Coloca ese enlace CSS en la sección de código del encabezado (Head code) si usas la hoja de estilos por separado. Las etiquetas script siguen yendo en el código del pie de página.

¿Por qué en el pie de página? Los scripts en el encabezado se ejecutan antes de que exista el DOM, por lo que Tippy.js intenta encontrar elementos antes de que tu página se renderice. Poner scripts en el pie de página asegura que el DOM esté completamente cargado cuando Tippy.js se inicialice.

Tras guardar, ambas bibliotecas se cargarán en cada página publicada de tu sitio. No se ejecutarán en el lienzo del Diseñador de Webflow. Tippy.js solo funciona en páginas publicadas.

2. Añade el atributo data-tippy-content a cada elemento

Añade un atributo personalizado llamado data-tippy-content a cada elemento que deba tener un tooltip. El valor se convertirá en el texto del tooltip.

Selecciona el elemento objetivo en el Diseñador de Webflow, abre la configuración del elemento (presiona D o haz clic en el icono de engranaje en la barra de herramientas superior) y desplázate hasta la sección de Atributos personalizados.

Luego, añade el nombre del atributo y su valor:

  • Nombre del atributo: data-tippy-content
  • Valor: [el texto que quieres que aparezca en el tooltip, p. ej., "Se abre en una pestaña nueva" o "Campo obligatorio"]

El valor que introduzcas aquí será el texto del tooltip. Cada elemento tiene su propio valor, y eso es exactamente lo que aparecerá en la burbuja cuando alguien pase el cursor por encima.

Tippy.js lee data-tippy-content al inicializarse y lo usa como contenido del tooltip. No hace falta ninguna clase ni atributo title. Repite esto para cada elemento al que quieras añadirle un tooltip. Puedes usar valores de contenido distintos para cada uno. Cada elemento tendrá su propia instancia de tooltip independiente.

Una nota sobre elementos interactivos: si añades esto a un elemento HTML no interactivo (un

div, un <span>span, un elemento de texto de Webflow), configura también el cursor como "Pointer" en el panel de estilos. Sin esto, iOS Safari no reconocerá el toque y el tooltip no se activará en dispositivos táctiles.

El elemento ya está marcado. El tooltip aún no aparecerá; eso requiere la llamada de inicialización del paso 3.

3. Inicializa Tippy.js en el código personalizado del pie de página

Añade la llamada de inicialización después de las etiquetas de script de Tippy.js.

En Configuración del sitio → Código personalizado → Código del pie de página, después de las dos etiquetas de script del paso 1, añade:

<script>
  tippy('[data-tippy-content]');
</script>

Esta única llamada selecciona todos los elementos de la página con un atributo data-tippy-content y activa una instancia de Tippy.js en cada uno. Tippy.js lee automáticamente el valor del atributo como el contenido del tooltip.

Personalización del comportamiento

Para personalizar el comportamiento (posición, animación, retraso), pasa un objeto de opciones:

<script>
  tippy('[data-tippy-content]', {
    placement: 'bottom',   // 'top', 'bottom', 'left', 'right', or auto variants
    animation: 'scale',    // 'fade' (default), 'scale', 'shift-away', 'shift-toward', 'perspective'
    delay: [100, 200],     // [show delay in ms, hide delay in ms]
    arrow: true            // show the arrow pointer (default: true)
  });
</script>

Las opciones se aplican globalmente a todos los tooltips de la página.

Si usas una animación distinta a 'fade', carga el CSS correspondiente en Configuración del sitio → Código personalizado → Código del encabezado:

<!-- Required for 'scale' animation -->
<link rel="stylesheet" href="https://unpkg.com/tippy.js@6/animations/scale.css" />

Reemplaza scale por shift-away'scale'shift-toward, perspective,'shift-away'\fade o 'perspective' según la animación que utilices. Sin este CSS, el ajuste de animación se ignorará silenciosamente y se usará la animación 'fade' por defecto.

Uso de diferentes ajustes por elemento

Si necesitas configuraciones distintas por elemento, por ejemplo placement: 'right' en un elemento y placement: 'top' en otro, inicializa cada conjunto por separado con un selector más específico, o usa las propiedades data-tippy-* de Tippy.js para sobrescribir cada elemento:

<script>
  // Global defaults
  tippy('[data-tippy-content]', {
    placement: 'top',
    animation: 'fade'
  });
</script>

data-tippy-placement="right"  ← set this as a custom attribute on specific elements to override

La lista completa de opciones disponibles se encuentra en la referencia de propiedades de Tippy.js.

Guarda y tu sitio estará listo para publicarse. Tippy.js se activará en todos los elementos con data-tippy-content al cargar la página.

4. Publica y prueba en el sitio en vivo

Haz clic en Publicar en la parte superior derecha del Diseñador. Selecciona tu dominio y publica.

Una vez que termine la publicación, abre la URL de tu sitio en vivo. El código personalizado no se ejecuta en el lienzo del Diseñador de Webflow. En el modo de vista previa, el código personalizado está desactivado de forma predeterminada. Puedes habilitarlo haciendo clic en el interruptor "Habilitar código personalizado" en la parte inferior izquierda de la ventana de vista previa.

Pasa el cursor sobre cualquier elemento al que hayas añadido data-tippy-content en el paso 2.

Deberías ver lo siguiente:

  • Aparece una burbuja de información sobre el elemento (o en la placement que hayas configurado)
  • Se reproduce una animación de desvanecimiento (o la animation que hayas configurado)
  • La información sobre herramientas desaparece cuando alejas el cursor

En dispositivos móviles, la información sobre herramientas se activa al tocar. El elemento debe tener cursor: pointer en su CSS para que esto funcione en iOS Safari. Si al tocar no sucede nada, la sección de solución de problemas a continuación te indica cómo arreglarlo.

5. Renderiza contenido HTML dentro de las informaciones sobre herramientas (opcional)

De forma predeterminada, Tippy.js trata el valor de data-tippy-content como texto sin formato.

Para renderizar HTML dentro de una información sobre herramientas (contenido con formato, iconos, enlaces), habilita allowHTML:

<script>
  tippy('[data-tippy-content]', {
    allowHTML: true
  });
</script>

Luego, establece el valor del atributo personalizado como una cadena HTML:

data-tippy-content  →  <strong>Required field</strong> — must be a valid email address

Ten en cuenta un par de cosas. allowHTML: true solo es relevante si el navegador necesita analizar etiquetas dentro de la cadena de contenido. Para la mayoría de los casos de uso (etiquetas simples, descripciones breves), no lo necesitas. Si lo usas, asegúrate de que el contenido sea seguro. No pases cadenas generadas por usuarios sin sanear directamente a las informaciones sobre herramientas de allowHTML: true .

Para contenido complejo que vaya más allá de una cadena breve (una tarjeta con una imagen, una definición con formato), puedes hacer referencia a un elemento DOM fuera de pantalla en lugar de una cadena en línea.

¿Qué hace que las informaciones sobre herramientas de Tippy.js fallen en Webflow?

La mayoría de los fallos se deben a cuatro motivos: probar en el entorno incorrecto, un error tipográfico en el atributo, el problema de toque en iOS o un conflicto de contención CSS.

Aquí te explicamos cómo identificar y solucionar cada uno.

Los tooltips no aparecen en ninguna parte de la página

Has publicado el sitio y has pasado el cursor sobre los elementos, pero no ocurre nada.

Comprobación 1: ¿Estás probando en el sitio publicado? El código personalizado no se ejecuta en el lienzo del Diseñador de Webflow. Si estás viendo el lienzo o una URL de vista previa compartida, Tippy.js no se ejecutará. Abre tu dominio publicado o .webflow.io subdominio.

Comprobación 2: ¿El script de inicialización se carga después de la librería? La tippy(...) llamada debe ejecutarse después de las etiquetas de script de Popper.js y Tippy.js. Los tres bloques deben estar en la sección de código del pie de página (Footer), en este orden: primero Popper, segundo Tippy y tercero tu script de inicialización. Si el script de inicialización está en la sección de código del encabezado (Head), Tippy.js aún no existe cuando se ejecuta.

Comprobación 3: Abre la consola del navegador. Haz clic derecho en la página publicada → Inspeccionar → Consola. Si ves tippy is not defined o un error 404 en las URLs de la CDN, uno de los scripts no se cargó. Revisa Configuración del sitio → Código personalizado para confirmar que las etiquetas de script están en el pie de página y que las URLs son correctas.

Algunos elementos tienen tooltips y otros no

La mayoría de los elementos responden, pero unos pocos no hacen nada, a pesar de tener data-tippy-content configurado.

Causa: El nombre del atributo tiene un error tipográfico. Tippy.js selecciona elementos usando '[data-tippy-content]' exactamente. Si falta un solo carácter, el elemento es invisible para el selector.

En el Diseñador de Webflow, abre la Configuración del elemento (Element Settings) en el elemento afectado y verifica que el nombre del atributo personalizado sea data-tippy-content, todo en minúsculas, con guiones y no guiones bajos.

Algo que suele confundir: si el valor está vacío (data-tippy-content sin valor definido), Tippy.js aún se inicializa en el elemento pero muestra un tooltip en blanco. Asegúrate de que cada elemento tenga un valor que no esté vacío.

Los tooltips no se activan en iOS al tocar el elemento

Los tooltips al pasar el cursor funcionan en escritorio. Tocar el mismo elemento en un iPhone o iPad en Safari no hace nada.

Causa: iOS Safari no dispara eventos de toque o clic en elementos que no son interactivos de forma nativa (enlaces, botones, campos de entrada) a menos que el elemento tenga cursor: pointer configurado en CSS. Este es un comportamiento conocido de Safari desde hace mucho tiempo, no una limitación de Tippy.js.

Dado que Tippy.js usa el evento focus para el toque, y focus no se dispara en elementos no interactivos sin esta propiedad CSS, el tooltip nunca se activa.

Solución: Selecciona el elemento activador en el Diseñador de Webflow. En el panel de Estilo, busca la propiedad Cursor en Miscelánea (o escribe "cursor" en la barra de búsqueda) y establécela en Pointer. Publica y prueba en iOS.

Este es el problema móvil más reportado para interacciones de JavaScript personalizadas en elementos no interactivos en Webflow. Cambiar el cursor es una solución de un solo clic.

El tooltip aparece pero está recortado o escondido detrás de otro elemento

El tooltip se activa, pero una parte queda cortada por un contenedor o escondida detrás de un encabezado fijo.

Causa 1: overflow: hidden en un contenedor padre. Tippy.js añade los tooltips a document.body por defecto, lo que debería evitar la mayoría de los recortes. Si el recorte persiste, es probable que se deba a un padre con overflow: hidden o overflow: clip . Revisa los elementos padres en el panel de Estilo.

Causa 2: conflicto de z-index. Tippy.js usa por defecto z-index: 9999. Si un encabezado fijo o una capa modal tiene un z-index mayor, el tooltip se renderizará detrás. Sobrescribe el z-index de Tippy.js en las opciones:

<script>
  tippy('[data-tippy-content]', {
    zIndex: 100000
  });
</script>

Configúralo con un valor superior al de cualquier elemento que cubra el tooltip.

Preguntas frecuentes

¿Funcionan los tooltips de Tippy.js dentro de las listas de colección del CMS de Webflow?

Sí. Añade como atributo personalizado dentro de la plantilla de la lista de colección. Tippy.js se inicializa al cargar la página y detecta todos los elementos coincidentes en el DOM renderizado, incluidos los generados por el CMS. Para contenido dinámico por elemento, vincula un campo del CMS al valor del atributo usando la vinculación de atributos personalizados de Webflow.data-tippy-content

¿Entra Tippy.js en conflicto con las interacciones nativas de Webflow?

No. Tippy.js funciona de forma independiente al sistema de interacciones de Webflow, incluidas las interacciones con GSAP. Ambos pueden actuar sobre el mismo elemento sin problemas. Si una animación al pasar el ratón y un tooltip compiten visualmente, añade un breve a las opciones de inicio de Tippy.js para ajustar el tiempo.delay

¿Funcionan los tooltips en los campos de formulario y etiquetas de Webflow?

Sí. Los campos de entrada, etiquetas, menús desplegables y áreas de texto admiten el . Para los campos de formulario, usa para que el tooltip no quede sobre la etiqueta, y para que solo aparezca cuando el usuario seleccione el campo, no al pasar el ratón.data-tippy-content attributeplacement: 'right'trigger: 'focus'

¿Funcionan los tooltips en el subdominio de pruebas de Webflow?

Sí. El subdominio de pruebas utiliza el mismo HTML publicado que tu dominio personalizado. Tippy.js funciona igual. El lienzo del Diseñador no ejecuta código personalizado. El modo de vista previa tampoco lo hace por defecto, pero puedes activarlo mediante el interruptor "Habilitar código personalizado" en la esquina inferior izquierda de la ventana de vista previa..webflow.io


Última actualización
May 8, 2026
Categoría

Artículos relacionados

Cómo abrir un modal de Typeform al hacer clic en un botón en Webflow sin redirigir a los usuarios
Cómo abrir un modal de Typeform al hacer clic en un botón en Webflow sin redirigir a los usuarios

Cómo abrir un modal de Typeform al hacer clic en un botón en Webflow sin redirigir a los usuarios

Cómo abrir un modal de Typeform al hacer clic en un botón en Webflow sin redirigir a los usuarios

Desarrollo
Por
Colin Lateano
,
,
Leer artículo
La guía definitiva para sincronizar pedidos de Webflow con Airtable mediante Zapier
La guía definitiva para sincronizar pedidos de Webflow con Airtable mediante Zapier

La guía definitiva para sincronizar pedidos de Webflow con Airtable mediante Zapier

La guía definitiva para sincronizar pedidos de Webflow con Airtable mediante Zapier

Desarrollo
Por
Colin Lateano
,
,
Leer artículo
Cómo usar la API de CMS de Webflow para leer, escribir y publicar contenido mediante programación
Cómo usar la API de CMS de Webflow para leer, escribir y publicar contenido mediante programación

Cómo usar la API de CMS de Webflow para leer, escribir y publicar contenido mediante programación

Cómo usar la API de CMS de Webflow para leer, escribir y publicar contenido mediante programación

Desarrollo
Por
Colin Lateano
,
,
Leer artículo
Cómo enviar formularios de Webflow a HubSpot mediante Zapier sin perder datos
Cómo enviar formularios de Webflow a HubSpot mediante Zapier sin perder datos

Cómo enviar formularios de Webflow a HubSpot mediante Zapier sin perder datos

Cómo enviar formularios de Webflow a HubSpot mediante Zapier sin perder datos

Desarrollo
Por
Colin Lateano
,
,
Leer artículo

verifone logomonday.com logospotify logoted logogreenhouse logoclear logocheckout.com logoreddit logothe new york times logoideo logoupwork logodiscord logo
verifone logomonday.com logospotify logoted logogreenhouse logoclear logocheckout.com logoreddit logothe new york times logoideo logoupwork logodiscord logo

Empieza gratis

Prueba Webflow todo el tiempo que quieras con nuestro plan Starter gratuito. Compra un plan de sitio de pago para publicar, alojar y desbloquear funciones adicionales.

Empieza, es gratis
Ver demostración

Prueba Webflow todo el tiempo que quieras con nuestro plan Starter gratuito. Compra un plan de sitio de pago para publicar, alojar y desbloquear funciones adicionales.