CSS

CSS Gradient: Syntax, Usage, and Examples

CSS gradients create smooth transitions between colors, offering a dynamic and lightweight alternative to images. They can enhance backgrounds, text, borders, and other design elements. With CSS, you can generate gradients programmatically, ensuring flexibility and efficiency in styling.

How to Use CSS Gradients

The background property applies a gradient using the linear-gradient, radial-gradient, or conic-gradient function. Each function defines how colors blend across an element.

Linear Gradients

A linear gradient transitions colors in a straight line. You can specify a direction or use default settings.

.linear-gradient-box {
  width: 300px;
  height: 200px;
  background: linear-gradient(to right, blue, green);
}

In this example, the gradient moves horizontally from blue to green. You can adjust the direction by changing to right to to bottom, to top, or specifying an angle.

.diagonal-gradient {
  background: linear-gradient(45deg, red, yellow);
}

This creates a diagonal color transition from red to yellow at a 45-degree angle.

Radial Gradients

Radial gradients spread outward from a central point. The transition occurs in concentric circles.

.radial-gradient-box {
  width: 300px;
  height: 200px;
  background: radial-gradient(circle, red, yellow, green);
}

By default, the gradient starts at the center, but you can reposition it.

.radial-offset {
  background: radial-gradient(circle at top left, blue, purple);
}

This shifts the gradient’s center to the top-left corner.

Conic Gradients

A conic gradient rotates colors around a center point, creating pie-chart-like effects.

.conic-gradient-box {
  width: 200px;
  height: 200px;
  background: conic-gradient(red, yellow, green, blue);
}

You can adjust starting points or define exact color stops for precise control.

.conic-slice {
  background: conic-gradient(from 90deg, blue 0deg 90deg, red 90deg 180deg, yellow 180deg 270deg, green 270deg 360deg);
}

This divides the element into equal color sections.

When to Use CSS Gradients

Background Styling

Gradients eliminate the need for large background images, reducing file size and load times.

.header {
  background: linear-gradient(to bottom, #ff8c00, #ff0080);
}

This transition creates an elegant visual effect without requiring an image.

Text with a Gradient Effect

Applying a gradient to text makes it stand out. You can achieve this using background-clip: text.

.gradient-text {
  font-size: 48px;
  font-weight: bold;
  background: linear-gradient(to right, blue, violet);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

This technique allows the text to take on the gradient while keeping the background unchanged.

Enhancing Borders with Gradients

Adding a gradient to borders provides a modern look.

.border-gradient {
  border: 5px solid;
  border-image-source: linear-gradient(to right, red, orange);
  border-image-slice: 1;
}

This ensures the border follows the same gradient as the background.

Examples of CSS Gradients in Action

Multi-Color Linear Gradient

A linear gradient can transition between multiple colors seamlessly.

.multi-color-gradient {
  width: 300px;
  height: 200px;
  background: linear-gradient(to right, red, yellow, green, blue);
}

Each color blends smoothly into the next, creating a dynamic visual effect.

Using Transparency in Gradients

Adding transparency (alpha values) creates fading effects.

.transparent-gradient {
  background: linear-gradient(to right, rgba(255, 0, 0, 0.8), rgba(0, 0, 255, 0));
}

This gradient fades from red to a fully transparent blue.

Creating Repeating Gradients

Repeating gradients form patterns without manually repeating elements.

.repeating-stripes {
  background: repeating-linear-gradient(to right, red 0px, red 10px, yellow 10px, yellow 20px);
}

This creates a striped effect across the element.

Learn More About CSS Gradients

Adjusting Gradient Direction

You can control the angle of a gradient for precise styling.

.angle-gradient {
  background: linear-gradient(135deg, blue, green);
}

This shifts the transition angle to 135 degrees.

Combining Images with Gradients

Overlaying a gradient on an image improves readability and adds a stylish effect.

.image-overlay {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7), transparent), url('image.jpg') center/cover;
}

This applies a dark overlay while keeping the image visible.

Animating CSS Gradients

You can create smooth transitions by animating gradient properties.

@keyframes gradient-animation {
  0% {
    background: linear-gradient(to right, red, blue);
  }
  100% {
    background: linear-gradient(to right, blue, red);
  }
}

.animated-gradient {
  width: 300px;
  height: 200px;
  animation: gradient-animation 3s infinite alternate;
}

This shifts the gradient direction back and forth.

Applying Gradients to Shadows

Gradients can enhance shadows for a modern effect.

.gradient-shadow {
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.5), inset 0 -3px 5px linear-gradient(to right, red, blue);
}

This makes shadows appear more dynamic.

Using CSS Variables for Gradients

CSS variables allow you to store gradient colors for consistency.

:root {
  --primary-color: #ff5733;
  --secondary-color: #33ff57;
}

.variable-gradient {
  background: linear-gradient(to right, var(--primary-color), var(--secondary-color));
}

This approach simplifies updates across a project.

Learn CSS for Free
Start learning now
button icon
To advance beyond this tutorial and learn CSS by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH