8 JavaScript Libraries to Animate SVG

SVG is a resolution-independent graphic. That means it will look good on any type of screen without suffering any loss of quality. Beyond that, you can also make SVG come alive with some animation effects.

In one of the post of our SVG series previously, we have shown you how SVG animation works with the <animate> element albeit at a low level. This time, we will share a couple of JavaScript libraries that help extends SVG animation to the next level.

More related:

1. Vivus

Vivus is a JavaScript library that gives your SVG the appearance of being drawn. Vivus works out of the box without a need for any dependencies (e.g. jQuery). Simply include the .js file in your HTML, and designate the SVG element you want to animate, along with some preset options to start the animation right away.

For example:

new Vivus( 'svg-element', { type: 'oneByOne', duration: 200 });

The above will animate my SVG element that has the svg-element ID in 200 millisecond. Each element of this SVG will be drawn one after the other within that time frame.

svg vivus

2. BonsaiJS

Bonsai is a powerful JavaScript library that allows you to draw, morph as well as animate graphical elements on web pages.

It supports both HTML5 graphic type Canvas and SVG. With Bonsai, you can build a simple rectangle or a circle or if you like, a full-fledged multiplayer animated game like this one.

You can use Orbit to feel how Bonsai works in live action or check out a couple of these impressive examples to draw inspiration from.

svg bonsai

3. Velocity

Velocity is a JavaScript library built for fast animations. Velocity’s speed when rendering animation is incredibly fast. It outperforms jQuery, and even CSS, in comparison.

Velocity’s API works similarly to the animation in jQuery, except it uses the keyword alias $.velocity() instead of $.animate(). That aside, you can use the exact same animation keywords such as fadeIn and fadeOut.

svg velocity

4. Raphael

RaphaelJS is a library that allows you to draw as well as animate vector graphic SVG on web pages. It supports a wide range of browsers, which pretty much makes Raphael the most dependable JavaScript library in the niche.

With RaphaelJS, you can build interactive analytic charts, world maps, and game interactions akin to that of Counter-Strike.

svg raphael

5. Snap

SnapSVG is another popular JavaScript library for SVG animation developed by Raphael developer, Dmitry Baranovskiy, along with the Adobe Web Platform Team from the ground up.

Unlike Raphael though, SnapSVG is meant for only the latest browsers. That allows the library to be significantly smaller than Raphael and to support SVG features like clipping and masking.

svg snapjs

6. Lazy Line Painter

Lazy Line Painter is a jQuery plugin for animating SVG paths to animate the drawing sequence, similar to Vivus.

The bad news is this plugin only does this very specific thing. Hence, when you import SVG from apps like Illustrator or Inkscape, ensure that there is no Fill color left on your SVG, just the paths.

svg lazyline

7. SVG.js

SVG.js is a lightweight library for manipulating and animating SVG. With this library, you’ll be able to animate the size, position or color within your SVG element.

It not only animates though; you can also apply additional plugins to add extra functionalities. This example uses the svg.filter.js plugin to apply filters like gaussian blur, desaturate, contrast, sepia etc. to the image.

svg svgjs

8. Walkway

Walkway supports three type of elements, path, line, and polyline used to draw SVG lines. Here is an example from Polygon that shows the PlayStation 4 console line animation.

svg walkway