docs / atmospheres / routa
Routa
ground frost. water freezes below the surface, lifts the clay into low cells, then breaks it along the walls between them. it is relief first and almost still: fissures propagate across the first half-minute, settle, and never loop or breathe.
intensity · roomrsc · client
provenance
authored in usvalayer
atmospheresintensity
room · the whole environment. nothing competes with itcomposition
wraps a whole region; content sits above the ground in normal flowsavi is its home: the fissures hold pigment there. dark grounds get the raking key insteadone atmosphere per page. it is the room, nothing layers over itnot an ambient pulse. it does not float above the page or breathe like foga11y
the canvas layer isaria-hidden and pointer-transparent · reduced motion paints the mature frame at twenty-seven seconds and stopsjest-axedependencies
ogl · atmospheres-core from the same packagelive demo · try it out
cold from underneath
the fissures hold the dark at every frozen seam
customize
modeauto reads the ground, or force stain / key
speeddomain drift, barely perceptible
opacityoverall strength, 0 to 1
advanced18
cellScalefrost cells across the short side
heavehow high the cell interiors lift
crackWidthwidth of the fissure at each wall
crackDepthhow far the walls fall below the surface
unevenScalefrequency of the broad ground swell
unevenhow differently neighbours lift
driftdomain travel per second, near still
growthRateone-shot fissure propagation per second
slopeheight-gradient gain before the normal
roughOren-Nayar roughness, 0 to 1
ambientfill under the raking key
keystrength of the raking key
reliefdamp held in the lee of a heave, light grounds only
ditherdither amplitude for dark-ground emission
light · xlateral rake of the key across the ground
light · yvertical rake of the key
light · zkeep low so the key stays grazing
light · coloroptional cold key for the dark ground
usage
import { Routa } from "@usva-ui/react/atmospheres/routa";
<Routa>
<Article />
</Routa>props
| prop | type | default | notes |
|---|---|---|---|
| children | ReactNode | — | rendered above the frozen ground, in normal flow. |
| speed | number | 1 | domain drift multiplier. barely perceptible either way. |
| mode | "emissive" | "absorptive" | — | forces the material. by default a light ground stains its fissures and a dark ground catches the raking key. |
| light | { direction?; color? } | [-0.68, 0.46, 0.38] | the low raking key. keep z low, the heave only reads when the key rakes across it. color only affects the dark-ground reading. |
| opacity | number | 1 | overall opacity, 0 to 1. |
| params | Partial<RoutaParams> | — | the frost field: cellScale, heave, crackWidth, crackDepth, unevenScale, uneven, drift, growthRate, slope, rough, ambient, key, relief, and dither. relief is the damp a light ground holds in the lee of a heave, and does nothing on a dark one. |
get it
bun add @usva-ui/reactusage
import { Routa } from "@usva-ui/react/atmospheres/routa";
<Routa className="min-h-svh">
<Article />
</Routa>