Menu
Docs menu

DitherEffect

The 18 procedural registry effects through one component.

Preview

Expanded preview

Installation

Terminal window
pnpm add astro-dither

Or copy the source into your project:

Terminal window
npx astro-dither add effect

Usage

src/pages/index.astro
---
import { DitherEffect } from "astro-dither";
---
<DitherEffect effect="plasma" params={{ scale: 3 }} />

The generic surface: pick an effect, pass its typed params, and the engine does the rest. Use DitherGlobe for the globe: it supplies the required land mask. Effect pages document each field's own params.

Props

PropTypeDefaultDescription
effectEffectNamerequiredOne of the 19 registry names.
paramsRecord<string, number>{}The effect's own settings, typed per effect.
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.
srcstringundefinedImage texture for effects that sample one (globe).

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.