La versión corta
- Un degradado lineal CSS es una imagen que el navegador dibuja a lo largo de una línea recta, escrita con la función linear-gradient() y usada donde se acepte una imagen, normalmente background-image.
- Sin dirección, un degradado lineal va de arriba abajo, lo mismo que 180deg; 0deg apunta hacia arriba y los ángulos giran en el sentido de las agujas del reloj.
- Los puntos de color sin posición se reparten por igual, y dos puntos en la misma posición hacen un borde duro en lugar de una mezcla.
- Se pueden apilar varios degradados en un mismo background-image, separados por comas, y el primero se dibuja encima.
- Añadir un método de interpolación como in oklch mantiene brillante el medio de una mezcla en lugar de dejar que se vuelva gris.
En esta página
Un degradado lineal CSS es una imagen que el navegador dibuja a lo largo de una línea recta, mezclando de un color al siguiente. Lo escribes con la función linear-gradient() y lo usas donde CSS acepte una imagen, casi siempre background-image. No necesita archivo, escala a cualquier tamaño sin desenfocarse y no cuesta nada descargarlo. La versión útil más corta son dos colores: linear-gradient(#0f172a, #38bdf8) pasa de un azul marino profundo arriba a un azul cielo abajo.
.hero {
background-color: #0f172a; /* shown if the gradient fails */
background-image: linear-gradient(#0f172a, #38bdf8);
}linear-gradient(#0f172a, #38bdf8)Esta guía repasa cada parte de la función en el orden en que se encuentran. Si quieres el panorama más amplio de cómo se comparan los degradados lineales con los radiales, cónicos y de malla, empieza por los tipos de degradado.
La sintaxis de linear-gradient()
La función admite una dirección opcional, un método opcional de interpolación de color y después una lista de al menos dos puntos de color. Todo se separa con comas salvo la dirección y el método de interpolación, que comparten el primer argumento.
| Parte | Ejemplo | Qué hace |
|---|---|---|
| Dirección como ángulo | 135deg, 0.25turn | Fija el ángulo de la línea del degradado. 0deg apunta hacia arriba y los ángulos giran en el sentido de las agujas del reloj. |
| Dirección como palabras clave | to right, to top left | Apunta la línea a un lado o una esquina de la caja. |
| Método de interpolación | in oklch, in srgb | Elige el espacio de color en el que se calcula la mezcla. |
| Punto de color | #38bdf8 40% | Un color, opcionalmente con una o dos posiciones a lo largo de la línea. |
| Pista de color | 30% entre dos puntos | Mueve el punto medio de la mezcla entre sus vecinos. |
La referencia completa está en la página de linear-gradient() de MDN, que también documenta la gramática exacta de la especificación CSS Images.
Ángulos del degradado y palabras clave de dirección
Los ángulos siguen una brújula: 0deg apunta hacia arriba, 90deg hacia la derecha, 180deg hacia abajo y 270deg hacia la izquierda. El degradado empieza en el lado opuesto y viaja hacia la dirección que indiques, así que 90deg va de izquierda a derecha. También puedes escribir turn, rad o grad, donde 0.25turn equivale a 90deg. El valor por defecto, cuando no indicas nada, es to bottom.
Las palabras clave de esquina no son lo mismo que los ángulos de 45 grados. to top right inclina la línea para que el color del medio pase justo entre las otras dos esquinas, sea cual sea la forma de la caja. En un banner ancho esa línea es mucho más plana que 45deg, que siempre apunta a 45 grados e ignora la forma de la caja. Usa palabras clave cuando la mezcla deba respetar las esquinas y ángulos cuando varios elementos de formas distintas deban compartir una dirección. Hay más sobre cómo elegir direcciones en los ángulos de degradado.
Puntos de color, posiciones y pistas
Los puntos sin posición se reparten por igual, así que tres colores quedan en 0%, 50% y 100%. Dale a un punto una posición en porcentaje o una longitud para moverlo. Dale dos posiciones y el color se mantiene liso entre ellas. Pon un porcentaje suelto entre dos puntos y se convierte en una pista: el punto donde la mezcla alcanza su color intermedio, lo que hace un lado de la transición más rápido que el otro.
/* even spacing */
background-image: linear-gradient(90deg, #0c4a6e, #22d3ee, #f0f9ff);
/* a hint: the midpoint arrives early, at 20% */
background-image: linear-gradient(90deg, #0c4a6e, 20%, #22d3ee);
/* two positions: cyan holds solid from 35% to 65% */
background-image: linear-gradient(90deg, #0c4a6e, #22d3ee 35% 65%, #f0f9ff);Cortes duros para rayas y divisiones
Cuando dos puntos comparten una posición no hay espacio para mezclar, así que obtienes un borde nítido. Los navegadores también ajustan un punto que va antes que el anterior, lo que da un atajo útil: #f97316 50%, #1e293b 0 significa que el segundo color empieza justo donde acaba el primero. Repite la idea con repeating-linear-gradient() y tienes rayas.
Apilar varios degradados en un mismo fondo
background-image acepta una lista separada por comas, y la primera imagen se pinta encima. Las capas solo se ven a través de las otras donde son transparentes, así que los degradados superiores suelen desvanecerse a transparent. Los navegadores modernos mezclan con alfa premultiplicado, así que desvanecerse a transparent ya no arrastra un matiz gris al color como antes. Combina capas con background-size y background-repeat cuando una capa deba cubrir solo parte de la caja.
.card {
background-color: #111827;
background-image:
/* top: a soft sheen across the upper third */
linear-gradient(180deg, rgb(255 255 255 / 0.12), transparent 35%),
/* bottom: the colour itself */
linear-gradient(135deg, #312e81, #7c3aed 55%, #db2777);
}Apilar es también la base de efectos más ricos: los resplandores radiales en capas forman un degradado de malla en CSS, y una fina capa de ruido encima oculta los escalones, como explica el banding en degradados.
Mezclas más suaves con interpolación de color
Cuando todos los colores están escritos en un formato heredado, como hex, rgb() o hsl(), el navegador mezcla en sRGB por compatibilidad. Las mezclas sRGB entre tonos distantes pasan por medios apagados y grisáceos: de azul a amarillo es el caso clásico. Añadir in oklab o in oklch pide un espacio de color perceptual, que mantiene el medio más claro y uniforme. La guía dedicada a los degradados OKLCH en CSS cubre las direcciones de tono y las alternativas.
Evita
- Mezclas largas entre tonos opuestos en sRGB simple
to top rightcuando varias tarjetas de formas distintas deban compartir una dirección- Desvanecer a
whitecuando quieres desvanecer del todo; usatransparent - Mezclas muy suaves, oscuras y anchas sin grano, que hacen banding en muchas pantallas
Haz
- Añadir
in oklcho un punto intermedio para mantener vivas las mezclas - Usar un solo ángulo, como
135deg, para un sistema coherente - Desvanecer las capas a
transparentpara que se vea lo de debajo - Añadir una tenue capa de ruido sobre degradados oscuros grandes
Compatibilidad con navegadores y alternativas
linear-gradient() funciona sin prefijo en todos los navegadores actuales, así que las viejas versiones con -webkit- pueden irse. Los métodos de interpolación, los puntos de dos posiciones y las pistas son más recientes; consulta caniuse para los detalles. El patrón más seguro es un background-color plano primero, luego el degradado y después cualquier versión mejorada en una declaración posterior, que los navegadores antiguos omiten porque no pueden interpretarla.
.banner {
background-color: #1e3a8a;
background-image: linear-gradient(90deg, #1e3a8a, #f59e0b);
/* browsers that understand interpolation methods use this line */
background-image: linear-gradient(90deg in oklch, #1e3a8a, #f59e0b);
}Si prefieres partir de una mezcla que ya tiene carácter en lugar de ajustar los puntos a mano, un generador de degradados o una biblioteca de fondos ya hechos ahorra tiempo. De un modo u otro, quédate con el código: un degradado en CSS se ve nítido a cualquier tamaño y pesa unos pocos bytes.
Preguntas frecuentes
¿Cómo hago un degradado lineal en CSS?
Define background-image: linear-gradient(dirección, color1, color2) en un elemento, por ejemplo linear-gradient(90deg, #0f172a, #38bdf8). Añade antes un background-color como alternativa.
¿Cuál es la dirección por defecto de un degradado lineal CSS?
De arriba abajo, lo mismo que to bottom o 180deg. El primer color aparece arriba y el último abajo.
¿Cómo hago una línea dura en un degradado lineal?
Da a dos puntos vecinos la misma posición, como #f97316 50%, #1e293b 50%, o usa 0 como segunda posición para que se ajuste al punto anterior.
¿Por qué el medio de mi degradado se ve gris?
Los colores hex se mezclan en sRGB por defecto, lo que apaga el punto medio entre tonos distantes. Añade in oklch o in oklab tras el ángulo, o inserta un punto intermedio más brillante.
¿Es 45deg lo mismo que to top right?
Solo en un cuadrado. 45deg siempre apunta a 45 grados, mientras que to top right ajusta su ángulo para que el color del medio pase entre las otras dos esquinas de la caja.
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


