# SnapDOM โ€” Features A complete technical overview of what **SnapDOM** captures, embeds and exports. SnapDOM serializes a DOM subtree into a self-contained SVG (via ``) and rasterizes it to your target format โ€” ultra-fast, dependency-free, and 100% based on standard Web APIs. > ๐Ÿ“– Full API, options and guides: **[snapdom.dev/docs](https://snapdom.dev/docs/)** > > ๐ŸŒ ็ฎ€ไฝ“ไธญๆ–‡: **[FEATURES_CN.md](FEATURES_CN.md)** ## Table of Contents - [Capture & clone](#capture--clone) - [Styles](#styles) - [Images & backgrounds](#images--backgrounds) - [Fonts & icon fonts](#fonts--icon-fonts) - [Export formats](#export-formats) - [Options](#options) - [Plugin system](#plugin-system) - [Caching & preCache](#caching--precache) - [Cross-browser handling](#cross-browser-handling) - [Node-level control attributes](#node-level-control-attributes) ## Capture & clone Deep node-by-node clone that snapshots the computed style of every node, preserving what the browser actually renders. - **Shadow DOM** โ€” traverses `shadowRoot`, extracts and scopes its CSS, seeds the required CSS custom properties, and resolves `` content via `assignedNodes({ flatten: true })` (slotted subtrees are marked to avoid double-cloning). - **Same-origin iframes** โ€” rasterized inline (fonts read from the iframe's own document). Cross-origin iframes can't be read, so they render as a striped placeholder (or a hidden spacer when `placeholders` is off). - **``** โ€” snapshotted to a PNG `` (with Safari-safe retries), preserving intrinsic and CSS box size. - **`