JOSÉ JUANAS

Facebook Gmail Linkedin
Galleta

Cookies

Utilizamos cookies propias y de terceros para mejorar nuestros servicios.

Aviso de Cookies

Uso de gradientes CSS

Los gradientes CSS están representados por el tipo de datos <gradient>, un tipo especial de <image> hecho de una transición progresiva entre dos o más colores. Hay para elegir entre tres tipos de degradados: lineal (creado con la función linear-gradient() ), radial (creado con la función radial-gradient() ), y cónico (creado con la función conic-gradient() ). También se pueden crear degradados repetitivos con las repeating-linear-gradient(), repeating-radial-gradient() y repeating-conic-gradient().

Los degradados se pueden usar en cualquier lugar donde usaría una <image>, como un background-image, por ejemplo de fondo de cualquier elemento html. Debido a que los gradientes los generan los navegadores dinámicamente, pueden suplir a los archivos de imágen ráster que tradicionalmente se usaban para lograr efectos similares, se ven mejor que las imágenes al redimensionar la ventana, pueden cambiarse de tamaño sobre la marcha y son facilmente animables

background: linear-gradient();

Un gradiente lineal crea una banda de colores que progresa en línea recta. Para crear el tipo de degradado más básico, todo lo que necesita es especificar dos colores, denominados paradas de color, como mínimo dos, pero puede añadirle tantos como desee. Por tanto la síntaxis básica para darle un degradado líneal como background a cualquier elemento o etiqueta html, sería la siguiente:

.linear-gradient-basico{background: linear-gradient(black, white);}, el resultado es el mismo background que veis en las etiquetas.

Vereís que el gradiente, va de arriba hacía abajo, osea bottom, es su valor por defecto, si queremos darle otras direcciones, podemos emplear las palabras clave top, bottom, left ó right, una combinación de ellas ó podemos darle la dirección deseada, con un valor de grados (deg), positivo ó negativo u otras unidades para medir angulos como radianes, etc.

background: radial-gradient();

Esta propiedad crea una imágen que consiste en una degradación radial de colores. Imagina que tienes un punto central y los colores irradian hacia afuera en forma de círculos o elipses, mezclándose suavemente entre sí.

los componentes principales de radial-gradient(), son:

background-image: radial-gradient(shape size at position,color-stop1,color-stop2, ...);

shape (opcional): Define la forma de la degradación. Puede ser:
circle: La degradación tendrá forma de círculo.
ellipse (valor por defecto): La degradación tendrá forma de elipse, determinada por las dimensiones del contenedor.

size (opcional): Determina el tamaño de la degradación radial. Puede tomar los siguientes valores:
closest-side: La degradación se extiende hasta el lado más cercano del contenedor.
farthest-side: La degradación se extiende hasta el lado más lejano del contenedor.
closest-corner: La degradación se extiende hasta la esquina más cercana del contenedor.
farthest-corner (valor por defecto): La degradación se extiende hasta la esquina más lejana del contenedor.
Valores explícitos de radio y/o elipse (ej: `20px`, `50% 30%`).

at position (opcional): Define la posición del centro de la degradación. Puede tomar valores como: center (valor por defecto): Centra la degradación. Valores de píxeles o porcentajes (ej: `20px 30px`, `50% 75%`). También puedes usar palabras clave como top, bottom, left, right.

color-stop1, color-stop2, ...: Son los colores que formarán la degradación. Cada "color-stop" especifica un color y opcionalmente una posición donde ese color debe empezar.
Color: Un valor de color válido en CSS (ej: `red`, `blue`, `#ff0000`, `rgba(0, 0, 255, 0.5)`).
Posición (opcional): Un valor en porcentaje o longitud que indica dónde debe empezar ese color en la degradación. Si no se especifica, los colores se distribuyen uniformemente.

La función radial-gradient() es una herramienta muy versátil para crear fondos visualmente atractivos y complejos directamente en CSS, sin necesidad de usar imágenes.

background: conic-gradient();

La función conic-gradient() crea una imágen que consiste en una degradación cónica. Imagina un cono de helado visto desde arriba, los colores comienzan en un punto central y se extienden alrededor de ese punto en forma de círculo, como si fueran rebanadas de un pastel.

la estructura básica de la función conic-gradient():

background-image: conic-gradient(from angle at position,color-stop1,color-stop2, ...);

from angle (opcional): Define el ángulo inicial para la degradación. Por defecto es `0deg`, que corresponde a la parte superior. Los valores de ángulo siguen la convención de las agujas del reloj. Puedes usar unidades como `deg` (grados), `rad` (radianes), `grad` (grados centesimales) o `turn` (vueltas).

at position (opcional): Especifica la posición del centro de la degradación. Funciona de manera similar a la propiedad `at position` en `radial-gradient()`. Por defecto es `center`. Puedes usar valores en píxeles, porcentajes o palabras clave como `top`, `bottom`, `left`, `right`.

color-stop1,color-stop2, ...: Son los colores que componen la degradación cónica. Cada "color-stop" define un color y, opcionalmente, una posición angular donde ese color debe comenzar.

Color: Un valor de color CSS válido (ej: `red`, `blue`, `#ff0000`, `rgba(0, 0, 255, 0.5)`).

Posición angular (opcional): Un valor de ángulo (ej: `45deg`, `90deg`) o un porcentaje que indica dónde debe empezar ese color. Si no se especifica, los colores se distribuyen uniformemente. Los porcentajes se interpretan relativos a una vuelta completa (360 grados).

La función conic-gradient() es ideal para crear gráficos circulares, indicadores de progreso con forma de anillo y otros efectos visuales interesantes basados en ángulos.

Galería con ejemplos
de gradientes.

