SvgDrawing class

A parsed, dependency-free rendering of a small SVG subset.

Supported subset

  • Structure: <svg> (viewBox, width/height), <g>, <defs>, <clipPath>, <use>-free.
  • Shapes: <path>, <rect> (including rx/ry), <circle>, <ellipse>, <polygon>.
  • Paint: fill (#rgb, #rgba, #rrggbb, #rrggbbaa, rgb(), rgba(), a handful of named colors, none), fill-opacity, fill-rule, opacity, and the same properties written inside a style="…" attribute.
  • Geometry: transform (matrix, translate, scale, rotate, skewX, skewY) and clip-path="url(#id)".

Everything else — strokes, gradients, filters, text, images, masks, objectBoundingBox clip units — is ignored by design. Group opacity is multiplied into descendant fills rather than composited through a layer, which is exact for non-overlapping flat artwork.

This exists so package:device_preview can draw device bodies with zero dependencies; it is not a general purpose SVG renderer.

Annotations

Constructors

SvgDrawing({required Rect viewBox, required List<SvgShape> shapes})
Creates a drawing from already-flattened shapes.
const
SvgDrawing.parse(String source)
Parses an SVG document.
factory

Properties

hashCode → int
The hash code for this object.
no setterinherited
isEmpty → bool
Whether this drawing paints nothing.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
shapes → List<SvgShape>
The flattened shapes, in paint order.
final
size → Size
The size of viewBox.
no setter
viewBox → Rect
The document's coordinate space.
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
paint(Canvas canvas, {Color? currentColor}) → void
Paints the drawing in its own view box coordinates.
paintInto(Canvas canvas, Rect destination, {Color? currentColor}) → void
Paints the drawing stretched onto destination.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Constants

empty → const SvgDrawing
An empty drawing that paints nothing.