Skip to content

metaory/gradient-gl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

demo

Deterministic WebGL Gradient Animations

Tiny WebGL library for
Procedural Gradient Animations
Deterministic - Seed-driven


Usage Examples
VanillaReactVue
source in ./examples

🖼️ Showcase Gallery 🌀

Share your seeds & creations!

Usage

npm install gradient-gl
import gradientGL from 'gradient-gl'

// Mounts to <body>
gradientGL('a2.eba9')

// Mounts inside #app
gradientGL('a2.eba9', '#app')

// Access shader program if needed
const program = await gradientGL('a2.eba9')

Mounting Behavior

  • No selector: creates and styles a <canvas> in <body>
  • Selector to an element: creates and styles a <canvas> inside it
  • Selector to a <canvas>: uses it directly, no styles or DOM changes

Styles are overridable.

Vite Configuration

export default {
  build: {
    target: 'esnext',
  },
}

CDN

UNPKG

<script type="module">
    import gradientGL from 'https://unpkg.com/gradient-gl'
    gradientGL('a2.eba9')
</script>

ESM

<script type="module">
    import gradientGL from 'https://esm.sh/gradient-gl'
    gradientGL('a2.eba9')
</script>
 <!-- 🚧 not implemented -->
 <script src=xxx@latest/seed/a2.eba9"></script>

Seed Format

{shader}.{speed}{hue}{sat}{light}

  • Shader: [a-z][0-9] (e.g., a2)
  • Options: [0-9a-f] (hex values)

Explore and generate seeds in the playground

Performance

Animated Gradient Background Techniques

(Slowest → Fastest)

  1. SVG – CPU-only, DOM-heavy, poor scaling, high memory usage
  2. Canvas 2D – CPU-only, main-thread load, imperative updates
  3. CSS – GPU-composited, limited complexity, best for static
  4. WebGL – GPU-accelerated, shader-driven, optimal balance
  5. WebGPU – GPU-native, most powerful, limited browser support

Note

While WebGPU is technically the fastest, WebGL remains the best choice for animated gradients due to its maturity, broad support, and optimal performance/complexity ratio.

TODO: Interactive benchmark app


License

MIT

Contributors 3

  •  
  •  
  •