| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-08-08 | 1.2 kB | |
| v1.6.0 source code.tar.gz | 2026-08-08 | 391.1 kB | |
| v1.6.0 source code.zip | 2026-08-08 | 461.2 kB | |
| Totals: 3 Items | 853.5 kB | 0 | |
Added
canvasTarget(canvas | ctx, opts?)— 2D canvas out. The morph draws straight into a canvas: everydwrite becomes onestroke(new Path2D(d)), so the icon stops being a document node and becomes pixels you own — a live WebGL texture (texImage2D(..., canvas)), atoBlob()sprite, acaptureStream()video track, an animated favicon, anOffscreenCanvasin a worker. Accepts anHTMLCanvasElement, anOffscreenCanvasor a bare 2D context (structural, like every core contract; throws early without a 2D context orPath2D). Geometry maps per write onto whatever backing store it finds — min-side scale, centered (the canvasxMidYMid meet), so non-square canvases letterbox and devicePixelRatio stays the owner's business. Color cascades:coloroption > the canvas' computed CSS color (the moral equivalent ofcurrentColor, read lazily once) > the context's currentstrokeStylewhere CSS can't reach.clear: falsefor manual compositing and trails;onWritefires after every drawn frame as the texture consumer's dirty signal — hosts with their own render loop composite a small dedicated canvas instead of handing over their context. 0.48 KB gzip standalone, the lightest adapter yet.