CSS Gradients: From Basic to Advanced

What Are CSS Gradients?

CSS gradients are smooth transitions between two or more colors, rendered directly by the browser without any image files. They create visually rich backgrounds, overlays, and decorative effects while keeping your page lightweight and scalable to any resolution.

Gradients are defined as background images in CSS, which means they can be layered, sized, and positioned just like regular images. Unlike raster images, gradients are resolution-independent, looking sharp on every screen from low-density displays to Retina screens.

Linear Gradients

Linear gradients transition colors along a straight line. The basic syntax is:

background: linear-gradient(direction, color1, color2);

The direction can be specified as an angle (like 45deg) or using keywords (to right, to bottom left). If you omit the direction, it defaults to to bottom, creating a top-to-bottom gradient.

You can add as many color stops as you need:

background: linear-gradient(to right, #ff6b6b, #feca57, #48dbfb);

Color stops can include explicit positions to control where each color appears:

background: linear-gradient(to right, #ff6b6b 0%, #feca57 50%, #48dbfb 100%);

Setting two adjacent stops to the same position creates a hard color boundary instead of a smooth transition, which is useful for creating striped patterns.

Radial Gradients

Radial gradients emanate from a central point outward in a circular or elliptical shape:

background: radial-gradient(circle, #ff6b6b, #2d3436);

You can control the shape (circle or ellipse), size, and position:

Radial gradients are perfect for spotlight effects, glowing buttons, and circular decorative elements. Combined with transparency, they create realistic light and shadow effects.

Conic Gradients

Conic gradients rotate colors around a center point, like the sweep of a clock hand. They are the newest gradient type and enable effects that were previously impossible in pure CSS:

background: conic-gradient(#ff6b6b, #feca57, #48dbfb, #ff6b6b);

Conic gradients are ideal for creating pie charts, color wheels, and circular progress indicators. By repeating the first color at the end, you create a seamless circular transition.

Repeating Gradients

All three gradient types have repeating versions that tile the gradient pattern:

These are powerful for creating geometric patterns, backgrounds, and textures without images:

background: repeating-linear-gradient(
  45deg,
  #f0f0f0,
  #f0f0f0 10px,
  #ffffff 10px,
  #ffffff 20px
);

This creates diagonal stripes, each 10 pixels wide, alternating between two colors.

Practical Design Tips

Follow these guidelines for effective gradient use:

Gradients and Transparency

Combining gradients with transparency opens up creative possibilities. Use rgba() or hsla() color values, or the transparent keyword:

background: linear-gradient(to bottom, rgba(0,0,0,0.8), transparent);

This creates a fade-to-transparent effect, commonly used as an overlay on hero images to ensure text readability. You can layer this gradient over a background image using multiple backgrounds:

background:
  linear-gradient(to bottom, rgba(0,0,0,0.6), transparent),
  url('hero.jpg') center/cover;

Performance Benefits

CSS gradients offer tangible performance advantages over image-based alternatives:

For web performance optimization, replacing decorative background images with CSS gradients is one of the simplest wins. Pair this with other optimizations using an image compressor for images you do need to keep.

Building Gradients Visually

Writing gradient CSS by hand works for simple cases, but complex gradients with multiple color stops, precise angles, and layered effects benefit from a visual tool. A gradient generator lets you experiment with colors, directions, and stops in real time, then copy the resulting CSS directly into your project.

Visual tools are especially valuable for finding complementary color combinations and seeing how subtle changes in stop positions affect the final result.

Try our free CSS Gradient Generator — no signup required.

Explore all free tools on CalcHub

Browse Tools