Haze
Drifting smoke lit by neon from below or a side: three layers of one noise tile, slid and lit each frame, no blur.
New in 1.7.
Every cue, on the frame
Lumen Board runs 2,048 DMX channels from one laptop and fires each cue within 4 ms of the click track.
Installation
npx shadcn@latest add https://neonkit.heyaadi.com/r/haze.jsonUsage
import { Haze } from "@/components/ui/haze"
<section className="relative overflow-hidden bg-[#05060a]">
<Haze light="bottom" />
<h1 className="relative">Every cue, on the frame</h1>
</section>Examples
Side light
light="left" or "right" rakes the smoke from the side and leaves the far half dark for copy.
From above
light="top" with thick, dim smoke gives a quiet room for a form.
Under Lasers
Stack it under Lasers or Light Rays, and the beams sit in a room rather than on a flat background.
API reference
One canvas at half resolution that fills the nearest positioned parent. Accepts native div attributes.
| Prop | Type | Default |
|---|---|---|
color | NeonColorColor of the light in the smoke. Near the source it runs whiter. | inherited |
light | "bottom"Which edge the light comes from. | "bottom" |
density | numberHow thick the smoke is, 0 to 1. | 0.6 |
intensity | numberBrightness of the light, 0 to 1. | 0.85 |
speed | numberSpeed multiplier for the drift. 0 holds still. | 1 |
seed | numberSame seed, same smoke. | 1 |
Accessibility
- Decorative: rendered with aria-hidden and pointer-events: none.
- The smoke is one seamless noise tile, built once per seed and shared by every instance. Each frame only slides three copies of it and lights them with a gradient: no blur filters.
- It pauses offscreen and in hidden tabs, and draws one still frame under prefers-reduced-motion.