docs / atmospheres / kynnos
Kynnös
freshly turned earth, still spinning on a wheel far slower than you first notice. one low raking light does all of it, and the ground keeps no shine of its own. swap the theme and the same furrows read as clay, or as brushed metal.
intensity · roomrsc · client
provenance
authored in usvalayer
atmospheresintensity
room · the whole environment. nothing competes with itcomposition
the ground under a hero or a full page region, children in normal flowtune the key with light; it changes more than any params tweaknot a panel fill. it is the room, never a texture inside a cardno blend mode on top: unlike the emissive atmospheres it composites normallya11y
the canvas isaria-hidden and pointer-events-none · reduced motion paints one still frame · no WebGL2 and it never mountsjest-axedependencies
ogl · atmospheres-core from the same packagelive demo · try it out
thrown, not printed
furrows turning on a wheel at about ninety seconds a revolution
customize
speedwheel and drift rate
opacitysurface strength, 0 to 1
modeauto lets the ground decide clay or metal
advanced24
light.xkey azimuth, left to right
light.ykey azimuth, up to down
light.zgrazing height, keep it low
light.colorthe key colour
origin · xwheel origin, forced off-frame
origin · ywheel origin, y up
spinradians per second about the origin
furrowFreqfurrows per unit radius
warpAmtradial warp in furrow spacings, 2 to 4.5
warpFreqspatial frequency of the warp noise
breakAmthow readily a furrow breaks
ridgeShapeprofile exponent, above 1 pinches the crest
depthfurrow depth
slopegain on the height gradient
microScalegrain frequency
microAmtgrain on the normal only
crackScalecraquelure cell frequency
crackAmtcraquelure strength
aocrevice occlusion strength
roughOren-Nayar roughness, 0 to 1
ambientambient fill
keykey light strength
drifthow fast the noise fields evolve on their own
ditherdither amplitude against banding
usage
import { Kynnos } from "@usva-ui/react/atmospheres/kynnos";
<Kynnos
light={{ direction: [-0.72, 0.5, 0.34] }}
className="min-h-svh"
>
<Hero />
</Kynnos>props
| prop | type | default | notes |
|---|---|---|---|
| children | ReactNode | — | rendered above the surface, in normal flow. |
| speed | number | 1 | wheel and drift rate multiplier. 1 is about ninety seconds per revolution. |
| mode | "emissive" | "absorptive" | — | overrides the material. by default the ground decides: light clay on a light theme, brushed metal on a dark one. |
| light | { direction?; color? } | — | the key light. keep direction z low or the grooves stop throwing shadows. colour defaults to the theme: warm daylight on clay, the accent on metal. |
| opacity | number | 1 | overall opacity, 0 to 1. |
| params | Partial<KynnosParams> | — | the surface escape hatch: origin, spin, furrowFreq, warpAmt, breakAmt, depth, microAmt, crackAmt and friends. origin is pushed off-frame and warpAmt is clamped to roughly 2 to 4.5 furrow spacings, so the rings can never read as a vinyl record. |
get it
bun add @usva-ui/reactusage
import { Kynnos } from "@usva-ui/react/atmospheres/kynnos";
<Kynnos className="min-h-svh">
<Hero />
</Kynnos>