Preview
<DitherEffect effect={"noise"} params={{"scale":2.5,"warp":1.5,"gain":1.2}} palette={["#000000","#101030","#38406b","#9fb2d8"]} cell={2} matrix={8} speed={1} />Palette
Matrix
Installation
pnpm add astro-dithernpm i astro-ditherbun add astro-ditherOr copy the source into your project: npx astro-dither add effect
Usage
---
import { DitherEffect } from "astro-dither";
---
<DitherEffect effect="noise" />Domain-warped fractal noise that slides over itself. scale zooms the texture, warp bends it, and gain pushes the contrast up until the palette steps read as hard bands.
The props group like this:
Texture: scale, warp. Contrast: gain.
Examples
Fog
Low scale and low gain give a flat, quiet wash.
<DitherEffect effect={"noise"} params={{"scale":1,"warp":1.5,"gain":0.7}} palette={["#000000","#101030","#38406b","#9fb2d8"]} cell={2} matrix={8} speed={1} />Marble
More warp folds the noise into veined, marble-like streaks.
<DitherEffect effect={"noise"} params={{"scale":3,"warp":3.2,"gain":1.6}} palette={["#000000","#101030","#38406b","#9fb2d8"]} cell={2} matrix={8} speed={1} />Props
| Prop | Type | Default | Description |
|---|---|---|---|
scale | number | 2.5 | Texture zoom. 0.5 to 8. |
warp | number | 1.5 | How much the noise bends. 0 to 4. |
gain | number | 1.2 | Contrast. 0.2 to 3. |
palette | string[] | the effect's | 2 to 8 colours, paper first, brightest last. transparent works. |
cell | number | 2 | Size of one dither cell in CSS pixels, 1 to 8. |
matrix | 2 | 4 | 8 | "noise" | 8 | The Bayer threshold size, or noise for a random look. |
speed | number | 1 | Playback speed. 0 draws one still frame. |
class | string | undefined | Classes on the surface element, for size and position. |
Notes
- Decorative and
aria-hidden. Put real text on top of it, not inside it. - With reduced motion it draws one still frame at 4s and stops.
- It pauses when scrolled out of view or when the tab is hidden.
- It shares one WebGL context with every other ordered effect on the page.