Mercado
Precios
Iniciar sesiónEmpezar
Guía prácticaCSS y web
CSS y web

Backdrop filter en CSS: cristal esmerilado que sigue siendo rápido

El cristal esmerilado son tres líneas de CSS y aun así puede hacer que un buen móvil vaya a tirones. Aquí tienes el código, lo que cuesta dibujarlo y las alternativas que mantienen el texto legible cuando el desenfoque no llega.

GradientlyCuenta verificada de Gradiently·1 de octubre de 2026·6 min de lectura
Portada: Acoustic Sound · GR·NF1S·69

La versión corta

  • El backdrop filter de CSS aplica efectos como el desenfoque a la zona que queda detrás de un elemento, no al propio elemento.
  • Un elemento necesita un fondo parcialmente transparente para que se vea el backdrop filter; sobre un fondo sólido el efecto queda oculto.
  • El coste del desenfoque crece con el radio y con el tamaño de la zona desenfocada, y se vuelve a pagar cada vez que se mueve el contenido de detrás.
  • Safari necesitó el prefijo -webkit-backdrop-filter hasta la versión 18, así que incluir ambas líneas sigue siendo la opción segura.
  • Una buena alternativa es un fondo más opaco dentro de una consulta @supports, para que el texto siga siendo legible cuando falta el desenfoque.
En esta página
La receta básica del cristal esmeriladoQué pueden hacer las funciones de backdrop-filterRendimiento del backdrop filterPor qué backdrop-filter no funcionaUna alternativa que mantiene el texto legibleCuándo no necesitas ningún desenfoque

Un backdrop filter en CSS aplica un efecto gráfico, normalmente un desenfoque, a lo que queda detrás de un elemento. Escribe backdrop-filter: blur(12px) en un elemento con fondo parcialmente transparente y la página de debajo se suaviza: es el efecto de cristal esmerilado que se usa en barras de navegación, paneles y tarjetas. Funciona en todos los navegadores actuales. El oficio está en mantener pequeña la zona desenfocada, moderado el radio y legible la alternativa.

La receta básica del cristal esmerilado

Tres cosas hacen el cristal: un relleno translúcido para que se vea lo de detrás, el propio desenfoque y un borde tenue para que el panel tenga forma. La mayoría añade además un pequeño aumento de saturación, porque desenfocar promedia los colores y los deja más grises de lo que esperas.

css
.glass {
  background: rgb(255 255 255 / 0.14);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgb(255 255 255 / 0.22);
  border-radius: 16px;
}
Un panel de cristal claro para una página oscura o colorida. Deja primero la línea con prefijo para que la propiedad estándar gane donde se entienden las dos.

El cristal solo parece cristal cuando detrás hay algo que merezca la pena desenfocar. Sobre una página gris plana, el panel simplemente se ve apagado. Ponlo sobre una fotografía o un degradado rico, como explica con más detalle glassmorphism.

