Cómo crear degradados CSS

· 5 min de lectura

Los gradientes CSS te permiten crear transiciones suaves de colores sin archivos de imagen. Son más ligeros que las imágenes, se escalan perfectamente a cualquier tamaño de pantalla y son fáciles de personalizar. Un gradiente decorativo típico ahorra 20-100 KB en comparación con un JPG o PNG equivalente, y se escala a cualquier resolución sin pérdida de calidad.

Tipos de gradientes CSS

Gradiente lineal: los colores transicionan en línea recta (de arriba a abajo, de izquierda a derecha o en cualquier ángulo).

background: linear-gradient(135deg, #667eea, #764ba2);

Gradiente radial: los colores se irradian hacia afuera desde un punto central en un patrón circular o elíptico.

background: radial-gradient(circle, #667eea, #764ba2);

Gradiente cónico: los colores rotan alrededor de un punto central, como una rueda de colores.

background: conic-gradient(from 0deg, #667eea, #764ba2, #667eea);

Cómo crear gradientes visualmente

  1. Selecciona el tipo de gradiente: elige lineal o radial y establece el ángulo o la posición.
  2. Agrega paradas de color: haz clic para agregar colores en diferentes posiciones a lo largo del gradiente. Ajusta cada color y su posición.
  3. Copia el CSS: copia el código generado y pégalo en tu hoja de estilo.

Usar un generador visual es más rápido que escribir la sintaxis del gradiente a mano, especialmente cuando estás experimentando con múltiples paradas de color.

Una breve historia de los gradientes CSS

Antes de que existieran los gradientes CSS, los diseñadores web tenían que usar imágenes de fondo para cualquier efecto de gradiente: poner en mosaico un GIF de una sola columna horizontalmente, o cortar un PSD de Photoshop en múltiples JPG. Esto funcionaba pero agregaba peso de archivo, solicitudes de red y pixelación al hacer zoom.

WebKit agregó la primera implementación -webkit-gradient() en Safari 4 (junio 2009) con una sintaxis verbosa y difícil de leer. Firefox 3.6 (enero 2010) siguió con -moz-linear-gradient(). El Grupo de Trabajo CSS estandarizó linear-gradient() y radial-gradient() sin prefijo en CSS Image Values Level 3 (2012), momento en el cual los prefijos del navegador comenzaron a desaparecer.

Los gradientes cónicos (conic-gradient()) llegaron mucho más tarde, primero enviados en Chrome 69 (septiembre 2018) y alcanzando todos los navegadores principales con Safari 12.1 (marzo 2019). Permiten patrones visuales que antes eran imposibles sin imágenes: gráficos circulares, ruedas de colores, tableros de ajedrez, patrones de rayo solar.

Los gradientes CSS ahora se consideran características básicas del navegador. Casi cualquier efecto de gradiente que puedas desear es alcanzable en CSS, sin necesidad de imágenes ni JavaScript.

Patrones comunes de gradiente

Fondo de sección hero: un sutil gradiente de dos colores agrega profundidad sin distraer del texto.

background: linear-gradient(135deg, #0f172a, #1e3a5f);

Resaltado de botón: un ligero gradiente hace que los botones se sientan tridimensionales.

background: linear-gradient(180deg, #3b82f6, #2563eb);

Superposición en imágenes: una superposición de gradiente mejora la legibilidad del texto sobre las fotos.

background: linear-gradient(to bottom, transparent, rgba(0,0,0,0.7));

Borde de acento: usa un gradiente como borde para interés visual.

border-image: linear-gradient(90deg, #667eea, #764ba2) 1;

Gradiente de malla animado: apila múltiples gradientes radiales y anima las posiciones.

background:
  radial-gradient(at 20% 30%, #667eea 0%, transparent 50%),
  radial-gradient(at 80% 70%, #764ba2 0%, transparent 50%),
  #0f172a;

Fondo de morfismo de vidrio: combina un gradiente de baja opacidad con un desenfoque backdrop-filter.

background: linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05));
backdrop-filter: blur(10px);

Posicionamiento de las paradas de color

Por defecto, las paradas de color están distribuidas uniformemente. Puedes anular sus posiciones para controlar dónde aparece cada color:

/* Amarillo en el medio 60%, desvaneciéndose a rojo en los bordes */
background: linear-gradient(90deg, red 0%, yellow 20%, yellow 80%, red 100%);

También puedes usar paradas duras para crear rayas o patrones geométricos sin anti-aliasing:

/* Rayas de dos colores sin transición */
background: linear-gradient(45deg, #667eea 50%, #764ba2 50%);

El truco es poner dos paradas de color en la misma posición. El navegador no interpola entre ellas, produciendo un borde nítido.

Cuándo usar gradientes vs colores sólidos vs imágenes

Un patrón común es superponer los tres: una base de color sólido, una superposición de gradiente CSS y una imagen de textura de baja opacidad encima.

Errores comunes

Consejos

Privacidad

El generador de gradiente CSS se ejecuta completamente en tu navegador. Los colores que eliges, las configuraciones de gradiente con las que experimentas y el CSS que generas nunca abandonan tu dispositivo. No hay telemetría, no hay seguimiento de uso, no hay carga de tus elecciones de diseño. Para herramientas usadas durante la exploración de diseño, eso importa: los colores y patrones que pruebas pueden revelar direcciones de marca futuras, temas de producto no anunciados o trabajos de clientes bajo NDA. La generación solo en el navegador mantiene todo eso en tu máquina.

Preguntas frecuentes

¿Los degradados CSS funcionan en todos los navegadores?

Sí. Los degradados lineales y radiales están admitidos en todos los navegadores modernos, incluidos Chrome, Firefox, Safari y Edge. Los degradados cónicos tienen soporte algo más reciente pero funcionan en todas las versiones actuales.

¿Puedo usar más de dos colores?

Sí. Los degradados CSS admiten tantos puntos de color como quieras. Cada punto define un color y una posición a lo largo del degradado.

¿Los degradados afectan al rendimiento?

No. Los degradados CSS los renderiza el navegador y son mucho más ligeros que los archivos de imagen. Se adaptan perfectamente a cualquier tamaño de pantalla sin descarga adicional.

¿Se puede animar un degradado?

No directamente con una transición CSS sobre la propiedad background, pero puedes animar background-position o usar propiedades personalizadas de CSS con @property para crear animaciones de degradado fluidas.