Skip to content

Releases: go-widgets/svg

v0.1.0 — initial release

Choose a tag to compare

@tannevaled tannevaled released this 01 Jul 16:23

First tagged release of go-widgets/svg.

Contents

  • svg.Snapshot(io.Writer, []byte, w, h, label) — wrap any RGBA render in a self-contained SVG with the pixels embedded as a base-64 PNG. Bit-exact, scales crisply at any zoom.
  • svg/widget.Snapshot + widget.PNG — same convenience but take a toolkit.Widget directly (no manual make + Draw + Snapshot dance). Kept as a subpackage so the root svg stays dep-free.
  • svg/cmd/gallery-render — batch-renders every widget kind to SVG + PNG. Ships with a Pages workflow that publishes the result at go-widgets.github.io/svg/ on every push.

Metrics

  • 100.0 % statement coverage on svg + svg/widget.
  • Pure Go, stdlib only in the root package (svg/widget requires github.com/go-widgets/toolkit).
  • CGO=0.
  • BSD-3-Clause.

Use

import (
    "os"
    "github.com/go-widgets/svg/widget"
    "github.com/go-widgets/toolkit"
)

btn := toolkit.NewButton("Click me", nil)
btn.SetBounds(toolkit.Rect{X: 0, Y: 0, W: 200, H: 40})

f, _ := os.Create("button.svg")
defer f.Close()
widget.Snapshot(f, btn, 200, 40, toolkit.DefaultLight(), "widget: button")