Qué es Generador de API Custom Highlights?
La Custom Highlights API proporciona una forma de estilizar rangos de texto en el navegador sin modificar el DOM. En lugar de envolver texto en elementos span con estilos inline, crea objetos Range, los recopila en un objeto Highlight y los registra en el registro CSS.highlights con un nombre. El pseudo-elemento ::highlight() aplica entonces estilos a esos rangos. Debido a que los highlights no modifican el DOM, son ideales para efectos visuales transitorios como resaltado de búsqueda, resultados de búsqueda en página y resaltado de sintaxis, donde desea evitar saturar el DOM con envoltorios span temporales.
Respuesta rápida
La Custom Highlights API estiliza rangos de texto arbitrarios mediante CSS sin modificar el DOM. Use CSS.highlights.set() para registrar highlights nombrados y el pseudo-elemento ::highlight() para aplicar estilos. Soporta color, background-color, text-decoration y text-shadow. Chrome 105+, Safari 18.2+ (Baseline 2026). Ideal para búsqueda en página, resaltado de sintaxis y marcadores de resultados de búsqueda con preservación limpia del DOM.
Last updated: 2026-06-02
Limitaciones
- Soporte del navegador: Chrome 105+, Edge 105+ y Safari 18.2+. Firefox no soporta la API a partir de la versión 138. Se requiere un respaldo basado en DOM (envoltorio span) para Firefox y otros navegadores no compatibles.
- ::highlight() soporta un conjunto limitado de propiedades CSS: color, background-color, text-decoration, text-decoration-color, text-decoration-style, text-shadow y propiedades relacionadas con stroke. Propiedades de layout como font-size, padding, margin o display no pueden aplicarse a highlights.
- Los highlights no se mantienen automáticamente cuando el DOM cambia. Añadir, eliminar o modificar contenido de texto que se superponga con un rango resaltado invalida el highlight. Debe recrear los highlights después de mutaciones DOM que afecten el texto objetivo.
Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub
Cómo usar esta herramienta
- Escriba o pegue el contenido de texto en el editor, o use el texto de muestra proporcionado. La herramienta demuestra cómo se aplican los highlights a rangos dentro del texto.
- Configure el nombre del highlight (usado para el selector CSS ::highlight()) y los patrones de texto o rangos a resaltar. Elija entre coincidencia de palabras, coincidencia regex o especificación manual de rangos.
- Personalice el estilo del highlight: color de fondo, color de texto, radio de borde y opciones de subrayado. El pseudo-elemento ::highlight() soporta un subconjunto de propiedades CSS incluyendo color, background-color, text-decoration y text-shadow.
- Copie el JavaScript generado (para crear y gestionar highlights) y CSS (para estilizarlos). La salida incluye un ejemplo autónomo que puede incrustarse directamente en una página web.
Para qué puedes usarla
- Implementar resaltado de búsqueda en página que marque todas las ocurrencias de un término de búsqueda sin envolver cada coincidencia en un elemento span y sin interrumpir la estructura DOM existente.
- Añadir resaltado de sintaxis a bloques de código en un sitio de documentación creando highlights para palabras clave, cadenas y comentarios basados en coincidencia de patrones regex.
- Construir una herramienta de comparación de texto que resalte palabras añadidas, eliminadas y cambiadas entre dos versiones de texto, cada tipo usando un color diferente de ::highlight().