Publicado el 26 de octubre de 2026
Explora las guías disponibles en Modern Web Guidance organizadas por categoría.
Diseño visual
Adapta la barra de desplazamiento a las preferencias de contraste alto
Mejora la visibilidad de la barra de desplazamiento para los usuarios que prefieren interfaces de alto contraste
Aplica sombreadores de WebGL al contenido HTML
Aplica efectos visuales personalizados con sombreadores de WebGL al contenido HTML.
Color
Orientación sobre el color para la Web, incluidos los requisitos de contraste, los esquemas de colores claros y oscuros, el modo de colores forzados y la generación de matices y sombras a partir de un color base.
Formas complejas
Recorta elementos y su contenido en cualquier forma libre, como un símbolo, un trazo de pincel o una textura orgánica, para obtener diseños más expresivos.
Decoraciones de texto personalizadas
Agrega decoraciones de texto, como subrayados, líneas superiores, tachados o formas completamente personalizadas, con animaciones de revelación, desplazamientos personalizados, inserciones finales y saltos de tinta flexibles.
Personaliza el color o el grosor de una barra de desplazamiento
Personaliza el color o el grosor de una barra de desplazamiento
Modo oscuro
Implementar la compatibilidad con el modo oscuro de manera que se respete la preferencia de tema claro u oscuro del usuario y se adapte la IU del navegador (p. ej., barras de desplazamiento, controles de formulario, etc.)
Habilita el contenido HTML interactivo en escenas 3D
Integra elementos HTML interactivos en una escena 3D.
Garantiza la legibilidad del texto con colores de fondo dinámicos
Selecciona un color de texto legible con suficiente contraste sobre un color de fondo dinámico.
Líneas de texto de igual ancho
Haz que cada línea de un encabezado o un logotipo de varias líneas tenga el mismo ancho, como en la tipografía de estilo póster o de encabezado apilado. A diferencia del texto justificado, el texto en sí se ajusta al ancho en lugar de estirar el espaciado.
Exportar contenido HTML desde Canvas
Captura y exporta contenido HTML dinámico como imágenes o fotogramas de video desde el lienzo.
Expón el contenido del lienzo a las funciones del navegador
Exponer el contenido renderizado en un lienzo a las funciones del navegador, como las tecnologías de accesibilidad, la traducción o el modo de lectura
Mejora el diseño y la legibilidad del texto
Mejora el diseño y la legibilidad del contenido de texto breve independiente, como los encabezados de no más de unas pocas líneas, habilitando el navegador para que aplique saltos de línea equilibrados de manera uniforme cuando se ajusta el texto.
Alineación precisa del texto
Logra una alineación vertical precisa con texto de cualquier fuente. Por ejemplo, un padding visual exactamente igual por encima y por debajo del texto, o la alineación del texto perfectamente al ras de los íconos o las imágenes adyacentes.
Recortes con formas
Combina varias formas para crear recortes complejos o efectos de "knockout" en los elementos, como agregar una muesca a un elemento.
Atenuación de contenido con bordes suaves
Aplica un gradiente de transparencia a los bordes del contenido para indicar más áreas desplazables o para ocultar el texto con muro de pago.
Cómo aplicar temas a la IU generada por el navegador
Aplica temas a la IU generada por el navegador, como la selección de texto, las barras de desplazamiento, los controles de formulario y los selectores con CSS, en lugar de volver a crearla con elementos personalizados.
Tipografía
Prácticas recomendadas de tipografía para la Web, incluidas las unidades de tamaño de fuente, la altura de línea, el ajuste de texto y el equilibrio, y el tipo fluido que se escala con el viewport.
Efectos visuales
Efectos visuales con CSS, como sombras en capas, modos de fusión, gradientes con interpolación de color predecible y patrones como rayas, tableros de ajedrez, puntos y gráficos circulares creados solo a partir de gradientes.
Resguardos de fuentes visualmente estables
Define estilos de fuente de modo que el texto siga siendo legible y visualmente coherente en caso de que se intercambie la fuente preferida por una de las alternativas (o viceversa).
Fuentes mixtas visualmente estables
Define estilos de fuentes de modo que el texto siga siendo legible y visualmente coherente en situaciones en las que se usan varias fuentes para renderizar un solo bloque de texto.
Contenido con textura visual
Aplica patrones de textura y desgaste realistas a los elementos para darles una apariencia de material orgánico, envejecido o físico.
Átomos de IU
Cómo crear un indicador de progreso de desplazamiento
Crea una barra de progreso de desplazamiento, un indicador de progreso por pasos o cualquier indicador visual que comunique cuánto se desplazó el usuario por una página o sección.
Cómo crear efectos de diapositivas de carrusel
Crea un carrusel de diapositivas con imágenes o con otros elementos visuales, en el que cada diapositiva se anime a medida que entra, se centra o sale de su barra de desplazamiento. Por ejemplo, las diapositivas pueden aparecer o desaparecer gradualmente, rotar, agrandarse o achicarse, etcétera.
Temas claros y oscuros específicos de los componentes
Forzar que ciertos elementos estén en modo claro o modo oscuro (p.ej., bloques de código, reproductores multimedia, etc.) independientemente del esquema de colores de la página
Cuadros de información con reconocimiento de posición
Crea cuadros de información y ventanas emergentes con flechas direccionales (u otro estilo visual) que apunten automáticamente en la dirección correcta cuando el elemento se mueva a una posición de resguardo.
Deslizar para revelar
Crea una función de arrastrar para mostrar que permita al usuario arrastrar hacia abajo en la pantalla para mostrar más contenido, como una barra de búsqueda.
Tablas responsivas
Crea una tabla de datos que presente datos tabulares con una semántica de encabezado adecuada y que siga siendo legible y navegable en pantallas pequeñas y con tecnologías de accesibilidad.
Elementos que reconocen la posición de desplazamiento
Crea botones o widgets flotantes (volver al principio, desplazarse hasta el final, iniciadores de chat, etc.) que aparezcan y desaparezcan según si el usuario se desplazó o no.
Sugerencias de affordance de desplazamiento
Crea superposiciones de sombras de desplazamiento, desvanecimientos de gradientes o indicadores de flechas direccionales que aparezcan solo cuando haya más contenido para desplazarse en esa dirección.
Encabezado que se reduce al desplazarse
Anima de forma fluida un encabezado fijo o una portada de página completa al desplazarte para que se reduzca de forma dinámica, obtenga sombras y transforme su diseño en una distancia de desplazamiento predefinida.
Encabezados fijos que reconocen el estado
Crea encabezados de sección o barras de navegación fijos que se transformen visualmente cuando estén "fijos" en la parte superior, cambiando su esquema de colores o agregando una sombra.
Cómo usar y administrar íconos
Muestra y administra íconos que se pueden configurar y parametrizar desde CSS, se cargan rápido, son nítidos en cualquier resolución y se exponen correctamente a las tecnologías de accesibilidad (o se ocultan de ellas).
Menús desplegables que se adaptan al viewport
Posiciona menús desplegables, menús flotantes o paneles de acciones contextuales vinculados a un botón de activación para que cambien de eje automáticamente en los bordes de la ventana de visualización en lugar de recortarse.
Componentes de IU
Crea una tarjeta
Crea un componente de tarjeta que adapte su presentación al espacio y al contenido disponibles.
Crea un menú desplegable
Compila un componente de menú que muestre una lista de opciones o acciones, con compatibilidad para submenús anidados.
Cómo crear una navegación con Scrollspy
Destacar la sección visible de una página en un menú de navegación
Cómo compilar una barra de progreso con diseño
Crea una barra de progreso con diseño que comunique la finalización de una tarea o un proceso, tanto en estados determinados como indeterminados.
Cómo compilar una tarjeta flotante interactiva
Crea un componente de tarjeta flotante que muestre una vista previa estructurada interactiva de la página a la que se navegará cuando se coloque el cursor sobre un tipo de vínculo determinado (p.ej., un perfil de usuario).
Crea visitas guiadas persistentes por la app
Crea guías de integración persistentes con superposiciones nativas vinculadas que permanezcan abiertas durante la interacción del usuario.
Cómo crear notificaciones de aviso
Crea notificaciones de aviso y superpuestas no intrusivas para mensajes persistentes y apilables, y comunicación de estado.
Controles de activación del modo oscuro
Crea un componente de activación del modo oscuro que permita a los usuarios anular su preferencia de esquema de colores del sistema para el sitio actual.
Dialog
Crea un componente de diálogo modal o no modal que sea accesible, administre el enfoque de forma adecuada y se pueda descartar de la manera que los usuarios esperan en cada plataforma.
Ícono giratorio de carga
Crea un ícono giratorio de carga que comunique el estado de ocupado a todos los usuarios, respete las preferencias de movimiento reducido y se anime de manera eficiente.
Panel lateral de navegación
Crea un componente de panel lateral de navegación que, cuando se active desde un botón de menú, se deslice desde el costado y se superponga sobre el contenido de la página existente, y se deslice hacia afuera cuando se descarte (deslizando el dedo, presionando fuera o presionando Escape).
Círculo de progreso
Crea un componente de círculo de progreso que represente visualmente el estado de finalización de una tarea o un proceso, con compatibilidad para contenido en el centro y un diseño coherente con la marca.
Desglose de pila
Crea una navegación jerárquica de pantalla completa que permita a los usuarios profundizar en vistas anidadas y deslizar el dedo o navegar hacia atrás para regresar, con el historial del navegador sincronizado.
Cómo aplicar diseño a las casillas de verificación
Aplica diseño a las casillas de verificación, incluidos los íconos personalizados, el diseño, los colores y las animaciones de marcar y desmarcar, sin perder la funcionalidad ni la accesibilidad nativas.
Comportamientos de la IU
Agrega efectos de entrada y salida a los elementos a medida que ingresan o salen del puerto de desplazamiento
Crea efectos de aparición gradual, aumento de escala o de otro tipo de revelación compleja en los elementos a medida que entran y salen del puerto de desplazamiento (o viewport) mientras el usuario se desplaza.
Subrayado de la pestaña de posicionamiento de anclaje
Realiza una transición fluida de un elemento entre dos posiciones de elementos de destino. Por ejemplo, mover el subrayado de una pestaña seleccionada entre la pestaña seleccionada anteriormente y la seleccionada actualmente.
Cómo animar la entrada y la salida de elementos
Oculta o muestra elementos de forma fluida a medida que se agregan o quitan del DOM, o cuando se activan o desactivan sus valores de visualización.
Cómo animar elementos hacia y desde la capa superior
Anima elementos como diálogos, ventanas emergentes y cuadros de información sobre la herramienta cuando entran o salen de la capa superior.
Cómo crear un elemento arrastrable
Admite el arrastre para mover un elemento flotante por la página.
Crea un efecto de paralaje al desplazarte
Crea efectos basados en el desplazamiento (como el paralaje) en los que las capas de primer plano y de fondo se muevan a diferentes velocidades, lo que genera una sensación de profundidad a medida que el usuario se desplaza.
Carrusel de momentos destacados de Snap
Destaca visualmente el elemento no interactivo ajustado actualmente en carruseles, galerías o experiencias de deslizamiento de página completa con ajuste de desplazamiento. Por ejemplo, expandir una tarjeta cuando se ajusta o revelar contenido oculto.
Transiciones coherentes entre documentos
Asegúrate de que el estado crítico de la página esté cargado y estable antes de iniciar una transición de vistas entre documentos. Esto significa que se cargan y aplican los estilos CSS críticos, se carga y ejecuta el JavaScript crítico, y se analiza el HTML visible para la vista inicial de la página del usuario antes de que se ejecute la transición.
Cómo crear una animación escalonada
Escalona el tiempo de animación o transición entre los elementos hermanos para que cada uno comience después de un retraso calculado en función de su posición en la lista de hermanos.
Transiciones entre documentos
Crea transiciones fluidas y sin interrupciones entre las navegaciones de página completa, como fundidos cruzados, efectos de revelación personalizados o transformación de contenido de una página a la siguiente.
Acciones de botones personalizados
Conecta de forma declarativa un botón a cualquier elemento para activar acciones personalizadas y específicas de la aplicación con comandos de botón declarativos, comandos de invocador, comandos de botón, comandos personalizados o acciones de activación declarativas.
Control declarativo de diálogos y ventanas emergentes
Activa o desactiva la visibilidad de un diálogo o una ventana emergente desde un botón sin escribir código de JavaScript.
Transiciones de navegación direccional
Anima los cambios de estado visual para reflejar la dirección del flujo de navegación de un usuario, como deslizar contenido nuevo desde la derecha cuando avanza o desde la izquierda cuando regresa a una pantalla anterior.
Transiciones de elementos de grupo
Transiciona un grupo de elementos similares de forma simultánea con la misma lógica de transición, como quitar un producto de un carrito de compras y hacer que todos los demás productos se animen en sus nuevas posiciones.
Destaca rangos de texto
Destaca rangos de texto arbitrarios en una página, como resultados de la búsqueda, errores ortográficos o cursores de edición colaborativa.
Revelación de contenido interactivo
Crea efectos de revelación interactivos, como un foco que sigue el puntero del usuario para descubrir detalles dentro de una imagen o sección de la IU.
Vistas previas de acciones activadas por intereses
Muestra una vista previa en vivo del efecto de un botón cuando un usuario indica interés (p.ej., colocando el cursor sobre él, enfocándolo o manteniéndolo presionado), pero antes de que haga clic.
Cómo descartar un diálogo de forma sencilla
Crear un diálogo modal que se pueda cerrar con un descarte ligero (es decir, haciendo clic o presionando fuera del diálogo)
Movimiento
Anima la IU con transiciones de CSS, animaciones, animaciones basadas en el desplazamiento y transiciones de vistas, mientras mantienes el movimiento en el compositor y respetas las preferencias de movimiento reducido.
Mueve el elemento del DOM sin perder el estado
Mover o cambiar el elemento superior de un elemento del DOM sin perder el estado importante del elemento, como los estados de interactividad (:focus/:active), el estado de carga de
<iframe>, el estado de animación o transición, etcéteraIU de capa superior persistente
Mantener un diálogo modal, un elemento de pantalla completa o un cuadro emergente nativo visiblemente abierto y funcionalmente activo cuando su nodo del DOM subyacente se mueve o se cambia de elemento superior en el DOM
Aceleración basada en la física
Crea efectos de animación y transición personalizados basados en la física, como rebote y resorte, que se sientan más naturales y atractivos que las curvas de aceleración tradicionales.
Cuadro de diálogo para descartar los controles de la plataforma
Crea un diálogo modal que se pueda cerrar a través de acciones del usuario estándar específicas de la plataforma, como presionar la tecla
Esc en plataformas de escritorio o un gesto de "atrás" o "descartar" en plataformas para dispositivos móviles.Evita que se desplace la página que está debajo de un diálogo modal
Evita que la página subyacente se desplace mientras un diálogo modal está abierto.
Transiciones en el mismo documento
Conecta visualmente los elementos persistentes en diferentes estados de página o navegaciones en una aplicación de una sola página (SPA) (p.ej., expandir una miniatura de producto en una imagen hero de sangrado completo) transformando de forma fluida su tamaño, posición o cualquier otra propiedad de diseño.
Transiciones de componentes con alcance
Anima los cambios de estado dentro de un solo componente (una tarjeta, una lista, un panel o cualquier otro subárbol) mientras el resto de la página sigue siendo interactiva y se ejecutan otras transiciones de forma simultánea.
Comentarios en tiempo real sobre el ajuste de desplazamiento
Proporciona comentarios visuales en tiempo real en los elementos de la IU vinculados mientras un usuario se desplaza por el contenido alineado con el ajuste, antes de que se complete el gesto de desplazamiento.
Sincronización del estado de ajuste de desplazamiento
Sincroniza los indicadores de navegación, los paneles de contenido vinculados y el seguimiento de estadísticas con el elemento ajustado de forma activa en un contenedor desplazable.
Scrollytelling
Anima las propiedades visuales de un elemento de destino, como atenuar un fondo, cambiar un color de fondo o crear experiencias de scrollytelling, impulsadas por completo por la posición del puerto de desplazamiento de un elemento completamente diferente.
Buscar contenido oculto
Oculta contenido de la vista con patrones como acordeones, pestañas y secciones "Leer más", y asegúrate de que el texto oculto se muestre durante las búsquedas nativas de "Buscar en la página", permita la indexación de motores de búsqueda, admita vínculos directos de fragmentos de URL y mantenga la accesibilidad de ARIA.
Establece un objetivo de desplazamiento para la renderización inicial
Crea una lista de elementos desplazable (p.ej., un carrusel de imágenes o un hilo de conversación de chat) que se pueda mostrar con un elemento en particular desplazado a la vista en la renderización inicial.
Mostrar información sobre la herramienta cuando se coloca el cursor sobre ella
Muestra información sobre la herramienta o información complementaria cuando un usuario coloca el cursor sobre un elemento interactivo, lo enfoca o lo mantiene presionado, sin necesidad de hacer clic.
Navegación espacial (enfoque del teclado direccional)
Implementar una navegación espacial accesible con las teclas de flecha que funcione correctamente en diferentes modos de diseño (cuadrícula, etc.)
Desliza para sacar
Permite que los usuarios realicen acciones en los elementos de una lista (quitar, archivar, marcar como leído, etc.) con un gesto de deslizamiento horizontal para que puedan procesar las entradas rápidamente sin presionar un control independiente.
Desliza el dedo para revelar
Permite que los usuarios deslicen el dedo de forma horizontal en un elemento de lista o panel de contenido para revelar botones de acción contextuales o un menú lateral sin activar automáticamente una acción.
Cómo activar efectos después de que se completa el desplazamiento programático
Activar efectos visuales, animaciones o cambios de enfoque en un elemento de destino solo después de que se haya completado un desplazamiento programático fluido hacia ese elemento
Desplazamiento bidimensional
Permite que los usuarios se desplacen libremente por superficies bidimensionales, como mapas, imágenes ampliadas, lienzos infinitos o cuadrículas de datos grandes, en ambas direcciones (ya sea en diagonal o cambiando de dirección a mitad del gesto) sin que el gesto se bloquee en un solo eje horizontal o vertical.
Formularios
Selector de selección animado
Crea un componente de selección personalizado cuyo menú desplegable esté animado. Por ejemplo, el menú se atenúa o se desliza para mostrarse, o las opciones se animan cuando se seleccionan.
Formularios coherentes con la marca
Haz coincidir las casillas de verificación, los botones de selección, los controles deslizantes de rango y las barras de progreso con la paleta de colores de tu sitio sin reemplazarlos por componentes personalizados.
Control deslizante de rango coherente con la marca
Aplica diseño a un control deslizante de rango nativo con estados personalizados de pista, control, relleno y enfoque, a la vez que conservas la funcionalidad y la accesibilidad nativas.
Estilo de selección de marca
Crea elementos de selección personalizados cuyo botón, selector, ícono de flecha y marca de verificación coincidan a la perfección con la tipografía, los colores, el espaciado y los tratamientos de bordes de tu marca o sistema de diseño.
Crea un formulario de pago que siga las prácticas recomendadas
Crear un formulario de pago que recopile los detalles de la tarjeta con los valores de autocompletado correctos y compatibilidad con la función Autocompletar
Crea un formulario de acceso que siga las prácticas recomendadas
Crea un formulario de acceso con valores de autocompletado correctos y compatibilidad con la función Autocompletar.
Crea un formulario de registro que siga las prácticas recomendadas
Crea un formulario de registro con valores de autocompletado correctos y compatibilidad con la función Autocompletar.
Cómo compilar controles de interruptor accesibles
Crea un interruptor accesible con el atributo nativo de HTML switch y recurre a una casilla de verificación con diseño cuando no sea compatible.
Crea un formulario de dirección que siga las prácticas recomendadas
Crea un formulario de dirección con los atributos de autocompletado correctos y compatibilidad con la función Autocompletar.
Diseños personalizados de selectores de selección
Crea selectores personalizados cuyas opciones se posicionen de formas únicas o interesantes, en lugar de la lista tradicional de opciones apiladas.
Los campos del formulario se ajustan automáticamente al contenido
Permite que los campos del formulario se expandan y se contraigan para adaptarse a la entrada del usuario, p.ej., a medida que el usuario escribe o selecciona una opción diferente. Aplica límites de tamaño máximo y mínimo para crear campos de formulario dinámicos y responsivos que se ajusten al diseño de la página.
Formularios
Prácticas recomendadas para crear formularios web accesibles, seguros y fáciles de usar. Usa esta guía cuando crees o modifiques formularios, entradas y flujos de envío.
Destaca los campos autocompletados por el navegador que el usuario no haya editado con CSS :autofill
Usa CSS para destacar los campos de formulario que el navegador completó automáticamente y que el usuario no editó.
Envío seguro con la tecla Intro en el IME
Implementa la función de presionar Intro para enviar en áreas de texto y entradas de una sola línea (chat, búsqueda, cambio de nombre intercalado) de forma segura para los usuarios de IME (editor de método de entrada) para evitar que se envíe texto incompleto.
Comentarios sobre los campos obligatorios
Proporciona un mensaje de error para los campos obligatorios del formulario que se omitieron o se dejaron vacíos solo después de la interacción del usuario, para evitar errores preventivos y garantizar que los comentarios sean oportunos y relevantes para el contexto del flujo del usuario.
Selector de contenido multimedia enriquecido (selección personalizable)
Crea un componente de selección personalizado cuyas opciones puedan contener un formato HTML complejo (p.ej., imágenes, íconos y otros formatos enriquecidos) en lugar de solo texto sin formato.
Interacción con el menú de selección
Valida que se haya elegido una opción no predeterminada en un menú de selección solo después de que el usuario haya interactuado con el control.
Verificación de formularios con OTP por SMS
Verifica los números de teléfono de los usuarios y las contraseñas de un solo uso que se envían por SMS con la extracción automática de códigos y la entrada de formularios accesible.
Valida la entrada después de la interacción
Muestra comentarios de validación de los campos del formulario (p.ej., requisitos de complejidad de la contraseña o formato de correo electrónico) solo después de que el usuario haya finalizado su interacción inicial, lo que evita errores prematuros durante la carga de la página o mientras el usuario escribe.
HTML
Componentes web accesibles
Haz que los elementos personalizados sean accesibles de forma predeterminada, establece roles y el estado de ARIA a través del mixin de ARIA de ElementInternals, administra el enfoque con delegatesFocus y mantén las relaciones de ARIA dentro de una sola raíz de sombra.
Elementos personalizados
Define, registra y administra el ciclo de vida de los elementos personalizados autónomos, lo que incluye las reglas de constructores, las devoluciones de llamada de ciclo de vida, los tiempos de actualización, el reflejo de atributos y propiedades, y las convenciones de nombres.
Elementos personalizados asociados a formularios
Haz que un control personalizado participe de forma nativa en los formularios con formAssociated y ElementInternals, enviando su propio valor, integrándose con la validación de restricciones y reaccionando al restablecimiento, la inhabilitación y el restablecimiento del estado.
HTML
Lineamientos orientados a la acción para la arquitectura moderna de HTML, la semántica, las APIs interactivas nativas (Dialog, Popover, Details), la administración del enfoque y la priorización de recursos. Usa esta guía cuando estructures documentos web, implementes superposiciones nativas o quieras optimizar el orden de carga de los recursos.
Renderización previa de elementos personalizados
Renderiza un elemento personalizado en el servidor y, luego, hidrátalo en su lugar sin volver a renderizarlo ni mostrar un destello de contenido sin diseño.
Shadow DOM, plantillas y ranuras
Encapsula el DOM y los estilos de un componente con Shadow DOM, construye el árbol de manera eficiente con plantillas HTML y proyecta el contenido del consumidor con ranuras.
Cómo aplicar diseño a los componentes web
Aplica diseño más allá del límite de sombra con selectores :host, propiedades heredadas y personalizadas para temas, ::slotted y ::part, y capas en cascada y consultas de contenedor dentro de los componentes.
Orientación sobre los componentes web
Orientación y principios transversales para crear y usar componentes web, que abarcan elementos personalizados, Shadow DOM, plantillas y ranuras, Shadow DOM declarativo, diseño en el límite de sombra, elementos personalizados asociados a formularios y requisitos de accesibilidad. Usa esta guía cuando compiles componentes de IU reutilizables, sistemas de diseño o elementos personalizados renderizados por el servidor.
CSS
Cómo animar a tamaños intrínsecos
Anima de forma fluida los componentes interactivos (como acordeones, menús y tarjetas expandibles) hacia y desde sus dimensiones naturales.
Cómo calcular con tamaños intrínsecos
Calcula el tamaño de un elemento en función de su tamaño intrínseco y, al mismo tiempo, asegúrate de que se ajuste a las restricciones de diseño dadas.
Diseño basado en el estado de los elementos secundarios
Compila un componente que cambie su diseño según el estado de uno de sus elementos secundarios. Por ejemplo, un componente que se renderiza en modo claro o modo oscuro según si se marca (o no) un botón de activación de tema.
Aplica CSS de forma condicional según la compatibilidad con las reglas arroba
Aplica de forma condicional ciertas reglas o declaraciones de CSS solo si el navegador admite una regla arroba determinada.
Estilo basado en el contenido
Compilar un componente que cambie su diseño según si contiene elementos secundarios específicos (o no) Por ejemplo, si el componente contiene una imagen, usa un diseño de varias columnas; de lo contrario, usa un diseño de una sola columna de forma predeterminada.
Diseños de CSS y diseño responsivo
Diseños de CSS modernos, como flexbox, cuadrícula, subcuadrícula, consultas de contenedores, posicionamiento de anclas y tamaño intrínseco. Usa esta habilidad cuando diseñes componentes de IU o diseños de página responsivos.
CSS: Arquitectura moderna
Lineamientos orientados a la acción para la arquitectura moderna de CSS, incluidos la cascada, los selectores, el alcance, el anidamiento y los tokens de diseño. Usa esta guía cuando crees estilos o administres sistemas de diseño.
Reactividad de los tokens de diseño
Define tokens de diseño de orden superior, como modos de densidad (compacto, cómodo, espacioso) o temas, y haz que los componentes descendientes reaccionen a los cambios de forma directa y de manera adecuada para el componente.
Escalamiento fluido
Escalar elementos como el tamaño de la fuente, el espaciado y los tamaños de los medios de forma fluida según el tamaño del contenedor superior, en lugar de usar puntos de interrupción fijos
Propiedades de transformación individuales
Anima o anula propiedades de transformación de CSS individuales (p.ej., translate, rotate, scale) de forma independiente de otras propiedades de transformación en un solo elemento.
Control de recorte de desbordamiento
Ajusta el límite de recorte visible de un elemento para alinearlo con el borde del contenido, el borde del padding o el borde del margen, o bien un desplazamiento especificado desde cualquiera de estos, lo que ofrece un control más detallado sobre cómo se recorta el contenido.
Reduce la repetición de estilos con funciones de CSS
Reduce la repetición excesiva de estilos encapsulando la lógica de diseño compleja o dinámica en funciones reutilizables (como una función que calcula un gradiente en función de un conjunto de parámetros de entrada).
Diseño responsivo
Compila una IU que se adapte al tamaño del contenedor y del viewport, incluidas las consultas de contenedores, las unidades de viewport dinámicas, las relaciones de aspecto y la tipografía responsiva.
Combinaciones de selectores y reglas @
Segmenta elementos en función de la intersección o unión de selectores y reglas @ condicionales, a la vez que minimizas la repetición.
Adaptación de componentes semánticos
Crea componentes que adapten la lógica visual según el contexto semántico con consultas de estilo de contenedor de CSS.
Estilo adaptado al tamaño
Compilar un componente cuyos estilos puedan depender de forma condicional de su propio ancho o altura, en lugar del ancho o la altura del viewport Por ejemplo, un componente de tarjeta que puede cambiar sus diseños según su tamaño o un botón de llamado a la acción que puede mostrar texto de ayuda de forma condicional según su ancho.
Cómo aplicar diseño al elemento superior con :has()
Establece el estilo de los elementos superiores de un campo de formulario (p.ej., etiquetas o conjuntos de campos) cuando el campo no sea válido.
Cómo aplicar diseño a elementos hermanos según el recuento y el índice
Crea espectros visuales dinámicos o disposiciones de diseño que se adapten automáticamente a la cantidad de elementos de un grupo.
JavaScript
Calcula diferencias de eventos y aplica formato a las duraciones con Temporal
Calcula el tiempo transcurrido o restante entre fechas y horas, equilibra las unidades de duración y aplica formato a las duraciones localizadas legibles por humanos con Temporal.Duration y Intl.DurationFormat.
Captura datos independientes de la ubicación y fechas parciales con Temporal
Modela fechas de calendario independientes de la ubicación, horas de reloj, fechas parciales (cumpleaños recurrentes, vencimientos de tarjetas de crédito) y períodos mensuales recurrentes sin desviación de zona horaria con los tipos Plain de Temporal.
Coordinación de eventos globales con Temporal
Programa reuniones o eventos futuros vinculándolos explícitamente a una zona horaria geográfica de la IANA para que las horas de los eventos sigan siendo precisas, independientemente de las transiciones del horario de verano (DST), las horas "omitidas" o "repetidas" durante los cambios de hora.
Cómo ordenar marcas de tiempo de alta precisión con Temporal.Instant
Analiza, ordena y mide intervalos entre marcas de tiempo ISO 8601 de menos de un milisegundo o de un nanosegundo sin colisiones de truncamiento de fecha con Temporal.Instant.
Compatibilidad con sistemas de calendario globales con Temporal
Muestra y calcula fechas en sistemas de calendario no gregorianos (p.ej., islámico, hebreo o chino) con precisión para los usuarios internacionales.
WebAssembly
Rendimiento
Divide las tareas largas
Divide el procesamiento síncrono pesado (cálculos complejos o bucles largos) o las actualizaciones del DOM para que el navegador pueda controlar la entrada del usuario y volver a pintar la pantalla.
Calcula el tiempo total en primer plano
Calcula el tiempo total que un usuario realmente pasó viendo una página, excluyendo los períodos en los que la pestaña estuvo en segundo plano.
Dependencias asíncronas condicionales
Carga o inicializa dependencias asíncronas de forma condicional (como importar polyfills para funciones web faltantes) sin necesidad de una organización compleja en todas las dependencias de secuencias de comandos de una página.
Cómo agrupar y procesar por lotes varios eventos de estadísticas
Agrupa y limita la frecuencia de varios eventos de estadísticas, telemetría y Core Web Vitals en una sola baliza para minimizar la contención de red y reducir la carga del servidor, sin dejar de entregar actualizaciones en tiempo real.
Difiere la renderización de contenido pesado
Reduce los tiempos de renderización en las páginas web con mucho contenido (p.ej., páginas con feeds largos, muchos artículos o paneles complejos) aplazando la renderización de cualquier contenido que no sea visible de inmediato para el usuario.
Cómo posponer el trabajo hasta que finalice el desplazamiento
Difiere las operaciones costosas, como las actualizaciones del DOM, la recuperación de datos, el seguimiento de estadísticas o el nuevo cálculo del diseño, hasta que se complete el desplazamiento para mantener un rendimiento de desplazamiento fluido.
Publica imágenes decorativas optimizadas
Proporciona imágenes decorativas optimizadas (como fondos, íconos de IU o máscaras complejas) con formatos de imagen de nueva generación (como AVIF o WebP) y varias densidades de píxeles (como 1x y 2x) para que el navegador pueda negociar de forma dinámica la mejor combinación de tamaño de archivo y calidad visual según las capacidades del dispositivo del usuario.
Quita prioridad a las recuperaciones en segundo plano
Quita prioridad a las recuperaciones de datos en segundo plano que se realizan con la API de Fetch para evitar la contención de red con las solicitudes iniciadas por el usuario.
Detecta el estado de visibilidad inicial
Determina de manera confiable si una página se cargó inicialmente en segundo plano, incluso en los casos en que la secuencia de comandos se carga de forma asíncrona después de que el usuario puso la página en primer plano.
Procesamiento en segundo plano eficiente
Conserva los recursos del sistema y la duración de la batería pausando la ejecución de JavaScript en segundo plano (como las animaciones de
<canvas>, la renderización de WebGL o el sondeo de datos de WebSocket de alta frecuencia) cuando el componente está fuera de la pantalla y, luego, reanúdalos justo a tiempo cuando vuelvan a aparecer.Transiciones de vistas de SPA más rápidas con el almacenamiento en caché de estado
Habilita transiciones más rápidas de regreso a las vistas visitadas anteriormente en una aplicación de una sola página (SPA) conservando su estado estructural del DOM en lugar de destruirlas y volver a crearlas en cada navegación.
Pruebas A/B del cliente sin parpadeos
Publicar y renderizar pruebas A/B, pruebas multivariables o cualquier otro experimento con JavaScript del cliente para alterar o insertar HTML, CSS y JavaScript sin que el contenido original se muestre primero antes de parpadear o destellar para mostrar el contenido del experimento
Identifica las causas de una INP deficiente
Identifica el código JavaScript de ejecución lenta y otras causas de la baja capacidad de respuesta de Interaction to Next Paint (INP).
Identifica el código JavaScript de ejecución pesada
Identifica las secuencias de comandos más responsables de los fotogramas de animación largos
Mejora el rendimiento de carga de la página siguiente
Mejora el rendimiento de la carga de páginas recuperando o renderizando previamente las páginas que es probable que el usuario visite a continuación.
Carga diferida de video y audio
Difiere la descarga de recursos de video y audio fuera de pantalla, incluidas las imágenes de póster de video y los datos multimedia precargados, hasta que el reproductor multimedia se acerque al viewport para conservar el ancho de banda y reducir la contención de red durante la carga inicial de la página.
Mide el tiempo de renderización de la interacción y la navegación suave
Mide el tiempo que tardan las interacciones de los usuarios y las navegaciones del cliente en renderizar nuevas actualizaciones de contenido en la pantalla.
Optimiza la prioridad de las imágenes
Optimiza la prioridad de carga de las imágenes candidatas para Largest Contentful Paint (LCP) y quita prioridad a las imágenes no esenciales para reducir los retrasos en la carga de recursos esenciales.
Optimiza la prioridad de precarga
Optimiza la prioridad relativa del contenido precargado para reducir los retrasos en la carga de recursos críticos.
Optimiza la prioridad de las secuencias de comandos
Optimiza la prioridad de carga de las secuencias de comandos potenciando las asíncronas críticas y quitando prioridad a las no esenciales o las que se encuentran al final del cuerpo para mejorar la secuenciación y reducir los retrasos.
Optimiza las interacciones en diseños complejos
Haz que las interacciones sean más rápidas y responsivas (reduciendo las puntuaciones de Interaction to Next Paint [INP]) evitando que se vuelva a calcular el diseño en diseños complejos, como paneles con muchos datos o cuadrículas de estilo de hoja de cálculo.
Transmisión de HTML desordenada (OOO)
Actualiza de forma declarativa una página con contenido que se transmite más adelante en el mismo documento HTML o a través de APIs de JavaScript imperativas.
Rendimiento
Lineamientos prácticos para optimizar las aplicaciones web modernas. Usa esta guía cuando audites el rendimiento, optimices las métricas de carga, corrijas las interacciones lentas y optimices Core Web Vitals (LCP, INP y CLS).
Mide de forma confiable las estadísticas y la telemetría de las sesiones completas
Realiza un seguimiento confiable de las estadísticas, las Core Web Vitals, los errores y los datos de telemetría durante toda la visita del usuario a la página, y aplaza el envío de los datos hasta que el usuario abandone la página.
Pseudoelementos optimizados para la resolución
Usa imágenes optimizadas para la resolución en pseudoelementos de CSS (como
::before y ::after) para reducir la cantidad de nodos del DOM.Programar tareas por prioridad
Programa tareas con diferentes prioridades para garantizar que el trabajo crítico se ejecute primero mientras se pospone el trabajo en segundo plano.
Accesibilidad
Lineamientos de programación para la accesibilidad
Lineamientos de programación prácticos para crear aplicaciones web accesibles, que abarcan HTML semántico, administración de enfoque, formularios, contenido multimedia y pruebas. Usa esta habilidad cuando audites o implementes funciones de accesibilidad, navegación con teclado o ARIA.
Anuncio de error accesible
Sincroniza los estados de accesibilidad programáticos (como aria-invalid) con el estado visual :user-invalid para garantizar que los usuarios de lectores de pantalla reciban comentarios de error solo después de la interacción, lo que refleja la experiencia visual.
Contenido generado accesible
Usa el contenido generado por CSS (
::before/::after) de manera que siga siendo accesible, incluido el texto alternativo para el contenido decorativo.Respeta la escala de texto del sistema operativo
Respeta la preferencia de escala de texto del sistema operativo para una página, de modo que los tamaños de fuente, el diseño y las mediciones basadas en rem sigan la configuración de accesibilidad del usuario.
Seguridad
Compara y valida los orígenes y sitios web
Compara y valida de forma segura los orígenes web y los sitios en mensajes y URLs entre documentos sin un análisis de cadenas propenso a errores.
Encripta datos del cliente con WebCrypto
Establece secretos compartidos con el encapsulamiento de clave pública o el acuerdo de claves, incluida la protección híbrida y poscuántica, y encripta los datos sensibles en el navegador con la encriptación autenticada.
Acceso a la red local
Accede a los recursos de la red local o la interfaz de bucle invertido de un usuario desde una aplicación web pública.
Autenticación con llave de acceso
Autentica a un usuario recurrente con una llave de acceso para el acceso principal.
Creación condicional de llaves de acceso (promoción posterior al acceso)
Registra de forma silenciosa una llave de acceso para un usuario existente después de que acceda correctamente con una contraseña.
Administración de llaves de acceso
Permite que los usuarios vean y administren las llaves de acceso registradas en su cuenta.
Reautenticación con llave de acceso
Verifica la identidad de un usuario que accedió con sus llaves de acceso existentes antes de realizar una acción sensible.
Registro de llaves de acceso
Registra una llave de acceso para una cuenta de usuario existente.
Orientación sobre las llaves de acceso
Orientación integral y principios transversales para implementar WebAuthn y llaves de acceso en aplicaciones web. Usa esta guía cuando gestiones el registro, la autenticación, la administración o la nueva autenticación de llaves de acceso.
Evita los ataques de XSS basados en DOM con Trusted Types
Evita los ataques de XSS basados en el DOM definiendo una política de Trusted Types para limpiar el HTML no confiable, usando la política cuando se escribe en receptores del DOM como innerHTML y aplicando Trusted Types a través de la Política de seguridad del contenido.
Acceso rápido con el modo de IU inmediato
Autentica a los usuarios recurrentes en el lugar con sus llaves de acceso o contraseñas guardadas antes de navegar a una página de acceso o interrumpir su flujo de trabajo.
Restringe las conexiones de red salientes con listas de entidades permitidas de conexión
Restringe una página o un trabajador para que se comunique solo con una lista de entidades permitidas explícita de extremos de red para evitar solicitudes de terceros no autorizadas y el robo de datos del cliente.
Cómo limpiar HTML no confiable
Analiza y muestra de forma segura el contenido HTML no confiable de la entrada del usuario quitando los elementos y atributos no seguros.
Protege los recursos secundarios externos con la integridad de recursos secundarios, CORS y la política de referencia
Verifica la integridad criptográfica de las secuencias de comandos, las hojas de estilo, las fuentes y las imágenes externas cargadas desde orígenes de terceros, y controla si esas solicitudes envían credenciales o URLs de referencia.
Firma y verifica datos con WebCrypto
Firma y verifica mensajes, tokens o artefactos en el navegador con claves asimétricas clásicas o resistentes a la computación cuántica (poscuánticas) para garantizar la integridad y autenticidad de los datos.
Verifica la propiedad de la dirección de correo electrónico
Verifica que un usuario sea propietario de una dirección de correo electrónico durante la creación, el acceso o la recuperación de la cuenta sin enviar una contraseña de un solo uso ni un correo electrónico con un vínculo mágico.
Seguridad web
Lineamientos de seguridad preventiva para desarrolladores web (XSS, CSP, cookies y aislamiento de origen cruzado) Usa esta habilidad para guiar el proceso de auditoría, prueba e implementación de políticas de seguridad de forma segura.
Privacidad
AWP
IA integrada
Reconocimiento de idioma
Detecta el idioma del contenido generado por usuarios o del contenido del sitio que ya está presente.
Modelo de lenguaje
Ejecuta inferencias de lenguaje natural integradas en el dispositivo en el navegador con la API de Prompt, con resultados de transmisión, respuestas JSON estructuradas y administración de sesiones de varios turnos.
Summarizer
Resume contenido de texto con la API de Summarizer integrada en el dispositivo.
Traductor
Traduce texto entre idiomas con la API de Translator integrada en el dispositivo.
WebMCP
Formularios de agentes
Exponer la funcionalidad del cliente como herramientas para los agentes de IA anotando formularios HTML estándar con atributos de WebMCP
Herramientas de JavaScript para agentes
Registra de forma programática funciones de JavaScript del cliente como herramientas para agentes de IA con la API imperativa de WebMCP.
WebMCP (Protocolo de contexto del modelo web)
Usa esta guía para implementar WebMCP (Protocolo de contexto del modelo web) en aplicaciones de navegador, lo que expone la funcionalidad del cliente como herramientas para los agentes de IA a través de APIs declarativas o imperativas.