/install svgjs
SVG.js
Zero-dependency SVG manipulation and animation. npm install @svgdotjs/svg.js or import { SVG } from '@svgdotjs/svg.js'
Use Cases
Use when drawing SVG, animating vector graphics, building data visualizations, creating SVG-based UI components, or manipulating SVG DOM.
Core API
SVG() — entry point for everything: create doc, get from DOM, create from fragment:
const draw = SVG().addTo('body').size(300, 300) // SVG doc MUST have explicit size()
const rect = SVG('#myRect') // get from DOM
const el = SVG('\x3Ccircle>') // create from fragment
Chainable — every setter returns this:
draw.rect(100, 100).fill('#f06').stroke({ width: 2, color: '#000' }).move(50, 50)
// .animate() starts animation chain, returns SVG.Runner (NOT the element)
rect.animate(1000).move(200, 200).fill('#0f0')
rect.animate({ duration: 2000, delay: 500, times: 3 }).rotate(45)
// Sequence: rect.animate().fill('#f03').animate().dmove(50, 50)
Quick example:
import { SVG } from '@svgdotjs/svg.js'
const draw = SVG().addTo('body').size(400, 300)
draw.rect(100, 100).fill('#f06').move(50, 50)
draw.circle(50).fill('#0f0').center(200, 150)
draw.text('Hello').font({ family: 'Arial', size: 24 }).move(50, 200)
Progressive References
- Shapes: rect/circle/ellipse/line/polyline/polygon/path →
references/shapes.md - Text, images, masks, gradients, patterns →
references/text-image.md - Positioning, sizing, attr, transforms, tree manipulation →
references/manipulating.md - Animation, Runner, Timeline, easing, controllers →
references/animating.md - Containers: groups, nested SVG, defs, symbols, links →
references/containers.md - Events, custom events, namespaces →
references/events.md - Import/export, extend, subclass →
references/utilities.md - Color, Matrix, Point, Box, List, PointArray, PathArray →
references/classes.md
Gotchas
- SVG doc must have explicit
size()— defaults to 0×0 without it .animate()returns Runner, not element — chain.animate()again for sequencing- Positioning works on ALL elements —
rect.cx(50)works though cx isn't native to rect - Groups have no geometry — no x/y/w/h; use
nested()for positioned containers - Text needs explicit newlines — SVG has no flowing text; use
\ortspan().newLine() - Path animation needs same command structure — both paths must have identical M/C/S commands
- css() ≠ attr() —
css()sets inline styles,attr()sets SVG attributes - First
SVG()call creates invisible parser\x3Csvg>— normal, documented in FAQ
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install svgjs - After installation, invoke the skill by name or use
/svgjs - Provide required inputs per the skill's parameter spec and get structured output
What is SVG.js — lightweight SVG manipulation & animation library.?
SVG.js — lightweight SVG manipulation & animation library. Zero dependencies, chainable API, full SVG spec coverage. Create/position/animate shapes (rect/cir... It is an AI Agent Skill for Claude Code / OpenClaw, with 37 downloads so far.
How do I install SVG.js — lightweight SVG manipulation & animation library.?
Run "/install svgjs" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is SVG.js — lightweight SVG manipulation & animation library. free?
Yes, SVG.js — lightweight SVG manipulation & animation library. is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does SVG.js — lightweight SVG manipulation & animation library. support?
SVG.js — lightweight SVG manipulation & animation library. is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created SVG.js — lightweight SVG manipulation & animation library.?
It is built and maintained by OpenLark (@openlark); the current version is v1.0.0.