An attempt to make SVG smarter, learn more at https://jeremiepat.github.io/svg-extend/
SVG Extend is a standalone library that extend the SVG declarative API
It provides extended component that can be used inside any SVG document
The SVG Extend library provides a declarative API to easily create some basic shapes that are currently not part of the SVG specification:
You can use your usual building tools and install the library through npm:
npm i svg-extend --save
Note : By default, svg-extend is provided as a set of ES6 modules. If you want to use it with old browsers such as IE11 you can use a transpiler such as Babel to build it yourself.
As a convenience, and mostly because the SVG
<script>
tag does not support ES6 modules, the library is provided with a bundle (thesvg-extend.js
file) that can be used out of the box in any browser.
The library has been tested with the following browsers:
Once transpiled into ES5, it should be compatible with any browser supporting
the MutationObserver
API (which include IE11)
Because the customElements
API is not supporting anything outside of the
HTML namespace, this library
is using the MutationObserver
API as a workaround.
It allows to provide the same declarative API through the is
attribute but it
has two drawbacks:
SVGPathElement
,SVGPolygonElement
, or SVGPolylineElement
)MutationObserver
can have a significant performance impact in some