Menu
Docs menu

DitherGradient

Linear, radial, conic or wave gradients through the ordered-dither engine.

Preview

Expanded preview

Installation

Terminal window
pnpm add astro-dither

Or copy the source into your project:

Terminal window
npx astro-dither add gradient

Usage

src/pages/index.astro
---
import { DitherGradient } from "astro-dither";
---
<DitherGradient mode="linear" palette={["#000000", "#00b2ff"]} />

A typed wrapper over the gradient effect. mode picks the ramp and palette the colours; everything else is the shared effect API.

Props

PropTypeDefaultDescription
mode"linear" | "radial" | "conic" | "wave""linear"The ramp shape.
anglenumber180Ramp direction in degrees.
cxnumber0.5Centre x for radial/conic.
cynumber0Centre y for radial/conic.
radiusnumber1.05Radial reach.
palettestring[]the effect's2 to 8 colours, paper first, brightest last. transparent works.
cellnumber2Size of one dither cell in CSS pixels. Rounded to whole device pixels so cells stay even.
matrix2 | 4 | 8 | "noise"8The Bayer threshold size, or noise for a random look.
speednumber1Playback speed. 0 draws one still frame.
stillTimenumberthe effect'sThe moment drawn when motion is off or reduced, in seconds.
levelsnumber0 (all)Tones the field snaps to before dithering. Low values give hard, posterised steps.
bloomnumber0Bloom around lit cells, 0 to 1. Set a positive prop to create the overlay before overriding it with CSS --dither-bloom.
bloomRadiusnumber10Bloom blur in CSS pixels. CSS --dither-bloom-radius overrides it.
classstringundefinedClasses on the surface element, for size and position.

Notes

  • Decorative surfaces render aria-hidden. Put real text on top, not inside them.
  • With reduced motion it draws one still frame and stops.
  • It pauses when scrolled out of view or when the tab is hidden.