La versión corta
- prefers-reduced-motion es una media feature de CSS que indica si un visitante ha pedido a su dispositivo que reduzca al mínimo el movimiento no esencial.
- La gente activa el movimiento reducido por muchas razones, entre ellas los trastornos vestibulares, en los que el movimiento en pantalla puede provocar mareos, náuseas o dolor de cabeza.
- Reducir el movimiento no tiene por qué significar eliminarlo: sustituye los desplazamientos grandes, como deslizamientos, zooms y parallax, por fundidos suaves, y detén los bucles que se reproducen solos.
- Un patrón fiable es escribir primero el diseño estático y añadir movimiento solo dentro de una media query prefers-reduced-motion: no-preference.
- Todos los sistemas operativos tienen un ajuste para reducir el movimiento, así que puedes probar tu web activándolo.
En esta página
Prefers reduced motion, que en CSS se escribe prefers-reduced-motion, es una media feature que le dice a tu web que un visitante ha pedido a su dispositivo que reduzca al mínimo el movimiento no esencial. Cuando devuelve reduce, deberías calmar la página: detener los bucles que se reproducen solos, sustituir deslizamientos, zooms y parallax por fundidos suaves o por nada, y mostrar versiones estáticas de los fondos animados. Es poco trabajo y hace que una web sea usable para personas que, de otro modo, la abandonarían encontrándose mal.
Para quién es el movimiento reducido
Algunas personas tienen trastornos vestibulares, que afectan al oído interno y al sentido del equilibrio y del movimiento del cerebro. Para ellas, el movimiento grande en pantalla, sobre todo el parallax, los zooms y los elementos que se deslizan por áreas amplias, puede desencadenar mareos, náuseas, dolor de cabeza o desorientación. Otras encuentran distractor el movimiento constante, tienen migrañas o simplemente prefieren una pantalla más tranquila. Todas usan el mismo interruptor en los ajustes de su dispositivo, y no deberían tener que explicar por qué.
| Dispositivo | Dónde está el ajuste |
|---|---|
| Mac | Ajustes del Sistema, Accesibilidad, Pantalla, Reducir movimiento |
| iPhone y iPad | Ajustes, Accesibilidad, Movimiento, Reducir movimiento |
| Windows 11 | Configuración, Accesibilidad, Efectos visuales, Efectos de animación (desactivados) |
| Android | Ajustes, Accesibilidad, Quitar animaciones (la ruta varía según el fabricante y la versión) |
Qué reducir y qué puede quedarse
Reducir el movimiento no es lo mismo que eliminarlo. El objetivo es quitar el movimiento que simula un desplazamiento por el espacio o que ocupa grandes partes de la pantalla, y detener todo lo que se reproduce solo. Las respuestas pequeñas y rápidas y los fundidos sencillos suelen estar bien, y a menudo ayudan a entender qué ha cambiado.
Reducir o quitar
- El scroll con parallax y el movimiento ligado al scroll
- Grandes deslizamientos, zooms y transiciones de pasar página
- Vídeo con reproducción automática y fondos animados
- Elementos que giran, rebotan o tiemblan
- Carruseles que avanzan solos
Normalmente se puede mantener
- Fundidos de opacidad y cambios de color
- Respuestas pequeñas y rápidas al pasar el cursor o al pulsar
- Indicadores de progreso que muestran que algo está en marcha
- El movimiento que el visitante inicia y controla, como arrastrar
- Imágenes fijas en lugar de imágenes en movimiento
Sustituye en lugar de borrar siempre que puedas. Si un panel suele entrar deslizándose desde un lado, deja que aparezca con un fundido. Si la cabecera reproduce un bucle, muestra un fotograma fijo. El diseño sigue intacto; solo desaparece el desplazamiento.
Cómo respetar prefers-reduced-motion en CSS
El enfoque más sólido es tratar el movimiento como una mejora. Escribe primero el diseño estático y añade el movimiento dentro de una media query que solo se aplica cuando el visitante no tiene ninguna preferencia. Si la consulta no está soportada o el ajuste está activado, la página simplemente queda quieta. La página de MDN sobre prefers-reduced-motion documenta esta media feature.
/* Still by default */
.hero-bg {
background: linear-gradient(135deg, #1e1b4b, #6d28d9 55%, #db2777);
background-size: 100% 100%;
}
.card {
opacity: 0;
transition: opacity 200ms ease-out; /* a fade is fine for everyone */
}
.card.is-visible {
opacity: 1;
}
/* Movement only for visitors with no preference */
@media (prefers-reduced-motion: no-preference) {
.hero-bg {
background-size: 200% 200%;
animation: drift 20s linear infinite alternate;
}
.card {
transform: translateY(24px);
transition: opacity 200ms ease-out, transform 300ms cubic-bezier(0, 0, 0.2, 1);
}
.card.is-visible {
transform: none;
}
}
@keyframes drift {
to { background-position: 100% 100%; }
}Movimiento reducido en JavaScript, vídeo y canvas
El movimiento controlado por scripts, como los efectos de scroll, los fondos en canvas o WebGL y el vídeo, necesita una comprobación en JavaScript. Lee el ajuste con matchMedia y escucha los cambios, porque la gente puede activarlo con tu página abierta.
const query = matchMedia('(prefers-reduced-motion: reduce)')
const video = document.querySelector('.hero-video')
function apply() {
if (query.matches) {
video?.pause() // the poster image stays
stopBackgroundLoop() // your canvas or WebGL loop: draw one frame, then stop
} else {
video?.play().catch(() => {})
startBackgroundLoop()
}
}
query.addEventListener('change', apply)
apply()Los vídeos de fondo y los degradados en vivo son los culpables más habituales porque se reproducen solos. Vídeos de fondo en webs y degradados con shaders muestran dónde va la comprobación.
Qué dicen las WCAG sobre el movimiento
Tres criterios de conformidad de las Pautas de Accesibilidad para el Contenido Web tratan el movimiento. Admitir el movimiento reducido es la forma práctica de cumplir el primero; un control de pausa resuelve el segundo.
| Criterio | Nivel | En resumen |
|---|---|---|
| 2.3.3 Animación desde las interacciones | AAA | El movimiento que provoca una interacción se puede desactivar, salvo que sea esencial |
| 2.2.2 Poner en pausa, detener, ocultar | A | El contenido en movimiento que empieza solo y dura más de cinco segundos se puede pausar u ocultar |
| 2.3.1 Umbral de tres destellos o menos | A | Nada destella más de tres veces en un mismo segundo |
Diseñar versiones estáticas que sigan viéndose bien
La versión estática no debería parecer una versión rota. En los fondos animados, elige el fotograma que mejor se ve por sí solo, no el que casualmente sea el primero. En las entradas, asegúrate de que el diseño final está completo sin ellas. En los bucles hechos con un material de marca, una imagen fija bien elegida del mismo material mantiene intacta la identidad. Los principios del motion design proponen probar cada animación con un solo fotograma en pausa precisamente por esto.
Gradiently sigue la misma regla: los Marks en vivo de la app se quedan quietos cuando tu dispositivo pide movimiento reducido, y cualquier diseño que exportes como bucle también se puede exportar como PNG estático del mismo Mark, para los sitios donde el movimiento no es bienvenido. En los posts para redes, donde no puedes detectar el ajuste, lo más considerado es un movimiento lento y suave; mira fondos degradados animados.
- 1
Activa el ajuste
Activa la reducción de movimiento en tu sistema operativo y recarga la web.
- 2
Revisa todo lo que se mueve
Cabeceras, carruseles, efectos de scroll, vídeos, canvas y estados de carga deberían estar tranquilos.
- 3
Cámbialo con la página abierta
Tus scripts deberían seguir el cambio sin recargar.
- 4
Emúlalo en las herramientas para desarrolladores
Chrome y Firefox pueden emular la media feature, lo que es más rápido mientras trabajas.
- 5
Mira el diseño estático
Asegúrate de que la versión reducida parece intencionada y completa, no algo que no ha terminado de cargar.
Preguntas frecuentes
¿Qué es prefers-reduced-motion?
Es una media feature de CSS que le dice a una web si el visitante ha pedido a su dispositivo que reduzca al mínimo el movimiento no esencial. Sus valores son reduce y no-preference.
¿Movimiento reducido significa quitar todas las animaciones?
No. Quita o sustituye los desplazamientos grandes, el parallax, los zooms y los bucles automáticos, pero los fundidos suaves y las respuestas pequeñas suelen estar bien.
¿Cómo pruebo prefers-reduced-motion?
Activa el ajuste de reducir movimiento en tu sistema operativo y recarga la página, o emula la media feature en las herramientas para desarrolladores de Chrome o Firefox.
¿Las WCAG exigen admitir el movimiento reducido?
El criterio 2.3.3 Animación desde las interacciones, de nivel AAA, pide que el movimiento provocado por una interacción se pueda desactivar, y admitir el movimiento reducido es la forma habitual de cumplirlo. Los criterios de nivel A también cubren pausar el movimiento automático y limitar los destellos.
¿Por qué algunas personas activan el movimiento reducido?
Algunas tienen trastornos vestibulares, en los que el movimiento en pantalla puede provocar mareos o náuseas; otras tienen migrañas, encuentran distractor el movimiento o simplemente prefieren una pantalla más tranquila.
Escrito por Gradiently
El equipo detrás de Gradiently, una herramienta de diseño creada en torno a los Marks: degradados vivos que hacen que todo lo que diseñas parezca tuyo.
Ver nuestro perfil


