Grain Gradient Free for Aperveil 1.0 WebGPU shader

A softer kind of color.

A directional grain gradient for React with subtle, evolving texture. Set the angle, balance four colors, and export the WebGPU background.

Part of the Free collection for Aperveil 1.0. Public live preview and Color Looks are open. Free Export Kits do not require an account. Purchasing is not available yet.

Free for Aperveil 1.0React exportRaw WGSL

Inside Grain Gradient.

Grain Gradient combines a directional color field with temporal grain that evolves in place. Gradient direction, grain amount, focus and rate are independent controls.

This is a procedural texture, not a scanned film stock or a CSS-only gradient. It does not add grain to your uploaded photographs.

0.901 ms legacy timing (method not recorded; not a pure GPU measurement). 1440x900 @ dpr 2; Metal driver on macOS Version 26.6.2 (Build 25G83); measured 2026-09-03. This is a recorded headless sample, not a browser FPS or mobile-performance guarantee.

Gradient scale

Density of the colour bands; higher values make them narrower and more numerous.

Gradient direction

Rotate the main flow of the colour field.

Grain

Strength of the film grain.

Grain focus

Extra grain gathered around the cursor.

Color Looks preserve these settings. Open the editor for all 14 controls.

From preview to your project.

Choose a Look, tune it in the editor, then download the Export Kit. Install the runtime and copy the generated component into your project.

Every control in the editor is a typed prop. Leave a prop out to keep the value you exported; change one and the running shader updates without restarting. Give the surface a size and pass fallback for browsers without WebGPU.

In Next.js, use a client component and give its container an explicit size. Keep headings, links and accessible content in HTML above the decorative canvas.

Part of the Free collection for Aperveil 1.0. Public live preview and Color Looks are open. Free Export Kits do not require an account. Purchasing is not available yet.

Open editor & export
Markdown guide

Usage example — download GrainGradient.tsx from the editor first. This example imports that local file; it is not the shader component itself.

Terminal
npm install ./vendor/aperveil-runtime-0.1.0.tgz ./vendor/aperveil-react-0.1.0.tgz
GrainGradient usage
"use client";

import GrainGradient from "./GrainGradient";

export default function Hero() {
  return (
    <GrainGradient
      className="hero-shader"
      scale={1.2} colorA="#141729ff"
      fallback={<div className="hero-shader-fallback" />}
    />
  );
}

// .hero-shader { width: 100%; height: 560px; }

Download and extract the complete Export Kit first. Run its local package command from the ZIP root, then copy the component into your project. Public npm and CLI distribution is coming soon.

Made for a real interface.

Add tactile color to an editorial product page. Keep grain restrained behind body copy and use the gradient direction to guide attention toward the primary action.

Grain Gradient used behind an example interface
PAPER & FORMExample composition

Notes on a considered life

Good things take their time.

Objects, spaces and the small rituals that make a day feel like your own.

On the shelf

Objects worth keeping

In the studio

A practice, not a rush

Illustrative layout, not a customer project. The image is a still preview of the selected Look.

An illustrative layout. Your content stays in HTML; the shader sets the atmosphere.

Try this surface in the editor

Before you ship.

What this surface does, where it fits, and where it stops.

All shaders

Make Grain Gradient yours.

Open editor