As well as an icon set referring to external images, an icon set can be based on SVG code. Unlike traditional icon sets that use one or more bitmaps with a grid of icons, SVG icon sets store the SVG code directly in their XML definition file, making them completely self-contained. SVG icons will scale automatically, and if rendered using "currentColor" in the SVG will use the toolbar's default text color automatically.

Making an SVG icon set
Example
<?xml version="1.0"encoding="utf-8"?>
<iconset name="feather">
    <display_name>Feather Icons</display_name>
	<copyright>Copyright (c) 2013-2023 Cole Bemis</copyright>
	<set size="svg">
		<style>
			.feather {
				fill: none;
				stroke: currentColor;
				stroke-width: 2;
				stroke-linecap: round;
				stroke-linejoin: round;
			}
		</style>
		<icon name="activity">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"
viewBox="0 0 24 24" class="feather feather-activity">
<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline></svg>
		</icon>
		<icon name="airplay">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"
viewBox="0 0 24 24" class="feather feather-airplay">
<path d="M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1"></path>
<polygon points="12 15 17 21 7 21 12 15"></polygon></svg>
		</icon>
...
Supporting dark and light modes

You can use stylesheets with SVG images to support colour remapping in dark/light modes. Add <style id="dark">...</style> and <style id="light">...</style> elements to the SVG definition. Opus will automatically recolor the image for the currently selected mode.