--- title: radial-gradient() slug: Web/CSS/radial-gradient() tags: - Función CSS - Gráficos(2) - Imagen CSS translation_of: Web/CSS/radial-gradient() ---
{{CSSRef}}
La función CSS radial-gradient()
crea una imagen ({{cssxref("<image>")}}) que representa un gradiente (degradado) de colores, generando un radio desde un origen, el centro (center) del gradiente. El resultado de esta función es un objeto de tipo de dato CSS {{cssxref("<gradient>")}}.
Los gradientes radiales son definidos por su centro (center), el contorno y posición de la figura resultante y los puntos de definición de color (color stops). El gradiente radial consiste, desde su centro hasta su figura resultante y potencialmente más allá, en figuras concénctricas sucesivas de escala uniforme, idénticas en su figura final. Los stops de color son posicionados en un rayo de gradiente virtual que va horizontalmente desde el centro hacia la derecha. La proporción para posicionar los stops de colores es relativa a la intersección entre la figura final y su rayo de gradiente, representando el 100%
. Cada figura es monocolor, y definida por el color del rayo de gradiente al que cruza.
Las figuras resultantes solo pueden ser círculos (circle
) o elipses (ellipse
).
Como cualquier otro gradiente, un gradiente radial CSS no es un {{cssxref("<color>")}} CSS, sino una imagen sin dimensiones intrínsecas, es decir, no tiene un tamaño natural o predefinido, ni radio. Su tamaño concreto coincidirá con el del elemento al que se aplica.
La función radial-gradient
no permite gradientes repetidos. Para dicha funcionalidad, use la función CSS {{Cssxref("repeating-radial-gradient")}}.
// Definición de la figura radial-gradient( circle, … ) /* Sinónimo de radial-gradient( circle farthest-corner, … ) */ radial-gradient( ellipse, … ) /* Sinónimo de radial-gradient( ellipse farthest-corner, … ) */ radial-gradient( <extent-keyword>, … ) /* Dibuja un círculo */ radial-gradient( circle radius, … ) /* Un círculo centrado con longitud dada. Puede ser un porcentaje */ radial-gradient( ellipse x-axis y-axis, … ) /* Los dos ejes semi-mayores son indicados, horizontal y después vertical */ // Definición de la posición de la figura radial-gradient ( … at <position>, … ) // Definición de los stops de colores radial-gradient ( …, <color-stop>, … ) radial-gradient ( …, <color-stop>, <color-stop> )
<position>
center
.<shape>
circle
(que indica que la figura del gradiente es un círculo con radio constante) o ellipse
(que indica que la figura del gradiente es una elipse alineada por ejes). El valor predeterminado es ellipse
.<color-stop>
0%
, o una longitud de 0
, representan el centro del gradiente, mientras que el valor de 100%
representa la intersección de la figura final con el rayo virtual de gradiente. Los valores porcentuales internos son posicionados linealmente en el rayo gradiente.<extent-keyword>
Constante | Descripción |
---|---|
closest-side |
La figura resultante coincide con el lado de la caja más cercano al centro (para los círculos) o coincide con los lados vertical y horizontal más cercanos al centro (en caso de elipses). |
closest-corner |
El tamaño de la figura resultante coincide exactamente con la esquina de la caja más cercana desde el centro del gradiente. |
farthest-side |
Similar a closest-side, excepto que el tamaño de la figura resultante coincide con el lado de la caja más lejano al centro (o los lados vertical y horizontal). |
farthest-corner |
El tamaño de la figura resultante coincide exactamente con la esquina de la caja más lejana al centro del gradiente. |
cover
y contain
) como sinónimos de los estándares farthest-corner
y closest-side
respectivamente. Use solo las palabras clave estándar, pues algunas implementaciones ya no soportan las variantes anteriores.radial-gradient(
[ [ circle || {{cssxref("<length>")}} ] [ at {{cssxref("<position>")}} ]? , |
[ ellipse || [ <length> | {{cssxref("<percentage>")}} ]{2} ] [ at <position> ]? , |
[ [ circle | ellipse ] || <extent-keyword> ] [ at <position> ]? , |
at <position> ,
]?
<color-stop> [ , <color-stop> ]+
)
where <extent-keyword> = closest-corner | closest-side | farthest-corner | farthest-side
and <color-stop> = <color> [ <percentage> | <length> ]?
Usando el siguiente código CSS podemos obtener un fondo de elipse en la esquina más lejana (farthest-corner
) a 45px 45px
, cambiando el color de turquesa (#00FFFF
), a blanco, a azul (#0000FF
):
body { width: 100vh; height: 100vh; background-image: radial-gradient(ellipse farthest-corner at 45px 45px , #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%); }
{{ EmbedLiveSample('Example_1') }}
Este código generará un fondo de elipse in la esquina más lejana (farthest-corner
) a 470px 45px
, cambiando el color de amarillo (#FFFF80
), a marrón pálido, a azul pálido (#E6E6FF
):
body { width: 100vh; height: 100vh; background-image: radial-gradient(ellipse farthest-corner at 470px 47px , #FFFF80 20%, rgba(204, 153, 153, 0.4) 30%, #E6E6FF 60%); }
{{ EmbedLiveSample('Example_2') }}
Este código generará un fondo de elipse en la esquina más lejana (farthest-corner
) a 45px 45px
, cambiando el color de rojo (#FF0000
) a azul (#0000FF
):
body { width: 100vh; height: 100vh; background-image: radial-gradient(farthest-corner at 45px 45px , #FF0000 0%, #0000FF 100%); }
{{ EmbedLiveSample('Example_3') }}
Este código producirá un círculo difuso con radio de 16px
:
body { width: 100vh; height: 100vh; background-image: radial-gradient(16px at 60px 50% , #000000 0%, #000000 14px, rgba(0, 0, 0, 0.3) 18px, rgba(0, 0, 0, 0) 19px); }
{{ EmbedLiveSample('Example_4') }}
Especificación | Estado | Comentarios |
---|---|---|
{{SpecName('CSS3 Images', '#radial-gradients', 'radial-gradients()')}} | {{Spec2('CSS3 Images')}} | Definición inicial |
{{CompatibilityTable}}
Característica | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Soporte básico (en {{cssxref("background")}} y {{cssxref("background-image")}}) | {{CompatGeckoDesktop("1.9.2")}}{{property_prefix("-moz")}}[1] {{CompatGeckoDesktop("16")}} |
10.0 (534.16){{property_prefix("-webkit")}}[2] | 10.0[3] | 11.60{{property_prefix("-o")}} | 5.1{{property_prefix("-webkit")}}[2] |
En {{cssxref("border-image")}} | {{CompatGeckoDesktop("29")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
En cualquier propiedad que acepte el tipo {{cssxref("<image>")}} | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Sintaxis anterior de webkit {{non-standard_inline}} | {{CompatNo}} | 3{{property_prefix("-webkit")}}[2] | {{CompatNo}} | {{CompatNo}} | 4.0{{property_prefix("-webkit")}}[2] |
Sintaxis de at (sintaxis estándar final) |
{{CompatGeckoDesktop("10")}}{{property_prefix("-moz")}}[1] {{CompatGeckoDesktop("16")}}[4] |
26 | 10.0 | 11.60{{property_prefix("-o")}}[2] 2.12 |
{{CompatNo}} |
Consejos de interpolación (un porcentaje sin color) | {{CompatGeckoDesktop("36")}} | 40 | 27 |
Característica | Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Soporte básico (en {{cssxref("background")}} y {{cssxref("background-image")}}) | {{CompatVersionUnknown}} | {{CompatGeckoMobile("1.9.2")}}{{property_prefix("-moz")}}[1] {{CompatGeckoMobile("16")}} |
10 | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
En {{cssxref("border-image")}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("29")}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
En cualquier propiedad que acepte el tipo {{cssxref("<image>")}} | {{CompatNo}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Sintaxis anterior de webkit {{non-standard_inline}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
Sintaxis de at (sintaxis estándar final) |
{{CompatUnknown}} | {{CompatGeckoMobile("10")}}{{property_prefix("-moz")}}[1] {{CompatGeckoMobile("16")}} |
10 | {{CompatUnknown}} | {{CompatUnknown}} |
[1] Implementado en Firefox 3.6 usando prefijo, y sintaxis anterior. Antes de Firefox 36, Gecko no aplicaba gradientes en espacios de color premultiplicado, provocando que apareciera una sombra gris cuando se usaba con transparencia. Desde Firefox 42, la versión con prefijo puede ser deshabilitada estableciendo la opción layout.css.prefixes.gradients
en false
.
[2] Implementado en WebKit usando prefijo, y sintaxis anterior. WebKit desde la versión 528 soporta la función anterior -webkit-gradient(radial,…)
. Véase también su soporte actual para gradientes radiales.
[3] Internet Explorer 5.5 a 9.0 soporta la propiedad exclusiva filter: progid:DXImageTransform.Microsoft.Gradient()
filter.
[4] Además del soporte sin prefijo, Gecko 44.0 {{geckoRelease("44.0")}} incluye soporte para una versión con prefijo -webkit
de la función, por razones de compatibilidad, dentro de la opción layout.css.prefixes.webkit
, con valor false
de forma predeterminada. Desde Gecko 49.0 {{geckoRelease("49.0")}} el valor predeterminado de esa opción es true
.