doc.gno

1.15 Kb ยท 30 lines
 1/*
 2Package svg is a minimalist and extensible SVG generation library for Gno.
 3
 4It provides a structured way to create and compose SVG elements such as rectangles, circles, text, paths, and more. The package is designed to be modular and developer-friendly, enabling optional attributes and method chaining for ease of use.
 5
 6Each SVG element embeds a BaseAttrs struct, which supports common SVG attributes like `id`, `class`, `style`, `fill`, `stroke`, and `transform`.
 7
 8Canvas objects represent the root SVG container and support global dimensions, viewBox configuration, embedded styles, and element composition.
 9
10Example:
11
12	import "gno.land/p/demo/svg"
13
14	func Foo() string {
15		canvas := svg.NewCanvas(200, 200).WithViewBox(0, 0, 200, 200)
16		canvas.AddStyle(".my-rect", "stroke:black;stroke-width:2")
17		canvas.Append(
18			svg.NewRectangle(60, 40, 100, 50, "red").WithClass("my-rect"),
19			svg.NewCircle(50, 80, 40, "blue"),
20			&svg.Path{D: `M 10,30
21			A 20,20 0,0,1 50,30
22				A 20,20 0,0,1  90,30
23				Q 90,60 50,90
24				Q 10,60 10,30 z`, Fill: "magenta"},
25			svg.NewText(20, 50, "Hello SVG", "black"),
26		)
27		mysvg := canvas.Base64()
28	}
29*/
30package svg // import "gno.land/p/demo/svg"