SnapDOMGitHub★ 8K
Live demo

Live element

Component preview
Capture an editable component
1,284+12% vs last week

Editable text and an open shadow root can be captured together.

Result

Nothing captured yet

Edit the title, then run. This uses the real library from unpkg.
Plugins · Tools

Plugins and tools built on SnapDOM.

Extend a capture with official or community plugins. Export documents with PDF, reconstruct editable artwork with Vector, or use the tools for agents and visual testing.

Choose by the job

JobUse
Export an element as an image or fileSnapDOM core + plugins
Check that nothing changed visuallySnapDIFF
Give a coding agent before/after evidenceSnapEye
Let an agent reach a state and verify itSnapSurf (experimental)

One settings panel, three kinds of checks

  1. 1 · Reach the state

    SnapSurf opens the page and clicks Settings. Verify that the panel appeared and the controls are available.

  2. 2 · Inspect the edit

    SnapEye captures the open panel before and after the code change. Compare its appearance or record the transition.

  3. 3 · Keep it checked

    SnapDIFF adds the panel to a repeatable visual suite. Review the baseline and check future changes against it.

Your agent or test harness connects these steps. For an already-open panel, call SnapEye’s in-page API: its URL trigger reloads the page. Keep viewport, data and state consistent, and manage each tool’s baselines separately.

@zumer/snapdom-plugins

Official plugins

Prepare captured content with filters, timestamps, text replacement, private-field masking and tint. Add HTML snapshots, ASCII art, GIF, video, text or JSON context and annotated element maps. PDF belongs to this package too.

The optional plugin package.
Browse all plugins
@zumer/snapdom-plugins

PDF

Turn captured HTML into paginated documents with selectable text, links, bookmarks and optional form fields. This is the exporter previously offered as PDF Pro.

Document export · official plugin.
Open the PDF page
@zumer/snapdom-plugins

Vector

Reconstruct text and supported shapes as editable SVG artwork or Figma content. Core SVG preserves HTML through foreignObject; Vector converts supported content into vector elements.

Editable artwork · vector plugin.
Open the Vector page
@zumer/snapdom-plugins

Community plugins

Build a plugin in your own repository and submit it to the directory. Community extensions are maintained by their authors, alongside the official package.

Share your own extension.
Browse community plugins
Separate project

SnapDIFF

Compare captures against baselines, inspect changed pixels and use the result in a browser test suite or CI.

Visual regression testing in the browser.

Try it here

Take a baseline of the card, change its title, then compare. Changed pixels turn red, the rest fades.

What it does

  • Mark elements with data-snap for in-page checks.
  • Review split, slider and diff views; approve intended changes.
  • Use a Vitest browser suite with disk baselines to fail CI on visual drift.

SnapEye and SnapDIFF both compare pixels. Choose SnapEye for an agent’s capture-and-inspect task; choose SnapDIFF for a maintained set of visual tests and baseline reviews.

Separate project

SnapEye

Capture, compare and record a local app through a CLI or page API. Give a coding agent artifacts and change regions.

Visual tools for coding agents.

Try it here

Take a baseline, change the card, then compare to get the before/after pair an agent would receive.

What it does

  • Capture an element before a change, then compare it afterward.
  • Locate changed regions and inspect the current and diff images.
  • Record a transition and review its frames, GIF or video.

SnapEye does not navigate or click. A browser driver reaches interactive states; SnapEye measures their appearance. Its visual comparison uses SnapDIFF’s diff engine.

Experimental

SnapSurf

Navigate, locate controls, act and verify what changed. SnapSurf adds browser interaction around capture evidence.

Web navigation and verification for agents.Experimental

What it does

  • Open a page, find a control, click or type, then verify.
  • Check changes to content, state, layout and clickability.
  • Assert expected changes and the absence of unwanted ones.

A semantic diff answers whether the observed page changed. It does not replace a pixel comparison against a saved visual baseline. Its managed browser has its own cookies and storage, separate from your everyday browser.