sodcalculator

10 Tech How-To

Radial Gradient CSS: Step-by-Step Guide

Guide 10-31828 · Updated · Step by step

This guide shows you how to create a radial gradient in CSS, a technique that blends two or more colors in a circular or elliptical pattern from a central point. You’ll learn the syntax, how to control shape, size, and position, and how to avoid common pitfalls. No special tools are needed—just a text editor and a web browser.

What You’ll Need

  • A text editor (e.g., Notepad, VS Code, Sublime Text)
  • A web browser (Chrome, Firefox, Safari, Edge) to preview your work
  • Basic familiarity with CSS (selectors and properties)

Step-by-Step

  1. Create an HTML file (e.g., index.html) with a simple element to style. For example: <div class="gradient-box"></div>.
  2. Link a CSS file (e.g., style.css) to your HTML, or use a <style> tag in the head. The CSS will target your element.
  3. Set the element’s dimensions so you can see the gradient. In your CSS, add: .gradient-box { width: 300px; height: 200px; }.
  4. Apply the background property with the radial-gradient() function. The simplest form is: background: radial-gradient(red, blue);. This creates a gradient that starts red at the center and transitions to blue at the edges.
  5. Specify the shape (optional). Use circle or ellipse (default). For example: background: radial-gradient(circle, red, blue);.
  6. Position the center (optional). Use at followed by coordinates (e.g., at top left, at 20% 80%). Example: background: radial-gradient(circle at top left, red, blue);.
  7. Set the size (optional). Use keywords like closest-side, farthest-corner (default), or a length/percentage. Example: background: radial-gradient(circle closest-side, red, blue);.
  8. Add multiple colors and control their positions. Use color stops: background: radial-gradient(circle, red 0%, yellow 50%, blue 100%);. You can also use fixed lengths: red 10px, blue 100px.
  9. Add transparency using rgba() or hsla(). Example: background: radial-gradient(circle, rgba(255,0,0,1), rgba(255,0,0,0)); for a fading effect.
  10. Test in your browser. Save your files and open the HTML file. Adjust colors, positions, and sizes as needed.

Common Mistakes

  • Forgetting the element has no height: If your element has no explicit height or content, the gradient may not be visible. Always set a height or use padding.
  • Using commas incorrectly: The radial-gradient() function uses commas to separate arguments. A missing comma or an extra one will break the syntax.
  • Misunderstanding color stops: If you don’t specify positions, colors are evenly distributed. If you specify one position, the others adjust, which can cause unexpected results.
  • Overlooking browser prefixes: While modern browsers support the standard syntax, older versions (e.g., IE10) may need -webkit- or -moz- prefixes. For broad compatibility, include prefixed versions.
  • Using background-color alongside: If you set both background-color and background-image (which is what the gradient creates), the color shows through only if the gradient has transparency. Be aware of this.

Tips

  • Use the background-image property instead of background to avoid overriding other background properties like background-repeat.
  • Experiment with multiple gradients: You can layer multiple radial gradients using comma separation in background-image. The first one is on top.
  • Use transparent as a color for smooth fading to the page background.
  • Test responsive designs: Use percentages for color stops and positions so the gradient scales with the element.
  • Use online generators for quick previews, but understanding the syntax helps you fine-tune.

Troubleshooting

If your gradient isn’t showing up:

  • Check the element’s size: Ensure the element has a width and height. If it’s empty, it might have zero height.
  • Verify the syntax: Look for missing commas, parentheses, or semicolons. Use your browser’s developer tools (F12) to inspect the element and see if the CSS is applied.
  • Check for typos: Make sure you wrote radial-gradient correctly (not radialgradient).
  • Test in a different browser: If it works in one but not another, it may be a browser-specific issue. Add vendor prefixes if needed.
  • Ensure the element is visible: If the element is behind another element, the gradient might be hidden. Check z-index and positioning.

Frequently Asked Questions

Can I use a radial gradient as a border?

Yes, but not directly. You can use a radial gradient as a background on a wrapper element and place your content on top, or use the border-image property with a gradient, though border-image has limitations.

How do I make the gradient repeat?

Use repeating-radial-gradient(). It works like radial-gradient() but repeats the color stops at regular intervals. Example: background: repeating-radial-gradient(circle, red 0px, blue 20px);.

What is the difference between closest-side and farthest-corner?

These keywords determine the size of the gradient. closest-side makes the gradient end at the nearest side of the element, while farthest-corner makes it extend to the farthest corner. The default is farthest-corner.

Can I animate a radial gradient?

Yes, you can animate the position or colors using CSS transitions or keyframes, but animating the gradient itself (e.g., the color stops) is not directly supported. Instead, animate the background-position or use a pseudo-element.

Why is my gradient not smooth?

If you have few color stops or use colors that are very different, the transition may appear harsh. Add more intermediate colors or use color-stop positions to control the transition. Also, ensure you’re not using transparent in a way that creates a hard edge.

Does radial-gradient work in all browsers?

Modern browsers support it without prefixes. For older browsers, you may need to include -webkit- (Chrome/Safari) and -moz- (Firefox) prefixes. Always test your target browsers.

Related

General steps for current mainstream versions; menus can differ by device and version. See the disclaimer or report an error.

More in this bed

The whole Tech How-To bed →