CSS gradients allow you to create smooth transitions between two or more colors. You can use them as backgrounds, borders, or even for text effects.
There are two types of gradients in CSS:
Linear gradients
These gradients create a smooth transition between two or more colors in a straight line.
The syntax of linear gradient:
background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
As an example:
In the above example:
- A linear gradient is created from top to bottom, with
#ff0000
at the top and #0000ff
at the bottom. - You can change the direction of the gradient by changing the
to
value, or by specifying an angle in degrees.
Radial gradients
These gradients create a smooth transition between two or more colors in a circular or elliptical shape.
The syntax of radial gradients:
background-image: radial-gradient(
shape size at position,
start-color,
...,
last-color
);
As an example:
In the above example:
- A radial gradient is created in the shape of a circle at the center of the
div
, with #ff0000
at the center and #0000ff
at the edge of the circle.
You can also add color stops to gradients, which define where the transition between two colors occurs.
As an example:
div {
background-image: linear-gradient(
to bottom,
#ff0000 0%,
#ffff00 50%,
#0000ff 100%
);
}
In the above example:
- The gradient goes from red to yellow to blue, with the color stops at
0%
, 50%
, and 100%
. - You can also use
rgb()
, rgba()
, hsl()
, or hsla()
values for your color stops.
CSS Conic Gradients
CSS conic gradients allow you to create circular color transitions that rotate around a center point. This type of gradient is particularly useful for creating pie charts, gauges, and other circular visualizations.
The syntax of conic gradients
background: conic-gradient(
start-angle,
color-stop1 position,
color-stop2 position,
...
);
The start-angle
parameter specifies the angle at which the gradient should start, and can be expressed as a degree or a keyword value (from
, to
, or at [x] [y]
).
As an example:
In the above example:
- The gradient starts at the default value of
from
, and goes from red
to blue
in a clockwise direction.
You can also use multiple color stops with conic gradients:
In the above example:
- The gradient starts at
0
degrees (at the top of the circle),
and goes from red
to yellow
to green
to blue
to purple
in a clockwise direction.
You can also use the at [x] [y]
syntax to specify the center point of the gradient:
background: conic-gradient(at 50% 50%, red, blue);
In the above example:
- The gradient starts at the default value of
from
, and goes from red to blue around the center point of the element.
Using Angles
When using linear gradients, you can specify the direction of the gradient using an angle. The angle is measured in degrees, with 0deg
being a gradient that goes from top to bottom, and 90deg
being a gradient that goes from left to right.
Here are some examples of how to use angles with linear gradients:
background: linear-gradient(180deg, red, blue);
background: linear-gradient(45deg, red, blue);
background: linear-gradient(-45deg, red, blue);
You can also use keywords to specify the direction of the gradient, like this:
background: linear-gradient(to right, red, blue);
background: linear-gradient(to bottom, red, blue);
You can combine angles and keywords to create more complex gradients:
background: linear-gradient(45deg, red, blue);
background: linear-gradient(45deg, red, blue 50%, green 50%, green);
Radial gradients can also use angles to specify the starting position of the gradient:
background: radial-gradient(at top left, red, blue);
background: radial-gradient(at center, red, blue);
Using Multiple Color Stops
Multiple color stops can be used to create gradients with more than two colors. A color stop is a point in the gradient where a new color is added.
The syntax for adding multiple color:
background: linear-gradient(
direction,
color-stop1 position,
color-stop2 position,
...
);
The position
parameter defines where the color stop should occur along the gradient, and can be expressed as a percentage or a length value.
As an example:
background: linear-gradient(to right, red 0%, yellow 50%, blue 100%);
In the above example:
- The gradient goes from red to yellow at the halfway point, and then to blue at the end.
- The
0%
, 50%
, and 100%
values define where the color stops should occur.
You can also use multiple color stops with radial gradients:
background: radial-gradient(circle, red 0%, yellow 50%, blue 100%);
Using Transparency
Transparency can be used in gradients to create a subtle or more dramatic effect. To add transparency to a color, you can use the rgba()
or hsla()
color notation, where the a stands for alpha, and defines the opacity of the color.
As an example:
background: linear-gradient(to right, rgba(255, 0, 0, 1), rgba(255, 0, 0, 0));
In the above example:
- The gradient goes from fully opaque red to fully transparent red, creating a
fade-out
effect.
You can also use transparency with multiple color stops:
background: linear-gradient(
to right,
rgba(255, 0, 0, 1),
rgba(255, 255, 0, 0.5) 50%,
rgba(0, 255, 0, 0)
);
In the above example:
- The gradient goes from fully opaque red to partially transparent yellow at the halfway point, and then to fully transparent green.
Repeating a linear-gradient
The repeating-linear-gradient()
function can be used to create a linear gradient that repeats at regular intervals. This is useful for creating patterns or backgrounds that need to repeat seamlessly.
The syntax for repeating-linear-gradient()
is the same as linear-gradient()
, but with an additional parameter for the size of the repeating pattern.
As an example:
background: repeating-linear-gradient(
direction,
color-stop1 position,
color-stop2 position,
...,
size
);
In this example:
- The size parameter defines the length of the repeating pattern, and can be expressed as a length value or a percentage.
As an example:
background: repeating-linear-gradient(
to right,
red,
blue 50%,
green 100%,
10rem
);
In the above example:
- The gradient goes from red to blue at the halfway point, and then to green at the end.
- The
10rem
value specifies the length of the repeating pattern.
You can also use multiple color stops with repeating-linear-gradient()
:
background: repeating-linear-gradient(
to right,
red,
yellow 20%,
green 40%,
blue 60%,
purple 80%,
red 100%,
5rem
);
In the above example:
- The gradient goes from red to yellow to green to blue to purple and back to red, with a repeating pattern length of
5rem
.
Repeating a Conic Gradient
You can use the repeating-conic-gradient()
function to create a repeating conic gradient that rotates around a center point at regular intervals. This is useful for creating patterns or backgrounds that need to repeat seamlessly.
The syntax for repeating-conic-gradient()
is the same as conic-gradient()
, but with an additional parameter for the size of the repeating pattern.
As an example:
background: repeating-conic-gradient(
angle,
color-stop1 position,
color-stop2 position,
...,
size
);
The size
parameter defines the number of repetitions of the pattern, and can be expressed as a length value or a percentage.
As an example:
background: repeating-conic-gradient(red, blue 50%, green, 2turn);
In the above example:
- The gradient goes from red to blue at the halfway point, and then to green at the end.
- The
2turn
value specifies the number of repetitions of the pattern.
**You can also use multiple color stops with repeating-conic-gradient()
:**
background: repeating-conic-gradient(
red,
yellow 20%,
green 40%,
blue 60%,
purple 80%,
red,
5turn
);
In the above example:
- The gradient goes from red to yellow to green to blue to purple and back to red, with a repeating pattern of
5
turns.