ns-ui / loud

Scroll Defrost

Scroll-scrubbed defroster — a pinned full-bleed image behind rippled shower glass anneals from heavy frost with chromatic fringing to optical clarity, sealed by a specular sweep.

Use when a pinned scroll-scrubbed WebGL shader that anneals a full-bleed image from frosted shower glass to clarity as you scroll; use to reveal a real photo/image, not an abstract or generative scene; pick reveal-ripple-tiles instead when the reveal should be driven by the cursor and a water sim rather than by scroll position, reveal-cloth-unfurl when it should unroll like fabric, or scroll-story-strata when the scroll carries distinct content sections rather than one image.

Install

npx shadcn add https://design.helpmarq.com/r/scroll-defrost.json
  • scroll
  • webgl
  • shader
  • image
  • refraction
  • glass
  • hero

ns-ui / scroll-defrost

Scroll is the defroster.

A pinned still behind rippled shower glass. Scrub down to anneal the pane — refraction, chromatic fringing and frost scatter melt to optical clarity, fully reversible.

SCROLL

Annealed. Scroll back up to refrost the pane.

Props

PropTypeDefaultDescription
src?stringimage url; omit for a generated monochrome studio still
alt?string"Image annealing from frosted glass to optical clarity"
caption?string"SCROLL TO ANNEAL"mono caption on the side rail
maxOffset?number42px of refraction offset at full frost
frostRadius?number10px radius of the 5-tap frost scatter at full frost
dispersion?number0.012chromatic dispersion step between R/G/B offset scales
className?string
onProgress?(p: number) => voidrendered (lerped) progress 0–1, called from the rAF loop