Mesh Gradient Generator

Mesh Gradient Generator — drag colour blobs, randomise, copy CSS, export PNG. The Stripe/Vercel/Apple look in seconds. Free, no signup, no watermark.

Colour points (0)
Live preview
Drag any handle to reposition its colour blob. The CSS updates live.
Generated CSS

                          
                        

About Mesh Gradient Generator

Frequently asked questions

A mesh gradient is a soft, multi-colour background made by overlaying several radial gradients on top of a base colour. Each gradient has a position, a colour, and a soft fade to transparent — together they blend into the smooth, blob-like backgrounds you see on Stripe, Apple's marketing pages, Vercel, Linear, and most modern SaaS hero sections. Unlike a regular two-stop gradient, mesh gradients can have three, four, or more colours flowing in unpredictable directions, which is what gives them their dreamy, organic feel.

They hit the sweet spot between flat design (which felt sterile) and skeuomorphism (which felt heavy). Stripe popularised the look around 2017 with their marketing site, Apple leaned into it for iOS and macOS marketing, and Vercel/Linear/Framer pushed it into the default modern SaaS aesthetic. They feel premium because they look hand-painted, but they're really just stacked radial gradients in CSS — cheap to render, easy to brand, and they soften an otherwise minimal layout without adding clutter.

A linear gradient blends two or more colours along a single straight line — top to bottom, left to right, or any angle. A mesh gradient is fundamentally different: it places coloured blobs at independent positions across a 2D space and softens them into a base colour. The result is non-linear, organic, and has multiple visual focal points. CSS doesn't have a real mesh-gradient property (yet), so we fake it by stacking radial-gradients with transparency on top of each other.

Click the Copy button to grab the full `background:` declaration. Paste it into any element — typically the body, a hero section, or a card — and you're done. Because it's a CSS background, it works everywhere: HTML, React inline styles, styled-components, Tailwind (via the `bg-[...]` arbitrary value syntax), and CSS-in-JS. No JavaScript runtime, no images, no extra HTTP request — just the gradient rendered by the browser at full resolution on any screen.