Bueno como pienso que todo se comprende mejor con ejemplos visuales, he preparado abajo una galería, con múltiples ejemplos de background-image, que al :hover despliega un cartel con su valor, algunas animadas para observar sus efectos.

.color1 {background:
radial-gradient
(closest-side circle,
#0066ff 60%, #00ffff);}
.color2 {background:
radial-gradient
(closest-side circle,
#00ffff 60%, #0066ff);}
.color3 {background:
linear-gradient(45deg,
#0066ff 40%, #00ffff);}
.color4 {background:
linear-gradient(-90deg,
#0066ff 40%, #00ffff);}
.color5 {background:
linear-gradient(45deg,
red 20%, orange 20% 40%,
yellow 40% 60%,
green 60% 80%, blue 80%);}
.color6 {background:
radial-gradient
(farthest-side at 60% 55%,
blue,green,yellow,black);}
.color7 {background:
linear-gradient(to left,
lime 20%,red 30% 45%,
cyan 55% 70%, yellow 80%);}
.color8 {background:
linear-gradient(217deg, rgba(255,0,0,.8), rgba(255,0,0,0) 70.71%),
linear-gradient(127deg, rgba(0,255,0,.8), rgba(0,255,0,0) 70.71%),
linear-gradient(336deg, rgba(0,0,255,.8), rgba(0,0,255,0)70.71%);}
.color9 {background:
conic-gradient
(from 240deg at center,
#ffffff 20%, #000000);}
.color10 {background:
linear-gradient(217deg, rgba(0,0,0,.6) 50%, rgba(255,255,255,.2) 70.71%),
linear-gradient(127deg, rgba(0,0,0,.4), rgba(255,255,255,.5) 20.71%),
linear-gradient(336deg, rgba(0,0,0,.8) 20%, rgba(255,255,255,.7) 50.71%);}
.color11 {background:
linear-gradient(to top right,
rgba(255, 20, 10, .7),
rgba(20, 255, 10, .7),
rgba(10, 20, 255, .7));}
.color12 {background:
conic-gradient(from 60deg at center, rgba(0, 0, 0, .3) 10%, rgba(255, 255, 255, .3)),
conic-gradient(from 90deg at 50% 60%, rgba(0, 255, 0, .5) 30%, rgba(0, 0, 255, .5)),
conic-gradient(from -120deg at 50% 70%, rgba(255,0,0,.7) 50%, rgba(120,120,120,.7));}
.color13 {background:
radial-gradient(ellipse,
white 20%, gold 50%,
red 55%, black 75%);}
.color14 {background:
repeating-linear-gradient(190deg, rgba(255,0,0,0.5) 40px,
rgba(255,153,0,0.5) 80px, rgba(255,255,0,0.5) 120px,
rgba(0,255,0,0.5) 160px, rgba(0,0,255,0.5) 200px,
rgba(75,0,130,0.5) 240px, rgba(238,130,238,0.5) 280px,
rgba(255, 0, 0, 0.5) 300px),
repeating-linear-gradient(-190deg, rgba(255,0,0,0.5) 30px,
rgba(255,153,0,0.5) 60px, rgba(255,255,0,0.5) 90px,
rgba(0,255,0,0.5) 120px, rgba(0,0,255,0.5) 150px,
rgba(75,0,130,0.5) 180px, rgba(238,130,238,0.5) 210px,
rgba(255,0,0,0.5) 230px),
repeating-linear-gradient(23deg, red 50px, orange 100px,
yellow 150px, green 200px, blue 250px,
indigo 300px, violet 350px, red 370px);}
.color15 {background:
repeating-linear-gradient(90deg, transparent, transparent 50px,
rgba(255,127,0,0.25) 50px, rgba(255,127,0,0.25) 56px,
transparent 56px, transparent 63px, rgba(255,127,0,0.25) 63px,
rgba(255,127,0,0.25) 69px, transparent 69px, transparent 116px,
rgba(255,206,0,0.25) 116px, rgba(255,206,0,0.25) 166px),
repeating-linear-gradient(0deg, transparent, transparent 50px,
rgba(255,127,0,0.25) 50px, rgba(255,127,0,0.25) 56px,
transparent 56px, transparent 63px, rgba(255,127,0,0.25) 63px,
rgba(255,127,0,0.25) 69px, transparent 69px, transparent 116px,
rgba(255,206,0,0.25) 116px, rgba(255,206,0,0.25) 166px),
repeating-linear-gradient(-45deg, transparent, transparent 5px,
rgba(143,77,63,0.25) 5px, rgba(143,77,63,0.25) 10px),
repeating-linear-gradient(45deg, transparent, transparent 5px,
rgba(143,77,63,0.25) 5px, rgba(143,77,63,0.25) 10px);}
.color16 {background:
repeating-radial-gradient(ellipse at 80% 50%,rgba(0,0,0,0.5),
rgba(0,0,0,0.5) 15px, rgba(255,255,255,0.5) 15px,
rgba(255,255,255,0.5) 30px) top left no-repeat,
repeating-radial-gradient(ellipse at 20% 50%,rgba(0,0,0,0.5),
rgba(0,0,0,0.5) 10px, rgba(255,255,255,0.5) 10px,
rgba(255,255,255,0.5) 20px) top left no-repeat yellow;
background-size: 200px 200px, 150px 150px;}

Conclusión

Espero haber explicado claramente, las grandes cualidades de esta propiedad, para llenar de colores nuestras páginas. Para hacer buenas composiciones la síntaxis de la propiedad se complica, y para empezar a dominarla no queda otra que prácticar mucho con ella.

Bueno me despido, no sin antes recordarte que me puedes hacer comentarios, sugerencias, etc, agradezco tu contacto, gracias por tu visita.

Contacto José Juanas
Datos del mensaje
 WEBMASTER  JOSE JUANAS