Menu

Degradados en CSS: radial-gradient, linear-gradient y conic

Los degradados de CSS son imágenes que el navegador dibuja a partir de colores. Aprende radial-gradient (forma, tamaño, posición), linear-gradient (dirección y ángulos), conic-gradient, las paradas de color, las paradas nítidas para rayas, los degradados repetidos y el texto con degradado.

Esta página incluye editores ejecutables: edita, ejecuta y ve el resultado al instante.

Degradados radiales

radial-gradient() mezcla colores hacia afuera desde un punto central. Como todos los degradados de CSS, es una imagen, así que va en background-image (o en la abreviatura background):

La sintaxis completa es radial-gradient(shape size at position, color stops). Todo lo que va antes de los colores es opcional.

ParteValoresPor defecto
Formacircle, ellipseellipse
Tamañoclosest-side, closest-corner, farthest-side, farthest-corner o longitudesfarthest-corner
Posiciónat center, at top left, at 30% 70%, at 20px 40pxat center
Paradas de colorDos o más colores, cada uno con una posición opcional

La palabra clave de tamaño decide dónde se alcanza el último color: en el lado más cercano de la caja, en la esquina más lejana, etc. Cambia los valores aquí y mira cómo se vuelve a dibujar el degradado:

Prueba circle farthest-corner at 30% 50%, #f59e0b, #2563eb, ellipse at bottom, white, #16a34a y circle 40px, #f59e0b 99%, transparent (un punto de borde nítido).

Degradados lineales

linear-gradient() mezcla a lo largo de una línea recta. Pon primero una dirección o un ángulo y después los colores:

Los ángulos empiezan en 0deg apuntando hacia arriba y giran en el sentido de las agujas del reloj, así que 90deg es to right y 180deg es el to bottom por defecto. to right sigue siendo físico en páginas de derecha a izquierda; inviértelo tú si el degradado debe seguir la dirección de lectura.

Paradas de color y paradas nítidas

Cada color puede tener una posición. Sin posiciones, los colores se reparten de forma uniforme. Cuando dos colores comparten una posición, el cambio es instantáneo, y así se dibujan rayas, banderas y barras de progreso:

Una parada también puede llevar dos posiciones, #111827 12px 24px, que dibuja una franja sólida de 12px a 24px.

Degradados cónicos

conic-gradient() recorre los colores alrededor de un punto central, como las agujas de un reloj. Con paradas nítidas dibuja un gráfico circular sin imágenes ni JavaScript:

Un gráfico dibujado con CSS es invisible para los lectores de pantalla, así que pon también los números en texto.

Texto con degradado

Recorta un fondo degradado a la forma de las letras y haz transparente el propio texto:

.gradient-text {
  background: linear-gradient(90deg, #2563eb, #db2777);
  -webkit-background-clip: text; /* older browsers need the prefix */
  background-clip: text;
  color: transparent;
}

Ten en cuenta un color simple de respaldo: si el recorte falla, el texto desaparece. El texto con degradado también tiene un contraste irregular, así que úsalo solo en títulos grandes.

Los degradados se apilan con imágenes y con otros degradados en una misma lista de background-image; la página de imagen de fondo explica las capas, el tamaño y la posición.

Errores comunes

  • background-color: linear-gradient(...). Un degradado es una imagen: usa background-image o background.
  • Grados en la dirección equivocada. 0deg apunta hacia arriba, no a la derecha. 90deg va hacia la derecha.
  • Un degradado en un elemento sin altura. No se ve nada; dale contenido o un tamaño.
  • Colores intermedios apagados. Mezclar dos colores saturados opuestos, como rojo y verde, pasa por un gris marrón en sRGB. Agrega una parada intermedia, o mezcla en otro espacio de color: linear-gradient(in oklch, red, green).
  • Bandas en degradados grandes y sutiles. Colores muy parecidos en un área grande muestran escalones; un poco más de contraste entre las paradas ayuda.

Preguntas frecuentes

¿Cómo hago un degradado radial en CSS?

Usa background-image: radial-gradient(#93c5fd, #1e3a8a);. Agrega una forma y una posición delante de los colores, como radial-gradient(circle at top left, #93c5fd, #1e3a8a).

¿Qué diferencia hay entre circle y ellipse en radial-gradient?

ellipse (el valor por defecto) se estira según las proporciones de la caja, así que es ancha en una caja ancha. circle mantiene el degradado redondo sea cual sea la forma de la caja.

¿Cómo defino la dirección de un degradado lineal?

Pon primero una dirección o un ángulo: linear-gradient(to right, red, blue) o linear-gradient(45deg, red, blue). El valor por defecto es to bottom (180deg); 0deg apunta hacia arriba y los ángulos giran en el sentido de las agujas del reloj.

¿Cómo hago rayas nítidas en lugar de una mezcla suave?

Dale a dos colores la misma posición de parada: linear-gradient(90deg, #2563eb 50%, #f59e0b 50%) cambia de color en el medio sin mezcla. repeating-linear-gradient repite un patrón de esas paradas.

¿Puedo usar un degradado como background-color?

No. Un degradado es una imagen, así que va en background-image o en la abreviatura background. background-color: linear-gradient(...) es inválido y se ignora.

Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR