Everything You Need to Know About SVG
css-tricks.com
css-tricks.com
Also, this "SVG Can Do That??" presentation[1] is "old" by internet standards but is still (to me, at least) somewhere between eye-opening and mind-blowing:
https://stackoverflow.com/a/54462467/3917602
The real problem with SVG is that you need to be a techie type rather than a paintbrush wielding type to get the most out of SVG. In companies this is forbidden. You can't have a techie do design. So you have to have off the shelf bloated 'assets' because that is how they come out of Illustrator. I find I always have to roll my own even for the simplest things such as the 'moon' icon that I thought worthy of putting in to a Stack Overflow answer for 'future reference'.
Clearly I will be watching every CSS-Tricks video on this series and I hope that this gets mentioned in it:
https://jakearchibald.github.io/svgomg/
This allows you to spot 'obvious' optimisations.
I put it into SVGOMg, and it quickly identified the font as the culprit. I removed the font and the file size went to 0.6KB.
Does Illustrator include the file size of the font when it exports to SVG?
I'm surprised though that a Flash-like software tool doesn't exist for composing complex SVGs w/ animations and interactions. Given how accessible svg outputs are, people could be creating some amazing Flash-like things that can be run just about anywhere. Admittedly, coding svg's can be pretty tricky to learn.
> The former Adobe Flash Pro was fully rewritten by Adobe to migrate from the now obsolete flash animations to the modern SVG animations. You can export the resulting SVG animations along with a custom javascript library, or choose to save in SVG+SMIL using plugins like “flash2svg”.
This is a good start, but it's limited to "move to front." If you wanted to move something between two intermediate planes, you'd have to reshuffle the whole stack.
<svg> <g id="z-order-0"></g> <g id="z-order-1"></g> <g id="z-order-2"></g> </g>
Then you can change the z-order by moving the element to the appropriate group. Elements are rendered in the order of an inorder traversal which is why this works.
parentNode.appendChild(node); // move to top
parentNode.insertBefore(node, parentNode.firstChild); // move to the bottom
parentNode.insertBefore(node, someNode); // move just below someNode
parentNode.insertBefore(node, someNode.nextSibling); // move just above someNode(On the other hand, I very much appreciate the simplicity of the Flash approach from a performance point of view. Performance wasn't really a concern when SVG was being developed. Opera's overriding concern with SVG was trying to compete with Flash on features.)
An age of miracles I tell you.
And I suppose by this you mean what you said elsewhere, that Flash's editor is second to none? Because I'm pretty sure that the graphics quality for both is about the same.
On the one hand, the W3C has this listed under new features for SVG 2.0:
"Allowed <paint> values and marker properties to take the child keyword and <child-selector> values to support ID-less referencing."[1]
That would mean you could have multiple inline SVGs on the same web page and avoid potential nameclashes from gradients and/or patterns having the same id.
On the other hand, that same page lists mesh gradients as a feature of SVG 2.0. I vaguely remember on the SVG archive that the browser vendors said they weren't going to implement that.
[1] https://www.w3.org/TR/2018/CR-SVG2-20180807/changes.html