RemotionUI

Grain Gradient Background

A multi-colour gradient with grain worked through it.

PrimitiveShadersAdvanced

grain-gradient-bg30fps · 960×540
Install
$ npx remotion-ui@latest add grain-gradient-bg

A gradient in one of seven shapes (wave, blob, ripple, dots, truchet, corners, sphere), with grain mixed through the colour rather than layered over it.

The grain is the point. A shallow ramp crossing a wide frame has only about fifty usable 8-bit levels and plateaus into visible bands wherever it is composited; noise breaks those plateaus up. Set noise to 0 and the banding comes back. Like the dither grid, it is measured in real pixels and ignores scale.

Distinct from mesh-gradient-bg, which is three drifting blobs composited on the GPU, and from animated-noise-grain, which is a grain overlay with no gradient of its own.

Render with --gl=angle.

The grain is the point: a shallow ramp across a wide frame has only ~48 usable 8-bit levels and plateaus into visible bands, and noise is what breaks them up; set noise to 0 and the banding returns. Distinct from mesh-gradient-bg (three drifting blobs) and animated-noise-grain (a grain overlay with no gradient). Render with --gl=angle.

Agent notes

Install first, then import the copied source component locally. AI guide →

Import
@/remotion/primitives/grain-gradient-bg
  • Use when: full-frame shader backgrounds and ambient GPU fields.
  • Customize: backgroundColor, colors, shape, softness, plus copied source for timing, layout, colors, and typography.
  • Rule: do not import this component from the remotion-ui npm package; it is copied into your project.

Usage

Example
import { GrainGradientBg } from "@/remotion/primitives/grain-gradient-bg"; // Render with --gl=angle <GrainGradientBg shape="wave" noise={0.35} />

API Reference

PropTypeDescription
backgroundColorstringStage the shape sits on.
colorsstring[]Up to 7 colors, blended across the shape.
shape"wave" | "dots" | "truchet" | "corners" | "ripple" | "blob" | "sphere"The form the gradient takes. Each is a different field, not a preset.
softnessnumberEdge hardness between colors, 0 = posterised, 1 = smooth.
intensitynumberDistortion between the color bands, 0–1.
noisenumberGrain overlay, 0–1. Measured in real pixels, so it ignores scale.
scalenumberOverall zoom, 0.01–4.
speednumberMultiplies how far the field travels per second.

On this page