@caustics/noise-grain · v1.0.0
svelte · react · vanilla
60fps · 6KB gzipped
$39 →
component · 005
Noise Grain
The film grain aesthetic that makes flat design feel alive.
Preset
Speed0.6
Intensity0.5
Or get everything for $499 →
Quick Start

That's it. Your site now has noise grain.

npm install @caustics/noise-grain

<script>
  import { NoiseGrain } from '@caustics/noise-grain';
</script>

<NoiseGrain preset="film" />
Configuration API

Sensible defaults. Documented types.

Prop Type Default Description
preset string "film" Named preset. Overrides individual props when set.
speed number 1.0 Animation speed multiplier. 0 = static.
intensity number 0.5 Effect intensity. Range: 0–1.
colors string[] undefined Override palette. Accepts hex, hsl, or CSS custom properties.
reducedMotion 'pause' | 'static' 'static' Behavior when prefers-reduced-motion is active.
class string undefined Additional CSS classes applied to the root element.
What's Included

A zip. Everything else lives at caustics.dev.

caustics-noise-grain/
├── svelte/     NoiseGrain.svelte · index.ts · types.ts
├── react/      NoiseGrain.tsx · index.ts · types.ts
├── vanilla/    noise-grain.ts · compiled .js
├── docs/       README.md · API.md · CHANGELOG.md
├── LICENSE.md  MIT, commercial use included
└── package.json

Noise Grain adds an organic texture layer over any background. At 3% opacity it’s imperceptible but makes the site feel alive — exactly what you see on this page. At higher opacities it creates a film grain aesthetic that pairs beautifully with dark UI.

Three rendering modes: lightweight CSS SVG filter (no JS), Canvas pixel manipulation, and WebGL shader (highest performance at full screen).

Ready to ship?

Get Everything — $499

MIT license · commercial use included · lifetime updates