Let’s say you have the following SVG:
<svg>
<circle cx="20" cy="20" r="20" fill="red" />
</svg>
How can you re-use it multiple times in the same document without duplicating it?
With symbol, you can do so via template objects.
Example
Wrap the shape with <symbol>
and set an id
on it:
<svg>
<symbol id="circle">
<circle cx="20" cy="20" r="20" fill="red" />
</symbol>
</svg>
Then with <use>
, reference the element to render it:
<svg>
<use xlink:href="#circle" />
</svg>
Since the <svg>
containing <symbol>
still occupies space on the page, you’ll want to remove it from the layout flow:
<svg style="display: none;">
<symbol id="circle">
<circle cx="20" cy="20" r="20" fill="red" />
</symbol>
</svg>