Brasa y violeta sobre medianocheradial-gradient(circle at 20% 25%, #f97316 0%, transparent 40%), radial-gradient(circle at 80% 70%, #7c3aed 0%, transparent 45%), linear-gradient(160deg, #0f172a 0%, #1e1b4b 100%)
Un fondo con manchas de color bien definidas. El desenfoque convierte las manchas en luz suave detrás del panel, que es todo el sentido del efecto.

Qué pueden hacer las funciones de backdrop-filter

La propiedad acepta las mismas funciones que filter, y puedes encadenarlas en una sola declaración. Se aplican en orden, de izquierda a derecha, así que blur() seguido de saturate() se comporta distinto que al revés. La lista completa está en MDN.

blur()blur(12px)

Sirve para

Cristal esmerilado, desenfocar lo que hay tras un diálogo
saturate()

Ejemplo

saturate(160%)

Sirve para

Devolver el color después de que el desenfoque lo agrise
brightness()

Ejemplo

brightness(0.7)

Sirve para

Oscurecer una zona recargada detrás de un texto claro
contrast()

Ejemplo

contrast(0.8)

Sirve para

Calmar una foto ruidosa bajo un panel
grayscale()

Ejemplo

grayscale(1)

Sirve para

Apagar la página detrás de un modal
nonenone

Sirve para

Desactivar el efecto en una alternativa o una media query
FunciónEjemploSirve para
blur()blur(12px)Cristal esmerilado, desenfocar lo que hay tras un diálogo
saturate()saturate(160%)Devolver el color después de que el desenfoque lo agrise
brightness()brightness(0.7)Oscurecer una zona recargada detrás de un texto claro
contrast()contrast(0.8)Calmar una foto ruidosa bajo un panel
grayscale()grayscale(1)Apagar la página detrás de un modal
nonenoneDesactivar el efecto en una alternativa o una media query
Las funciones que de verdad vas a usar. brightness() por debajo de 1 suele ser mejor herramienta de legibilidad que un desenfoque más fuerte.

Rendimiento del backdrop filter

El desenfoque es una de las cosas más caras que dibuja un navegador. Para desenfocar una zona tiene que leer cada píxel detrás del elemento, muestrear sus vecinos hasta el radio del desenfoque y componer el resultado, y repite ese trabajo cada vez que cambia algo detrás del panel. Una cabecera fija sobre una página que se desplaza vuelve a dibujar su desenfoque en cada fotograma del scroll.

El coste depende de dos números que tú controlas: la superficie del elemento y el radio. Una cabecera de 64 píxeles desenfocada a 12px es barata en casi cualquier dispositivo. Una capa a pantalla completa desenfocada a 40px sobre un vídeo puede perder fotogramas en un móvil de gama media. El panorama completo está en rendimiento de los degradados CSS.

Lento

  • Desenfocar toda la ventana detrás de un modal
  • Radios de 30px o más
  • Animar el radio del desenfoque al abrir y cerrar
  • Paneles de cristal dentro de paneles de cristal
  • Desenfoque sobre un vídeo que se reproduce solo

Rápido

  • Desenfocar solo la barra, la tarjeta o el panel que lo necesita
  • Radios de entre 8px y 20px
  • Hacer aparecer el panel con la opacidad, con el desenfoque fijo
  • Una sola capa de cristal, con rellenos sólidos dentro
  • Desenfoque sobre imágenes fijas y degradados

Mídelo en un móvil real

En las herramientas para desarrolladores de Chrome, abre el panel Rendering, activa el resaltado de pintado y desplázate. Si el cristal parpadea en cada fotograma y el panel Performance muestra fotogramas perdidos, reduce la superficie o el radio antes que nada.

Por qué backdrop-filter no funciona

Cuando el desenfoque parece no hacer nada, la causa casi siempre está en una lista corta.

  1. 1

    Comprueba que el fondo sea transparente

    Un background: #fff sólido tapa por completo el fondo desenfocado. Usa un valor con alfa como rgb(255 255 255 / 0.15).

  2. 2

    Añade el prefijo de Safari

    Safari solo acepta la propiedad sin prefijo desde la versión 18. Los iPhone más antiguos siguen necesitando -webkit-backdrop-filter.

  3. 3

    Busca una raíz de backdrop por encima

    Un elemento padre con filter, opacity por debajo de 1, una máscara o su propio backdrop filter limita lo que el hijo puede ver. El hijo entonces solo desenfoca ese padre, lo que a menudo parece que no hay desenfoque.

  4. 4

    Vigila los hijos fijos

    Como filter, un backdrop filter convierte el elemento en el bloque contenedor de los hijos con posición fija y absoluta. Un menú fijo dentro de una cabecera de cristal se colocará respecto a la cabecera, no a la ventana.

  5. 5

    Asegúrate de que haya algo detrás

    Un desenfoque sobre un color plano es invisible. Desplaza el panel sobre una imagen para confirmar que funciona.

Una alternativa que mantiene el texto legible

Los paneles translúcidos se diseñan contando con el desenfoque. Sin él, un relleno blanco al 14 por ciento sobre una foto recargada deja el texto sobre la propia foto, y el contraste se hunde. Escribe primero la versión legible y después mejórala donde el navegador pueda desenfocar.

css
/* Works everywhere: opaque enough to read on its own */
.glass {
  background: rgb(15 23 42 / 0.86);
  color: #f8fafc;
}

/* Upgrade where blur is available */
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .glass {
    background: rgb(15 23 42 / 0.45);
    -webkit-backdrop-filter: blur(14px) saturate(150%);
    backdrop-filter: blur(14px) saturate(150%);
  }
}

