Vanta
Animated 3D backgrounds for your website
README
Vanta JS
What is Vanta? / FAQs
- Add 3D animated digital art to any webpage with just a few lines of code.
- How it works: Vanta inserts an animated effect as a background into any HTML element.
- Works with vanilla JS, React, Angular, Vue, etc.
- Effects can interact with mouse/touch inputs.
- Effect parameters (e.g. color) can be easily modified to match your brand.
- Total additional file size is ~120kb minified and gzipped (mostly three.js), which is smaller than comparable background images/videos.
- Vanta includes many predefined effects to try out. More effects will be added soon!
Basic usage with script tags:
- ``` html
- <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r134/three.min.js"></script>
- <script src="https://cdn.jsdelivr.net/npm/vanta/dist/vanta.waves.min.js"></script>
- <script>
- VANTA.WAVES('#my-background')
- </script>
- ```
More options:
- ``` js
- VANTA.WAVES({
- el: '#my-background', // element selector string or DOM object reference
- color: 0x000000,
- waveHeight: 20,
- shininess: 50,
- waveSpeed: 1.5,
- zoom: 0.75
- })
- ```
- el: The container element.
- The Vanta canvas will be appended as a child of this element, and will assume the width and height of this element. (If you want a fullscreen canvas, make sure this container element is fullscreen.)
- This container can have other children. The other children will appear as foreground content, in front of the Vanta canvas.
- mouseControls: (defaults to true) Set to false to disable mouse controls. Only applies to certain effects.
- touchControls: (defaults to true) Set to false to disable touch controls. Only applies to certain effects.
- gyroControls: (defaults to false) Set to true to allow gyroscope to imitate mouse. Only applies to certain effects.
- NOTE: Each effect has its own specific parameters. Explore them all at www.vantajs.com!
Updating options after init:
- ``` js
- const effect = VANTA.WAVES({
- el: '#my-background',
- color: 0x000000
- })
- // Later, when you want to update an animation in progress with new options
- effect.setOptions({
- color: 0xff88cc
- })
- // Later, if the container changes size and you want to force Vanta to redraw at the new canvas size
- effect.resize()
- ```
Cleanup:
- ``` js
- const effect = VANTA.WAVES('#my-background')
- effect.destroy() // e.g. call this in React's componentWillUnmount
- ```
Usage with React Hooks:
npm i vanta, then import a specific effect as follows. Make sure three.js or p5.js has already been included via <script> tag.
- ``` js
- import React, { useState, useEffect, useRef } from 'react'
- import BIRDS from 'vanta/dist/vanta.birds.min'
- // Make sure window.THREE is defined, e.g. by including three.min.js in the document head using a