Most suitable for this workshop:
Things will probably work fine in Safari or Edge, but I haven’t tested them an I’m not familiar with how they work, so if that’s all you have on your computer, I would recommend that you download Firefox.
MacOS X: TextEdit
Windows: NotePad
Linux: gEdit
These are very simple programs that just do one thing - edit text.
They likely won’t highlight code to make it easier to read, and they won’t offer a live preview of your SVG, so you should keep the SVG open in a browser while editing.
If you’re working this way, each time you want to update the image you will need to save your file (Ctrl + S in the editor) and refresh the browser (Ctrl + R in the browser).
These programs are ✨ super fancy text editors ✨. They will automatically highlight SVG syntax, so that, for example, something like <text>text</text>
will be much easier to read, because <tags>
will be shown in a different color to their content. You can install extensions/packages to live-preview SVG files in the editor as you’re working on them (see below).
These three editors are all Free Software, so their source code is publically available and reusable, which is great. They’re made by data-hungry corporations though, so below you’ll find instructions to stop them ‘phoning home’.
Turn off data tracking
Install SVG Preview
Turn off data tracking
Install SVG Preview
Turn off data tracking
Install SVG Preview
I’ve been using Inkscape for many years and I’m excited about the brand new Inkscape 1.0! So many improvements!
The following tools are not open source, but they’re commonly used for vector graphics and can read and write SVG.
An awesome multipurpose color tool!
For optimizing SVG files.
You can also access inkscape via the command line in order to batch process and convert SVGs
Right-click on an SVG, choose ‘Inspect Element’ or ‘Inspect’. Dig into from other people’s SVGs on the web, and learn from them. Debug your animations and monitor their performance.
Invaluable graphical version of SVGO. I use this tool on pretty much every SVG I touch, to make files smaller, cleaner and clearer.
Often the basic timing function keywords (ease
, linear
etc) won't get you the exact effect you're looking for. In those cases, you can instead apply a custom cubic bézier curve, like this:
animation-timing-function: cubic-bezier(.17,.67,.58,-0.46);
But how do you work out that weird series of numbers? you use cubic-bezier.com to visually create and compare bézier curves for animation!
(We won’t be going into Javascript for this workshop, but just in case you feel like digging deeper)
makes scripted creation/manipulation of SVG in your website/application much, much easier.
animation library - Quite easy to use, very lightweight, lots of functionality and good performance - it’s really great! I would give it 5 stars but… unlike SVG.js, KUTE.js & GSAP, SVG’s cross-browser transform-origin woes have not been fixed in this library.
animation library - more technically-focused, modular and quite well-documented. transform-origin is sorted! Community seems a bit lacking though.
Very popular, but not open source, so it’s useless for my purposes.