Library API
BrandKit provides Go packages for programmatic SVG processing.
Installation
Packages
| Package | Import Path | Description |
|---|---|---|
| svg | github.com/grokify/brandkit/svg |
Core types: BoundingBox, ViewBox, path parsing |
| analyze | github.com/grokify/brandkit/svg/analyze |
Geometry analysis: centering, padding |
| convert | github.com/grokify/brandkit/svg/convert |
Color conversion, background removal |
| verify | github.com/grokify/brandkit/svg/verify |
Pure vector validation |
| security | github.com/grokify/brandkit/svg/security |
Security scanning and sanitization |
Quick Examples
Color Conversion
import "github.com/grokify/brandkit/svg/convert"
result, err := convert.SVG("input.svg", "output.svg", convert.Options{
Color: "ffffff",
RemoveBackground: true,
IncludeStroke: true,
})
Security Scanning
import "github.com/grokify/brandkit/svg/security"
result, err := security.SVG("icon.svg")
if !result.IsSecure {
for _, threat := range result.Threats {
fmt.Printf("Threat: %s\n", threat.Description)
}
}
Verification
import "github.com/grokify/brandkit/svg/verify"
result, err := verify.SVG("icon.svg")
if result.IsSuccess() {
fmt.Println("Pure vector SVG")
}
Analysis
import "github.com/grokify/brandkit/svg/analyze"
result, err := analyze.SVG("icon.svg")
fmt.Printf("Padding: L:%.1f%% R:%.1f%% T:%.1f%% B:%.1f%%\n",
result.PaddingLeft, result.PaddingRight,
result.PaddingTop, result.PaddingBottom)
High-Level Processing
For common workflows, use the top-level processing functions:
import "github.com/grokify/brandkit"
// Create white icon
result, err := brandkit.ProcessWhite("input.svg", "output.svg")
// Create color icon (preserving original colors)
result, err := brandkit.ProcessColor("input.svg", "output.svg")
These functions handle the full pipeline:
- Remove background
- Convert colors (white only for ProcessWhite)
- Center content
- Verify pure vector
- Security scan
Error Handling
All functions return errors following Go conventions:
result, err := security.SVG("icon.svg")
if err != nil {
// File read error, parse error, etc.
log.Fatal(err)
}
// Result contains operation-specific status
if !result.IsSecure {
// Handle security threats
}
Documentation
Full API documentation available at pkg.go.dev.