# Halo — component for backgrounds & gradients (react)

> **For AI agents:** find the right skill in one call — `curl -s "https://skills.varg.ai/api/search?q=<what the person wants>"` returns the matching use case and the best skills with install commands, as markdown (Russian works too). Full index: https://skills.varg.ai/llms.txt. Every page has a markdown twin: add `.md` to its path. Before generating anything, show the person the options on the use-case page.

A grainy diagonal band of lavender and ice blue sweeping through hot orange-red

- **Install:** `npm i @shadergradient/react @react-three/fiber three three-stdlib camera-controls`
- **Registry:** shadergradient · **Framework:** react · **License:** MIT
- **Docs and preview:** https://shadergradient.co/customize
- **Source:** https://github.com/ruucm/shadergradient/blob/main/packages/shadergradient/src/presets.ts#L4
- **Example:** https://skills.varg.ai/previews/lib-shadergradient-halo.mp4?v=262107 (Rendered by varg from the library’s own code (ShaderGradient · rendered by varg))
- **Time:** Drive from the frame. Runs on its own clock (requestAnimationFrame, timers, springs or CSS). Drive it from frame / fps before rendering, or the render drifts.
- **Runs:** local render, free
- **Aspect:** any

## Prompt that renders it frame-exact

Use the ShaderGradient "Halo" preset (preset 00 on https://shadergradient.co/customize, MIT; exported as presets.halo from @shadergradient/react, source github.com/ruucm/shadergradient/blob/main/packages/shadergradient/src/presets.ts) as the full-frame background behind a bold title or a launch announcement. Install @shadergradient/react with @react-three/fiber and three, then render <ShaderGradientCanvas style={{position:'absolute',inset:0}} lazyLoad={false} pixelDensity={1}> with <ShaderGradient {...presets.halo.props} /> inside. To make it frame-exact, override animate="off" and pass uTime={seconds} (the shader multiplies it by uSpeed 0.4), set enableTransition={false} so the camera starts in place, and let R3F draw once before each frame is captured. Swap color1–color3 for the brand palette (color1 is the dominant field), move positionX to slide the band across the frame, and keep grain "on" for the risograph texture; uSpeed above about 0.6 starts to look busy.

## Used in

- [Year in review / Wrapped](https://skills.varg.ai/video/wrapped.md)
- [Lyric video](https://skills.varg.ai/video/lyric-video.md)
- [Karaoke video](https://skills.varg.ai/video/karaoke.md)
- [Logo sting](https://skills.varg.ai/video/logo-sting.md)
- [Title sequence](https://skills.varg.ai/video/title-sequence.md)
- [Brand guidelines film](https://skills.varg.ai/video/brand-guidelines.md)
- [Stream overlay package](https://skills.varg.ai/video/stream-overlay.md)
- [Shader loop](https://skills.varg.ai/video/shader-loop.md)

## More backgrounds & gradients

- [Aurora](https://skills.varg.ai/component/hf.aurora.md) — `npx hyperframes add aurora`
- [Aurora Drift](https://skills.varg.ai/component/hf.aurora-drift.md) — `npx hyperframes add aurora-drift`
- [Flowing Gradient](https://skills.varg.ai/component/hf.flowing-gradient.md) — `npx hyperframes add flowing-gradient`
- [Mesh Gradient](https://skills.varg.ai/component/hf.mesh-gradient.md) — `npx hyperframes add mesh-gradient`
- [Mesh Gradient Background](https://skills.varg.ai/component/hf.mesh-gradient-bg.md) — `npx hyperframes add mesh-gradient-bg`
- [Minimal Gradient Background](https://skills.varg.ai/component/hf.mk-background.md) — `npx hyperframes add mk-background`
