unstale

npm / @zumer/snapdom

@zumer/snapdom

What changed in @zumer/snapdom 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-28.

1 breaking1 security5 new APIs and options3 performance6 behavior and defaults33 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.9 on npm

@zumer/snapdom 349 changes

Breaking changes 1

  • The stream moved into @zumer/snapdom-plugins/stream, changing where developers access the stream integration.

    3.4.0release notes

Security 1

  • The html-in-canvas engine is made safe and as exact as the svg engine.

    3.5.0release notes

New APIs and options 5

  • The ascii helpers are exported from the plugins barrel.

    3.5.0release notes

  • The plugins barrel now provides the toStream type.

    3.5.0release notes

  • Adds broadcast overlay templates for stream captures.

    3.4.0release notes

  • Adds a live canvas that repaints only what changed, letting developers capture updates as a stream.

    3.4.0release notes

  • Adds an option to lay out a capture root at a subpixel offset.

    3.4.0release notes

Performance 3

  • Near-weight font faces are embedded only where they can paint.

    3.5.0release notes

  • Safari capture warms only the font variants it uses.

    3.5.0release notes

  • Keeps full frames from freezing the page.

    3.4.0release notes

Behavior and default changes 6

  • Counter rendering now supports none, disc, circle, and square styles.

    3.5.0release notes

  • Adjacent culled block siblings are folded into one spacer per run.

    3.5.0release notes

  • Fractional clips start on the output pixel grid.

    3.5.0release notes

  • Stream reports only dirty rectangles inside the canvas.

    3.5.0release notes

  • The console stays quiet unless debug is true.

    3.4.0release notes

  • JPEG exports can now exceed the canvas limit.

    3.4.0release notes

Fixes and other changes 33

  • Parentheses inside quoted url() values are ignored when splitting background layers.

    3.5.0release notes

  • The capture root's self-alignment is reset during preparation.

    3.5.0release notes

  • Commas and parentheses inside the counters() separator are preserved.

    3.5.0release notes

  • A failed image keeps its box, and tainted canvases produce a warning.

    3.5.0release notes

  • Capture stops waiting when a Safari font set is stuck at loading.

    3.5.0release notes

  • A patch stays inside the ancestors that clip its host.

    3.5.0release notes

  • On Firefox, toCanvas waits for nested SVG images before drawing.

    3.5.0release notes

  • Webfont families that the page never drew are left out.

    3.5.0release notes

  • Top-aligns an atomic inline capture root.

    3.4.0release notes

  • Sizes a body capture from the body box rather than the surrounding margins.

    3.4.0release notes

  • Carries the capture root's language into the clone.

    3.4.0release notes

  • Preserves 1px borders in downscaled Firefox exports at DPR 1.

    3.4.0release notes

  • Strips whitespace from the header of fetched data URLs.

    3.4.0release notes

  • Font families with __ in their names are now embedded.

    3.4.0release notes

  • Resolves oklch, lab, and color() through a canvas for gradient text.

    3.4.0release notes

  • Preserves an icon font's share of the line in the clone.

    3.4.0release notes

  • Keeps live-page mounts styled under a strict style-src CSP.

    3.4.0release notes

  • Does not freeze the width of a MathML token.

    3.4.0release notes

  • Captures opaque WebGL canvases that clear every frame.

    3.4.0release notes

  • Streams patch out-of-flow boxes when they move or resize.

    3.4.0release notes

  • Places page-anchored boxes where they appear on the page.

    3.4.0release notes

  • Grows a right-to-left body capture on the side where its content spills.

    3.4.0release notes

  • Improves right-to-left fidelity in captures.

    3.4.0release notes

  • Keeps emoji and late nested images in Safari exports.

    3.4.0release notes

  • Gradients using background-clip: text are painted in Firefox.

    3.3.7release notes

  • toCanvas returns the canvas with an identity transform.

    3.3.7release notes

  • Diff detects filtered nth and imported sibling rules.

    3.3.7release notes

  • Every clamped line is retained when line height is fractional.

    3.3.7release notes

  • Percentage min/max sizes are resolved on the capture root.

    3.3.7release notes

  • Clones copy SVG geometry set by CSS rules.

    3.3.7release notes

  • Text shadows are preserved on stroked text in Safari.

    3.3.7release notes

  • Clones preserve a textarea's live size.

    3.3.7release notes

  • WebP exports stay within the format's 16383px side limit.

    3.3.7release notes