Skip to main content

The Background Gradient

CSS gradients allow you to create smooth, code-generated transitions between two or more colors. Although they define colors, they are technically treated as background images by the browser and are applied using the background-image property (or the background shorthand).

Since gradients are generated by code, they are perfectly scalable and load much faster than traditional image files.


Applying a Gradient​

Gradients are functions of the background-image property:

styles.css
selector {
background-image: linear-gradient(...);
/* OR */
background-image: radial-gradient(...);
}

1. linear-gradient(): Straight Transitions​

A linear gradient transitions colors along a straight line. You must define a direction or angle, and at least two color stops.

Syntax and Direction​

The direction can be set using keywords (to top, to right, to bottom left) or an angle in degrees (deg).

styles.css
/* Direction keyword: transitions from left to right */
.box-1 {
background-image: linear-gradient(to right, #00C9FF, #92FE9D);
}

/* Angle: transitions diagonally from bottom-left to top-right */
.box-2 {
background-image: linear-gradient(45deg, #FF6B6B, #FFE66D);
}

2. radial-gradient(): Circular Transitions​

A radial gradient transitions colors outward from a central point, radiating in a circular or elliptical shape.

Syntax and Shape​

You can optionally specify the shape (circle or ellipse) and the position where the center of the gradient starts.

styles.css
/* Default: transitions outward from the center (yellow) to the edge (red) */
.box-3 {
background-image: radial-gradient(circle at center, yellow, red);
}

/* Position: starts from the top-left corner */
.box-4 {
background-image: radial-gradient(at top left, #53a388, #3e5060);
}

Color Stops and Transparency​

You can define color stops to control where the color transition begins and ends, using percentages or length units.

Example: Sharp Stripes​

Setting two colors to stop at the same point creates a hard line or a stripe.

styles.css
/* Creates a hard, vertical stripe at 50% */
.stripe {
background-image: linear-gradient(to right, navy 50%, white 50%);
}

Using Transparency​

Using RGBA or HSLA color formats allows you to fade a color to complete transparency, revealing the element's background-color or whatever is behind the element.

styles.css
/* Fades from solid black to completely transparent */
.fade-out {
background-image: linear-gradient(to bottom, black, rgba(0, 0, 0, 0));
}

Interactive Gradient Demo​

Experiment with different gradient types and settings in the live editor.