/* Respect people who ask for less transparency, where supported */
@media (prefers-reduced-transparency: reduce) {
  .glass {
    background: rgb(15 23 42 / 0.94);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}
Mejora progresiva para el cristal. El soporte de prefers-reduced-transparency todavía es limitado, así que trata ese bloque como una cortesía más que como una garantía.

Comprueba el contraste en el peor punto detrás del panel, no en la media. Un titular blanco sobre un cristal que se desplaza por un cielo luminoso puede quedar muy por debajo de las relaciones de contraste de color y accesibilidad. Oscurecer con brightness(0.7) suele arreglarlo de forma más fiable que desenfocar más.

Cuándo no necesitas ningún desenfoque

Mucho cristal esmerilado existe solo para que las palabras se lean sobre un fondo recargado. Si el fondo lo diseñas tú, uno más tranquilo resuelve el problema sin coste de renderizado. Un degradado suave y de bajo contraste detrás de una cabecera no necesita panel; consulta fondos para la cabecera de una web y fondos desenfocados, donde el desenfoque se integra una vez en la imagen en lugar de calcularse en cada fotograma.

Novedades
Colección de primavera, ya disponible.
Gradiently · @gradiently

Palabras directamente sobre un fondo animado: aquí es donde la gente recurre a un panel de cristal.

Novedades
Colección de primavera, ya disponible.
Gradiently · @gradiently

El mismo fondo calmándose detrás de las palabras, sin panel, sombra ni desenfoque.

Ese segundo enfoque es cómo resuelve Gradiently la legibilidad: un Mark sabe dónde están las palabras y desplaza detrás de ellas su zona más tranquila y con mejor contraste, así que nunca necesitas una caja ni un desenfoque para rescatar un titular.

Diseña con un degradado vivo

Publicaciones, historias, diapositivas y banners en todos los tamaños, con texto que siempre se lee.

Empezar a diseñar, gratis

Preguntas frecuentes

¿Qué diferencia hay entre filter y backdrop-filter?

filter cambia el elemento y su contenido. backdrop-filter cambia solo lo que se ve detrás del elemento, a través de su fondo transparente.

¿Por qué no se ve el desenfoque de mi backdrop-filter?

Normalmente porque el fondo del elemento es totalmente opaco, porque Safari necesita el prefijo -webkit- o porque un padre con filter, opacity o una máscara limita lo que el elemento puede ver.

¿Backdrop-filter es malo para el rendimiento?

Puede serlo. El coste crece con la zona desenfocada y el radio, y se vuelve a pagar cada vez que se mueve el contenido de detrás, así que mantén pequeños los paneles de cristal y moderados los radios.

¿Sigo necesitando -webkit-backdrop-filter?

Safari acepta la propiedad sin prefijo desde la versión 18, pero los iPhone antiguos siguen en uso, así que incluir ambas líneas sigue siendo sensato.

¿Qué valor de desenfoque queda mejor para el cristal esmerilado?

Entre 8px y 20px encaja en la mayoría de las interfaces. Añade saturate() por encima del 100% para recuperar el color que quita el desenfoque.

Compartir esta guía

Escrito por GradientlyCuenta verificada de 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

En esta página

La receta básica del cristal esmeriladoQué pueden hacer las funciones de backdrop-filterRendimiento del backdrop filterPor qué backdrop-filter no funcionaUna alternativa que mantiene el texto legibleCuándo no necesitas ningún desenfoque

Compartir esta guía

Siguiente en CSS y web

text-shadow en CSS: sintaxis, ejemplos y mejores opciones

Sigue leyendo

Todas las guías de CSS y web
Degradados

Glassmorphism y degradados: una guía práctica

6 min de lectura

El cristal esmerilado sobre un degradado luminoso es uno de los efectos más atractivos del diseño de interfaces, y uno de los más fáciles de dejar ilegible. Así consigues la belleza sin perder las palabras.

CSS y web

Rendimiento de los degradados CSS: ¿ralentizan una web?

7 min de lectura

Un degradado CSS estático es casi gratis. Los costes vienen de lo que se hace con los degradados: desenfoques enormes, fondos que se repintan al hacer scroll y animaciones que nunca paran. Así se distingue una cosa de otra.

Fondos

Fondos desenfocados: enfoque suave bien hecho

5 min de lectura

El desenfoque empuja un fondo hacia atrás para que el sujeto o las palabras pasen al frente. Muy poco parece accidental, y demasiado en el sitio equivocado parece barato. Así se juzga.

Encuentra el look que es solo tuyo.

Cada Mark es un fondo vivo con un único dueño. Prueba uno que siga disponible y reserva el tuyo cuando te convenza.

Empieza a diseñar

Comprobar un certificado

Escribe un número de certificado o el código de un Mark para ver de quién es.

Funciona con ChatGPT y Claude

Pídele un diseño a tu IA. Lo crea en tu Mark, listo para editar.

ChatGPTClaude
Cómo conectarlo

Producto

  • Mercado
  • Explorar
  • Precios
  • Certificados

Aprende

  • Guía práctica
  • Centro de ayuda
  • Novedades

Desarrolladores

  • Introducción
  • ChatGPT y Claude
  • Referencia de la API
  • Claves de API

Empresa

  • Quiénes somos
  • Contacto
  • Iniciar sesión

Legal

  • Términos
  • Privacidad
  • Reembolsos
  • Protección de Marks
  • Cookies
  • Todas las políticas
Recorre las letras. Cada una lleva un Mark real.Toca una letra para ver su Mark.Un nombre. Diez Marks dentro.
© 2026 Gradiently