<gradient> CSS type
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
The <gradient> CSS data type is a special type of <image> that consists of a progressive transition between two or more colors.
Try it
background: linear-gradient(#f69d3c, #3f87a6);
background: radial-gradient(#f69d3c, #3f87a6);
background: repeating-linear-gradient(#f69d3c, #3f87a6 50px);
background: repeating-radial-gradient(#f69d3c, #3f87a6 50px);
background: conic-gradient(#f69d3c, #3f87a6);
<section class="display-block" id="default-example">
<div id="example-element"></div>
</section>
#example-element {
min-height: 100%;
}
A CSS gradient has no intrinsic dimensions; i.e., it has no natural or preferred size, nor a preferred ratio. Its concrete size will match the size of the element to which it applies.
Syntax
The <gradient> data type is defined with one of the function types listed below.
Linear gradient
Linear gradients transition colors progressively along an imaginary line. They are generated with the linear-gradient() function.
Radial gradient
Radial gradients transition colors progressively from a center point (origin). They are generated with the radial-gradient() function.
Conic gradient
Conic gradients transition colors progressively around a circle. They are generated with the conic-gradient() function.
Repeating gradient
Repeating gradients duplicate a gradient as much as necessary to fill a given area. They are generated with the repeating-linear-gradient(), repeating-radial-gradient(), and repeating-conic-gradient() functions.
Interpolation
As with any interpolation involving colors, gradients are calculated in the alpha-premultiplied color space. This prevents unexpected shades of gray from appearing when both the color and the opacity are changing. (Be aware that older browsers may not use this behavior when using the transparent keyword.)
Formal syntax
<gradient> =
<linear-gradient()> |
<repeating-linear-gradient()> |
<radial-gradient()> |
<repeating-radial-gradient()> |
<conic-gradient()> |
<repeating-conic-gradient()>
<linear-gradient()> =
linear-gradient( [ <linear-gradient-syntax> ] )
<repeating-linear-gradient()> =
repeating-linear-gradient( [ <linear-gradient-syntax> ] )
<radial-gradient()> =
radial-gradient( [ <radial-gradient-syntax> ] )
<repeating-radial-gradient()> =
repeating-radial-gradient( [ <radial-gradient-syntax> ] )
<conic-gradient()> =
conic-gradient( [ <conic-gradient-syntax> ] )
<repeating-conic-gradient()> =
repeating-conic-gradient( [ <conic-gradient-syntax> ] )
<linear-gradient-syntax> =
[ [ <angle> | <zero> | to <side-or-corner> ] || <color-interpolation-method> ]? , <color-stop-list>
<radial-gradient-syntax> =
[ [ [ <radial-shape> || <radial-size> ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <color-stop-list>
<conic-gradient-syntax> =
[ [ [ from [ <angle> | <zero> ] ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <angular-color-stop-list>
<side-or-corner> =
[ left | right ] ||
[ top | bottom ]
<color-interpolation-method> =
in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ]
<color-stop-list> =
<linear-color-stop> , [ <linear-color-hint>? , <linear-color-stop> ]#?
<radial-shape> =
circle |
ellipse
<radial-size> =
<radial-extent> |
<length [0,∞]> |
<length-percentage [0,∞]>{2}
<position> =
<position-one> |
<position-two> |
<position-four>
<angular-color-stop-list> =
<angular-color-stop> , [ <angular-color-hint>? , <angular-color-stop> ]#?
<rectangular-color-space> =
srgb |
srgb-linear |
display-p3 |
display-p3-linear |
a98-rgb |
prophoto-rgb |
rec2020 |
lab |
oklab |
<xyz-space>
<polar-color-space> =
hsl |
hwb |
lch |
oklch
<hue-interpolation-method> =
[ shorter | longer | increasing | decreasing ] hue
<custom-color-space> =
<dashed-ident>
<linear-color-stop> =
<color> <color-stop-length>?
<linear-color-hint> =
<length-percentage>
<radial-extent> =
closest-corner |
closest-side |
farthest-corner |
farthest-side
<length-percentage> =
<length> |
<percentage>
<position-one> =
left |
center |
right |
top |
bottom |
x-start |
x-end |
y-start |
y-end |
block-start |
block-end |
inline-start |
inline-end |
<length-percentage>
<position-two> =
[ left | center | right | x-start | x-end ] && [ top | center | bottom | y-start | y-end ] |
[ left | center | right | x-start | x-end | <length-percentage> ] [ top | center | bottom | y-start | y-end | <length-percentage> ] |
[ block-start | center | block-end ] && [ inline-start | center | inline-end ] |
[ start | center | end ]{2}
<position-four> =
[ [ left | right | x-start | x-end ] <length-percentage> ] && [ [ top | bottom | y-start | y-end ] <length-percentage> ] |
[ [ block-start | block-end ] <length-percentage> ] && [ [ inline-start | inline-end ] <length-percentage> ] |
[ [ start | end ] <length-percentage> ]{2}
<angular-color-stop> =
<color> <color-stop-angle>?
<angular-color-hint> =
<angle-percentage> |
<zero>
<xyz-space> =
xyz |
xyz-d50 |
xyz-d65
<color-stop-length> =
<length-percentage>{1,2}
<color-stop-angle> =
[ <angle-percentage> | <zero> ]{1,2}
<angle-percentage> =
<angle> |
<percentage>
Examples
Linear gradient example
A linear gradient.
.linear-gradient {
background: linear-gradient(
to right,
red,
orange,
yellow,
green,
blue,
indigo,
violet
);
}
Radial gradient example
A radial gradient.
.radial-gradient {
background: radial-gradient(red, yellow, dodgerblue);
}
Conic gradient example
A conic gradient example.
.conic-gradient {
background: conic-gradient(pink, coral, lime);
}
Repeating gradient examples
Repeating linear and radial gradient examples.
.linear-repeat {
background: repeating-linear-gradient(
to top left,
pink,
pink 5px,
white 5px,
white 10px
);
}
.radial-repeat {
background: repeating-radial-gradient(
lime,
lime 15px,
white 15px,
white 30px
);
}
.conic-repeat {
background: repeating-conic-gradient(lime, pink 30deg);
}
Specifications
| Specification |
|---|
| CSS Images Module Level 4 # gradients |
Browser compatibility
| desktop | mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
<gradient>
|
|
|
|
|
|
|
|
|
|
|
|
|
conic-gradient()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Double-position color stops
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hue interpolation method
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpolation color space
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Single color stop and 0-1 positions
|
|
|
|
|
|
|
|
|
|
|
|
|
linear-gradient()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Double-position color stops
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hue interpolation method
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpolation color space
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpolation Hints / Gradient Midpoints
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gradients applied to pre-multiplied color space (prevents grays from appearing in gradients with transparency)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Single color stop and 0-1 positions
|
|
|
|
|
|
|
|
|
|
|
|
|
to keyword
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Unitless
0 for <angle>
|
|
|
|
|
|
|
|
|
|
|
|
|
radial-gradient()
|
|
|
|
|
|
|
|
|
|
|
|
|
at syntax
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Double-position color stops
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hue interpolation method
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpolation color space
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpolation Hints / Gradient Midpoints
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gradients applied to pre-multiplied color space (prevents grays from appearing in gradients with transparency)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Single color stop and 0-1 positions
|
|
|
|
|
|
|
|
|
|
|
|
|
repeating-conic-gradient()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hue interpolation method
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpolation color space
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Single color stop and 0-1 positions
|
|
|
|
|
|
|
|
|
|
|
|
|
repeating-linear-gradient()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Double-position color stops
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hue interpolation method
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpolation color space
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpolation Hints / Gradient Midpoints
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Single color stop and 0-1 positions
|
|
|
|
|
|
|
|
|
|
|
|
|
to keyword
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Unitless
0 for <angle>
|
|
|
|
|
|
|
|
|
|
|
|
|
repeating-radial-gradient()
|
|
|
|
|
|
|
|
|
|
|
|
|
at syntax
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Double-position color stops
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hue interpolation method
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpolation color space
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Interpolation Hints / Gradient Midpoints
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Single color stop and 0-1 positions
|
|
|
|
|
|
|
|
|
|
|
|
|
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support
- Partial support
- Partial support
- See implementation notes.
- Requires a vendor prefix or different name for use.
- Has more compatibility info.