Streams of glowing glyphs raining down in layered columns
| Name | Type | Default | Description |
|---|---|---|---|
colors | [string, string] | ["#9D7BFF", "#FFD6F5"] | Colour of the falling trails and colour of the bright glyph leading each stream. |
backgroundColor | string | "#0A0A0A" | Colour behind the rain. |
mode | "auto" | "glow" | "ink" | "auto" | glow adds light for dark backgrounds, ink prints coloured glyphs for light ones. auto picks from the background brightness. |
glyphs | string | half-width katakana, digits and A–F | Characters the streams are made of. Any string works: binary, hex, letters, symbols or your brand's characters. |
fontFamily | string | system monospace | Font used to draw the glyphs. Use a font that is already loaded on the page. |
glyphSize | number | 18 | Height of the glyphs in pixels. |
spacing | number | 1 | Horizontal gap between columns, from 0.6 (packed) to 3 (sparse). |
density | number | 0.45 | Share of columns carrying a stream at any moment, from 0 to 1. |
trail | number | 16 | Length of each stream's fading trail, in glyphs. |
speed | number | 1 | How fast the streams fall. |
variance | number | 0.5 | How much fall speed varies between columns, from 0 (uniform) to 1. |
angle | number | 0 | Tilt of the rain in degrees, as if blown by wind. |
shuffle | number | 0.35 | How often glyphs in the trails change character, from 0 (frozen) to 1. |
mirror | boolean | false | Draw every glyph mirrored, as in the classic film titles. |
depth | number | 0.6 | Visibility of a second, smaller and slower layer of rain behind the first, from 0 (off) to 1. |
glow | number | 0.22 | Soft bloom around the bright glyphs, from 0 to 3. |
intensity | number | 1 | Overall exposure. |
interactive | boolean | true | Respond to the pointer. |
bulletTime | boolean | true | Time slows around the pointer: streams crawl past it and their trails linger, then pick up speed again. |
slowRadius | number | 170 | Radius of the slowed zone around the pointer, in pixels. |
slowStrength | number | 0.6 | How much time slows at the centre of the zone, from 0 (no effect) to 1 (nearly frozen). |
clickBurst | boolean | true | Clicking releases a cascade of new streams from the click point, fanning out column by column. |
burstSize | number | 1 | How many columns a click cascade spans, from 0 to 3. |
paused | boolean | false | Freeze the rain. Reduced-motion users always get a still frame. |
quality | number | 1 | Resolution scale from 0.25 to 1. Lower values are cheaper on large screens. |
ref | { burst } | — | burst(x, y) releases a cascade from a point given as fractions of the width and height. |
children | ReactNode | — | Content placed over the background. |
className | string | — | Classes for the root element. It fills its parent, with a 240px minimum height. |
style | CSSProperties | — | Inline styles for the root element. |
colors[string, string]Colour of the falling trails and colour of the bright glyph leading each stream.
["#9D7BFF", "#FFD6F5"]backgroundColorstringColour behind the rain.
"#0A0A0A"mode"auto" | "glow" | "ink"glow adds light for dark backgrounds, ink prints coloured glyphs for light ones. auto picks from the background brightness.
"auto"glyphsstringCharacters the streams are made of. Any string works: binary, hex, letters, symbols or your brand's characters.
half-width katakana, digits and A–FfontFamilystringFont used to draw the glyphs. Use a font that is already loaded on the page.
system monospaceglyphSizenumberHeight of the glyphs in pixels.
18spacingnumberHorizontal gap between columns, from 0.6 (packed) to 3 (sparse).
1densitynumberShare of columns carrying a stream at any moment, from 0 to 1.
0.45trailnumberLength of each stream's fading trail, in glyphs.
16speednumberHow fast the streams fall.
1variancenumberHow much fall speed varies between columns, from 0 (uniform) to 1.
0.5anglenumberTilt of the rain in degrees, as if blown by wind.
0shufflenumberHow often glyphs in the trails change character, from 0 (frozen) to 1.
0.35mirrorbooleanDraw every glyph mirrored, as in the classic film titles.
falsedepthnumberVisibility of a second, smaller and slower layer of rain behind the first, from 0 (off) to 1.
0.6glownumberSoft bloom around the bright glyphs, from 0 to 3.
0.22intensitynumberOverall exposure.
1interactivebooleanRespond to the pointer.
truebulletTimebooleanTime slows around the pointer: streams crawl past it and their trails linger, then pick up speed again.
trueslowRadiusnumberRadius of the slowed zone around the pointer, in pixels.
170slowStrengthnumberHow much time slows at the centre of the zone, from 0 (no effect) to 1 (nearly frozen).
0.6clickBurstbooleanClicking releases a cascade of new streams from the click point, fanning out column by column.
trueburstSizenumberHow many columns a click cascade spans, from 0 to 3.
1pausedbooleanFreeze the rain. Reduced-motion users always get a still frame.
falsequalitynumberResolution scale from 0.25 to 1. Lower values are cheaper on large screens.
1ref{ burst }burst(x, y) releases a cascade from a point given as fractions of the width and height.
—childrenReactNodeContent placed over the background.
—classNamestringClasses for the root element. It fills its parent, with a 240px minimum height.
—styleCSSPropertiesInline styles for the root element.
—