Create CSS gradients with live preview
Writing gradient syntax by hand means guessing at the result and reloading to check. This tool shows you the gradient at a usable size while you adjust it, then hands you the CSS to paste in. Handy for hero sections, buttons, card backgrounds, and overlays that need to sit behind text.
Everything runs entirely inside your browser, with nothing to install or sign up for.
The most common disappointment is a muddy band through the middle. It happens when the two colors sit far apart on the color wheel โ blue to orange, say โ because the blend passes through the desaturated greys between them. Colors that are closer together produce a much cleaner transition, which is why analogous pairs tend to look better than complementary ones here. If you want two distant colors, route the blend through a third color that sits between them rather than letting it find its own path.
On direction: CSS angles start at 0 degrees pointing upward and increase clockwise, so 90 degrees runs left to right and 180 degrees runs top to bottom. That catches people out, and the live preview is the quickest way to settle it. Radial gradients ignore the angle entirely, since they radiate from the centre outward. One last thing โ if text will sit on top of the gradient, check it against both end colors with the Contrast Checker. Text that's readable at one end of a gradient often isn't at the other.
The two colors are far apart on the color wheel, so the blend passes through neutral grey on its way between them. Choose closer colors, or add an intermediate color to steer the transition.
180 degrees. CSS measures from 0 degrees pointing up, increasing clockwise, so 90 degrees is left to right and 180 degrees is top to bottom.
A radial gradient spreads outward from the centre in all directions, so there's no single direction for an angle to describe. The angle only applies to linear gradients.
Yes, but check the contrast against both end colors. A gradient that starts light and ends dark will leave text readable at one end and not the other.