I have tried to find a proper SVG library for modern browsers. My goal is to decide, what library is suitable for creating simple online SVG editor with eg. text and path editing and clipping text with paths.
I found two libraries, which may be suitable: Snap.svg and Svg.js.
SNAP.SVG
Github: https://github.com/adobe-webplatform/Snap.svg
Source code lines: 6925
Github Stars: 3445
Doc: http://snapsvg.io/docs/
Getting started: http://snapsvg.io/start/
Starter example (JSBIN)
var draw = Snap(800, 600);
// create image
var image = draw.image('/images/shade.jpg',
0, -150, 600, 600);
// create text
var text = draw.text(0,120, 'SNAP.SVG');
text.attr({
fontFamily: 'Source Sans Pro',
fontSize: 120,
textAnchor: 'left'
});
// clip image with text
image.attr('clip-path', text);
SVG.JS
Github: https://github.com/svgdotjs/svg.js
Source code lines: 3604
Github Stars: 1905
Doc: https://svgdotjs.github.io/
Starter example (JSBIN):
var draw = SVG('drawing');
// create image
var image = draw.image('/images/shade.jpg');
image.size(600, 600).y(-150);
// create text
var text = draw.text('SVG.JS').move(300, 0);
text.font({
family: 'Source Sans Pro',
size: 180,
anchor: 'middle',
leading: '1em'
});
// clip image with text
image.clipWith(text);
Usage seems to be rather similar.
What are the main differences between these two libraries?