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"