Svg.Skia is a repository, not just a single package. The main entry points are:
| Package or tool | Use it when | Main output | Detailed guide |
|---|---|---|---|
Svg.Skia |
You want to load SVG or Android VectorDrawable content and render with SkiaSharp. | SKPicture, bitmap, pdf, xps, svg, hit testing, animation runtime |
Svg.Skia |
Svg.Model |
You need the intermediate picture-recording model or SVG-related helper types. | ShimSkiaSharp command model |
Svg.Model |
Svg.Custom |
You want the underlying SVG DOM used by the renderer. | SvgDocument, SvgElement, animation DOM, parser APIs |
Svg.Custom |
ShimSkiaSharp |
You want the cloneable drawing-command model directly. | SKPicture, SKCanvas, SKPath, SKPaint |
ShimSkiaSharp |
Svg.Controls.Skia.Uno |
You want Uno controls that render through the Skia-backed pipeline. | Svg, SvgSource, hit testing, zoom/pan, animation playback |
Svg.Controls.Skia.Uno |
Svg.Controls.Skia.Maui |
You want .NET MAUI controls that render external SVG assets through the Skia-backed pipeline. | Svg, SvgSource, hit testing, zoom/pan, animation playback |
Svg.Controls.Skia.Maui |
Svg.Controls.Skia.Avalonia |
You want Avalonia controls that render through the Skia-backed pipeline. | Svg, SvgImage, SvgSource, SvgResource, animation playback, native composition |
Svg.Controls.Skia.Avalonia |
Svg.Controls.Avalonia |
You want Avalonia controls without depending on the Skia-backed Avalonia renderer path. | Svg, SvgImage, SvgSource, SvgResource |
Svg.Controls.Avalonia |
SvgML.Avalonia |
You want the SVG tree itself to be authored inline in Avalonia XAML, including native controls hosted through SVG foreignObject. |
svg, rect, g, filters, text nodes, foreignObject, Avalonia-styled SVG element tree |
SvgML.Avalonia |
SvgML.Maui |
You want the SVG tree itself to be authored inline in .NET MAUI XAML, including native controls hosted through SVG foreignObject. |
svg, rect, g, filters, text nodes, foreignObject, MAUI-styled SVG element tree |
SvgML.Maui |
SvgML.Uno |
You want the SVG tree itself to be authored inline in Uno Platform XAML, including native controls hosted through SVG foreignObject. |
svg, path, g, filters, text nodes, foreignObject, Uno-styled SVG element tree |
SvgML.Uno |
Skia.Controls.Avalonia |
You need general-purpose SKCanvas, SKPicture, SKBitmap, or SKPath controls in Avalonia. |
SKCanvasControl, SKPictureImage, and related controls |
Skia.Controls.Avalonia |
Svg.Editor.* |
You want reusable SVG editor components, from session/services up to a full Avalonia workspace. | SvgEditorSession, editor services, panels, SvgEditorWorkspace |
Editor |
Svg.CodeGen.Skia |
You want to generate checked-in or pipeline-produced C# from the picture model. | C# source from ShimSkiaSharp.SKPicture |
Svg.CodeGen.Skia |
Svg.SourceGenerator.Skia |
You want compile-time generated SKPicture classes from .svg assets. |
generated *.svg.cs files |
Svg.SourceGenerator.Skia |
svgc sample tool |
You want to generate C# source from SVG files outside Roslyn source generators. | C# files on disk | Source Generator and svgc |
Svg.Skia.Converter |
You want a CLI or global tool that batch-converts files. | png, jpg, jpeg, webp, pdf, xps | Samples and Tools |
Start with Svg.Skia if your application already uses SkiaSharp or needs direct access to SKPicture.
Start with Svg.Controls.Skia.Avalonia when the app is already on Avalonia plus Skia and you want the richest interaction and animation surface, including native-composition playback where supported.
Choose Svg.Controls.Avalonia when you want the same SVG concepts exposed through the Avalonia drawing stack instead.
Choose SvgML.Avalonia when small icons, diagrams, effect graphs, or native-control overlays should stay inline in XAML resources or templates instead of moving into external .svg files.
Start with Svg.Controls.Skia.Maui when the visual already exists as an external .svg asset or source string and should render through a MAUI SKCanvasView.
Choose SvgML.Maui when the SVG tree should be authored inline in .NET MAUI XAML instead, including cases where SVG foreignObject positions native MAUI controls.
Start with Svg.Controls.Skia.Uno when the app is on Uno Platform and you want direct SKCanvasElement rendering plus async asset loading, hit testing, viewport controls, and host-driven animation playback.
Choose SvgML.Uno when that Uno view should be authored inline in XAML instead of loaded from a separate .svg asset file, including cases where SVG foreignObject positions native Uno controls.
Start with Svg.Editor.Skia.Avalonia when the target is an editable SVG workspace rather than a viewer-only control.
Move down to the other Svg.Editor.* packages when the host needs only panels, dialogs, SVG mutation services, or low-level interaction helpers.
Use Svg.SourceGenerator.Skia when SVG assets should be compiled into strongly named classes during build.
Use svgc when you want the same generated-code approach as a manual step or as part of a custom pipeline.
Use Svg.Skia.Converter when you need command-line automation for folders, patterns, or repeated exports.
foreignObject interop for hosted platform controls.For extensive package-by-package coverage, continue with Packages.