1.0.9 • Published 11 months ago

dom2svg v1.0.9

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

Install

pnpm/npm/yarn i dom2svg

Usage

import { documentToSVG, elementToSVG, formatXML, inlineResources } from 'dom2svg'

// Capture the whole document
const svgDocument = documentToSVG(document)

// Capture specific element
const svgDocument = elementToSVG(document.querySelector('#my-element'))

// Inline external resources (fonts, images, etc) as data: URIs
await inlineResources(svgDocument.documentElement)

// Get SVG string
const svgString = new XMLSerializer().serializeToString(svgDocument)

The output can be used as-is as valid SVG or easily passed to other packages to pretty-print or compress.

Features

  • Does NOT rely on <foreignObject> - SVGs will work in design tools like Illustrator, Figma etc.
  • Maintains DOM accessibility tree by annotating SVG with correct ARIA attributes.
  • Maintains interactive links.
  • Maintains text to allow copying to clipboard.
  • Can inline external resources like images, fonts, etc to make SVG self-contained.
  • Maintains CSS stacking order of elements.
  • Outputs debug attributes on SVG to trace elements back to their DOM nodes.

Caveats

  • Designed to run in the browser. Using JSDOM on the server will likely not work, but it can easily run inside Puppeteer.
1.0.9

11 months ago

1.0.8

12 months ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago