Liquid✨ Premium

Fluid Gradient

Four color blobs blurred at 40 px — indigo, violet, cyan, magenta — on a layer twice the size of the frame, slowly turning and drifting (a 15 s cycle) under a dark vignette and a centered label: a full-frame background that barely moves, pure CSS, 1.6 KB, frozen when the user reduces motion.

CSSGradientBlur

Updated

This effect is part of Effect.Labs — 840 vanilla effects, some free, some premium. Liquid has 31 effects, including 6 free. Explore the category →

3 usage examples

Stage screen between two speakers — a library network's annual meeting — Fluid Gradient example 1

① Stage screen between two speakers — a library network's annual meeting

WhenDuring the mic change, the big screen behind the lectern announces "Next talk 2:30 pm — Lending video games at the library" over the drifting colored background.
WhyA 15 s cycle does not catch the eye during mic changes, yet the screen never looks frozen; the vignette keeps the central text readable.
SettingsOriginal colors, blur and cycle; root stretched to the whole frame; time at 54 px, title at 21 px, event name and room in small lines at the top, a practical note at the bottom.
The "Heart notes" page of a niche perfumer — Fluid Gradient example 2

② The "Heart notes" page of a niche perfumer

WhenThe visitor opens the page for the "Néroli 23" perfume: the name shows in the center and the colors of the notes slowly mingle behind it.
WhyBlurred colors melting into one another convey the accord of the notes; the sharp blobs of Metaballs would feel too physical.
SettingsFour light colors, one per note: orange blossom #ffd9b8, iris #a594f9, bergamot #e3ec8f, neroli #ff9f7a; plum background, plum vignette at 45%; name in 50 px italic serif, top, heart and base notes as pills.
Holding page before the opening — the website of a gallery showing a colorist painter — Fluid Gradient example 3

③ Holding page before the opening — the website of a gallery showing a colorist painter

WhenA week before the opening, the exhibition page shows "Fields of color — opening Thursday 6 pm" in the center, over the painter's palette slowly drifting.
WhyThe background announces the exhibition's palette without showing the works before the opening.
SettingsThe painter's bold colors: red #e63946, ultramarine #3a5ccc, yellow #f4c430, aqua #2a9d8f; title in 44 px bold capitals; white "Get a reminder" button at the bottom.

How it works

The .fluid-gradient-container (full width, 300 px tall through its inline style, overflow: hidden) stacks three elements. At the back, .fluid-gradient with inset: -50%: it overhangs by half a width and half a height on each side, i.e. twice the frame's size. It carries four radial gradients that fade out at half radius — indigo #6366f1 bottom left, violet #8b5cf6 top right, cyan #06b6d4 and magenta #d946ef near the center — melted together by filter: blur(40px). Above it, .fluid-overlay darkens the edges (a radial gradient towards black at 50%), then .fluid-text centers the label, white, bold, with a drop shadow.

The fluidFlow animation lasts 15 s, ease-in-out, and takes the layer through four poses: shifted 10% right and up, then 15% down, then left, while turning one full revolution (90° per quarter cycle) and breathing between 95 and 110% of its size. Since the layer is twice the size of the frame, its edge never shows: only the blobs glide and mingle. In 500 ms, 11 to 13% of the frame's pixels change (measured in Chromium, Firefox and WebKit): enough for the eye to feel it alive, too little to draw attention.

The blur makes the material: without it you would see four hard-edged discs turning. It is also the most expensive part, since it applies to a layer four times the frame's area. The browser can however paint that layer once and then move it, because the animation only touches transform: measured in Chromium 151, the page holds its rate (120 frames per second) at 640 × 300 as at 1920 × 1080, with or without blur. Firefox 153 without a graphics card (software rendering) loses half its frames at 640 × 300 with the blur, and struggles full screen with or without it: check on your target machines before using it as a full-screen background.

Accessibility

  • Reduced motion: under prefers-reduced-motion: reduce, the layer stops in its starting pose (animation: none): the four blobs stay blended, the picture is still. Measured in Chromium 151, Firefox 153 and WebKit 26: 0% of pixels changing in 500 ms.
  • Contrast: the white label sits on moving colors. The vignette and the drop shadow (black text-shadow at 50%) keep it readable on the original hues; if you switch to light colors (pastels, yellow), darken the vignette or add a dark veil behind the text, as in the perfumer example.
  • Decoration: the blobs are CSS backgrounds with no role: screen readers only read the text in .fluid-text.

Browser compatibility

Pure CSS (radial gradients, filter: blur(), a transform animation), 1.6 KB, no dependency. Measured in Chromium 151, Firefox 153 and WebKit 26: same drift, same stop under reduced motion. The 40 px blur on a layer twice the frame's size is the point to watch on machines without a graphics card (see above).

Chrome 53+✓ Full
Firefox 35+✓ Full
Safari 9.1+✓ Full
Edge 79+✓ Full
Mobile iOS 9.3+✓ Full (blur is costly on older devices)
Android Chrome 53+✓ Full (blur is costly on entry-level devices)

Without filter: blur(), the four blobs stay visible as soft-edged gradient discs, still turning. Without CSS animations, the background is still and the label stays readable. The container gets its height from its inline style (min-height: 300px): if you remove it, give it a height in your CSS.

The code

HTML structure to paste into your page (the CSS + JS come with your purchase):

index.html — structure
<div class="fx-0400-root">
  <div class="fluid-gradient-container" style="width:100%;min-height:300px;">
    <div class="fluid-gradient"></div>
    <div class="fluid-overlay"></div>
    <div class="fluid-text">Fluid Motion</div>
  </div>
</div>

One-time payment, no subscription — the code is yours forever

Customize

Options passed to the API or data-* attributes:

Option / propertyDefaultEffect
Blob colors (CSS — the four radial-gradients of .fluid-gradient) #6366f1, #8b5cf6, #06b6d4, #d946ef Each blob has its position (circle at 20% 80%…) and its color. Neighboring hues give a calm background; complementary ones (red and green) mix into brown in the center.
Blur (CSS — filter: blur(40px)) 40 px 60 px melts everything into a haze; 20 px lets the blobs' edges show through. A smaller blur is cheaper to render.
Cycle length (CSS — animation: 15s … fluidFlow) 15 s 30 s gives an almost still background, for a screen people look at for a long time; 8 s a clearly visible drift, best kept for short blocks.
Vignette (CSS — .fluid-overlay) radial-gradient(circle, transparent 0, rgba(10,10,15,.5) 100%) Raise the opacity (0.7) for long text or light colors; remove the layer for a bright background from edge to edge.
Label (HTML/CSS — .fluid-text) 1.5rem, bold, white, centered The block takes several lines: give it a width (width: 440px, text-align: center) and compose title, time and subtitle inside.

FAQ

Yes, after a check. The animation only touches transform: the browser paints the blurred layer once, then moves it. Measured in Chromium 151: 120 frames per second at 1920 × 1080. Without a graphics card, though (Firefox in software rendering), the 40 px blur on a layer twice the screen's size drags the frame rate down. Test on your target machines; if it stutters, lower the blur to 24 px or shrink the layer (inset: -25%).
Because it turns and shifts: with inset: -50%, it keeps a margin of half a width on each side, and its edges never enter the frame during the rotation. With inset: 0, empty corners would show as soon as it turns a few degrees.
Lava Lamp shows blobs inside a glass, rising and sinking like warm wax: it is an object, with its own shape. Fluid Gradient is a full-frame background where four blurred colors slowly turn behind a label: it is a mood. Choose Fluid Gradient to dress a screen or a page around a message; Lava Lamp for an illustration people watch for its own sake.