Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[0.2.0] - 2025-09-28
Added
- Scene-level options in
render/2
(aa/background/font) and per-elementaa:
support across helpers. - New UI helpers:
linear_gradient_rect
,radial_gradient_circle
,chip
,paragraph
, and realtext
with font loading. - Kitchensink example refactor: palette, balanced header, system meters with percentages, and split analytics into non-overlapping subplots (trend, scatter, OHLC).
Fixed
- Anti-aliasing now works for circles (Rust NIF
fill_circle
uses MSAA samples); visuals are smoother. - Consistent AA pass-through in named-property helpers (grid/line_chart/candle_chart/etc.).
Changed
- README updated with accurate run commands and Hex badge.
[0.1.0] - 2025-09-28
Added
- Minimal, fully working Skia backend via Rustler NIF producing real WEBP binaries (in-memory, zero-FS path).
- Public API facade (
CanvasCraft
) withcreate_canvas/2-3
,export_webp/1-2
, andexport_raw/1
. - Declarative DSL (
CanvasCraft.Scene
) with positional and named properties, including per-element antialiasing. - Shapes and primitives: clear, rect, circle, panel, donut segment, grid, scatter, progress bar.
- Chart helpers: line chart and candle chart; text helpers:
text_bar
. - Capability discovery (
CanvasCraft.Capabilities
). - Reference backend for fast tests and benchmarks.
- Examples:
earth_planet
andkitchensink
(1080p dashboard) using the declarative DSL. - Benchmarks for draw ops, images/filters, and in-memory encoding.
Changed
- CI runs formatting, Credo, Dialyzer, tests, and non-blocking benchmarks.
Notes
- Requires Rust toolchain for building the NIF.