docs / atmospheres / vare
Väre
a few broad wavefronts cross the frame from off to the right and interfere. on a dark ground the crests glow; on savi the same ripples press into clay, troughs holding a warm damp pigment. it needs its irregularity: tune that out and the bands snap into a striped diagram.
intensity · roomrsc · client
provenance
authored in usvalayer
atmospheresintensity
room · the whole environment. nothing competes with itcomposition
a hero or full-page room, its content as children in normal flowdark and light themes both work; the blend resolves itself per groundnever behind dense reading surfaces or another atmospherenot a card texture. it is a room, one per pagea11y
the canvas layer isaria-hidden and pointer-events-none · reduced motion paints one still frame · without WebGL2 the canvas never mountsjest-axedependencies
ogl · atmospheres-core from the same packagelive demo · try it out
bands, not waves
move the pointer and the fronts warp as the lens passes
customize
speedwave rate multiplier
opacityband strength, 0 to 1
modeauto reads the ground, or force emit / stain
interactivea phase-space lens bends the bands toward the pointer
bodythe front of the ramp, reads accent
deepthe back of the ramp
edgethe bright nodes where fronts cross
advanced17
angleshared travel direction of the fronts, radians
spreadhalf-width of the k-vector fan, radians
wavenumberbase band frequency, each front scatters around it
field speedintrinsic travel rate of the fronts
warpamplitude of the domain warp that bends the field
warpScalespatial scale of that warp
jitterper-front phase drift, keeps fronts from lining up
softridge exponent, higher is a narrower boundary
detailfrequency of the band-thickness noise
nodeextra light where two fronts cross
gainoverall brightness of the ramp
source · xoff-frame origin x, half-height units by aspect
source · yoff-frame origin y, half-height units
falloffinverse-square decay, higher voids sooner
spandistance over which the hue ramps front to back
lensstrength of the pointer lens in phase space
lensSigmareach of that lens
usage
import { Vare } from "@usva-ui/react/atmospheres/vare";
<Vare
speed={1}
>
<Hero />
</Vare>props
| prop | type | default | notes |
|---|---|---|---|
| children | ReactNode | — | rendered above the bands, in normal flow. |
| speed | number | 1 | wave rate multiplier. |
| interactive | boolean | true | a lens in phase space follows the eased cursor and bends the bands as it passes. |
| opacity | number | 1 | overall opacity of the bands, 0 to 1. |
| mode | "emissive" | "absorptive" | — | forces the blend. by default a dark ground emits and a light ground stains, which is the only way this survives a light theme. |
| colors | { body?; deep?; edge? } | — | on dark ground, the front-to-back ramp. on savi, body combines with theme ink to make the trough pigment. omitted stops read their token. |
| params | Partial<VareParams> | — | the field: angle, spread, wavenumber, speed, warp, warpScale, jitter, soft, detail, node, gain, source, falloff, span, lens, lensSigma. |
get it
bun add @usva-ui/reactusage
import { Vare } from "@usva-ui/react/atmospheres/vare";
<Vare className="min-h-svh">
<Hero />
</Vare>