Menu
Docs menu

Rise

A vertical ramp whose top edge waves and drifts, dark above to bright below.

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="rise" cell={4} palette={["#000000", "#00b2ff", "#d6efff"]} />

A colour field that rises from the bottom of the surface. height sets where the edge sits, wave gives it a slow sine sway, and grain roughens it with fractal noise. Above the edge the tone drops to the first palette colour; below it the ramp reaches the brightest stops, with specks of noise near full brightness. Made for footers and section backgrounds.

The props group like this:

Shape: height, wave, grain. Look: palette runs dark to bright, top to bottom. Motion: speed drifts the edge.

Examples

Footer band

Chunky cells in navy to blue under a big wordmark.

Expanded preview

Tide line

A low edge with a stronger wave and heavy grain.

Expanded preview

Props

PropTypeDefaultDescription
heightnumber0.72Where the edge sits, 0 to 1. Higher means more of the surface is bright. 0 to 1.
wavenumber0.05How far the edge sways in a slow sine. 0 to 0.2.
grainnumber0.3How much fractal noise roughens the edge. 0 to 0.6.
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 and aria-hidden. Put real text on top of it, not inside it.
  • With reduced motion it draws one still frame at 3s 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.