بنقرة واحدة
vector-art
Vector art assets (characters, objects, scenes) sources for SVG/Canvas and how to animate them
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Vector art assets (characters, objects, scenes) sources for SVG/Canvas and how to animate them
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
ALWAYS follow this style when writing Python / JavaScript code
To select, design, annotate, and verify a data visualization (chart, map, or table).
ALWAYS follow this design guide for any front-end work
Use this for non-trivial analysis, design, diagnosis, review, strategy, or judgment. Skip it for simple lookups, mechanical rewrites, and pure tone tasks.
For CloudFlare development, deployment, e.g. Python CloudFlare Workers
Use when creating demos or POCs
استنادا إلى تصنيف SOC المهني
| name | vector-art |
| description | Vector art assets (characters, objects, scenes) sources for SVG/Canvas and how to animate them |
Follow the Puppet Master architecture: assign each asset category a dedicated source, then composite and animate in-browser.
| Role | Source | Access | Notes |
|---|---|---|---|
| Actors | DiceBear (Open Peeps) | HTTP API | Deterministic characters with poses/moods |
| Scenes | unDraw | Static slug index | Background illustrations for contexts |
| Objects | Iconify | HTTP API + search | Searchable props, consistent per set |
| Clipart | Openverse / OpenClipart | HTTP API | General SVG search, CC0/open license |
| Logos | Simple Icons | CDN URL | Brand assets, no auth |
| Props | Lucide / Phosphor | NPM import | Small objects, animate as React components |
| Animation | GSAP or anime.js | JS library | Translate/morph entire SVG groups |
Deterministic avatar generation. Same seed = same character across scenes.
Base: https://api.dicebear.com/9.x/
SVG: GET https://api.dicebear.com/9.x/{style}/svg?seed={name}&{params}
Key styles for storytelling:
open-peeps — hand-drawn humans, supports pose + face params (RECOMMENDED)avataaars — cartoon facesmicah — minimal illustrated charactersOpen Peeps params:
face= scared | happy | sad | rage | explaining | ...
body= standing | sitting | ...
seed= any string — use character name for consistency
Example:
https://api.dicebear.com/9.x/open-peeps/svg?seed=Alice&face=happy&body=standing
Docs: https://www.dicebear.com/how-to-use/http-api/
REST API, CORS-open, no auth. 200k+ SVGs across 100+ sets.
Search: GET https://api.iconify.design/search?query={term}&limit=10
Fetch SVG: GET https://api.iconify.design/{prefix}/{name}.svg
List sets: GET https://api.iconify.design/collections
Search response fields: icons[] — each is "{prefix}:{name}"
Illustration-grade sets (use for visual consistency):
flat-color-icons — colorful objectsnoto-emoji — expressive emoji-styleopenmoji — open emojitwemoji — Twitter emoji styleExample flow:
const res = await fetch("https://api.iconify.design/search?query=tree&limit=5");
const { icons } = await res.json(); // e.g. ["flat-color-icons:tree"]
const [prefix, name] = icons[0].split(":");
const svg = await fetch(`https://api.iconify.design/${prefix}/${name}.svg`).then((r) => r.text());
High-quality MIT-licensed scene illustrations (office, team, error states, etc.).
No live search API. Use a static slug index:
undraw-js or react-undraw-illustrationsURL pattern (once you have a slug):
https://undraw.co/illustrations/{slug} ← browse
SVG direct: not publicly CDN'd — use NPM package or embed via react-undraw
Agent strategy: maintain a curated keyword→slug map for your narrative's scene types
(e.g., "office" → "working_late", "error" → "fixing_bugs").
Searches across open-licensed media including SVGs from Wikimedia, Flickr, etc.
Search: GET https://api.openverse.org/v1/images/?q={query}&extension=svg
Response fields: url, thumbnail, license, license_url, creator, source
Notes:
license field before usecc0, pdm, by, or by-sa licensesAll CC0. Native SVG. Style is inconsistent but good for prototyping.
Search: GET https://openclipart.org/search/?query={term}&format=json
Docs: https://openclipart.org/developers
Large archive; must handle attribution carefully.
Search: GET https://commons.wikimedia.org/w/api.php
?action=query
&generator=search
&gsrsearch=filetype:svg {query}
&gsrlimit=10
&prop=imageinfo
&iiprop=url|extmetadata
&format=json
Key response fields: imageinfo[].url, extmetadata.LicenseShortName, extmetadata.Artist
Always store attribution. Prefer CC0/PD results.
Fetch: https://cdn.simpleicons.org/{slug}.svg
Slugs match lowercase brand names (e.g., github, openai, typescript).
No auth, no search needed.
Large library (~5M icons), full search API.
Search: GET https://api.thenounproject.com/v2/icon?query={term}
Auth: OAuth 1.0
Docs: https://api.thenounproject.com/documentation.html
Free tier: public domain icons only. Returns attribution string — must display it.
Before using any fetched SVG in rendering, freeze it locally with a manifest entry:
{
"id": "unique-local-id",
"source": "iconify",
"source_url": "https://api.iconify.design/flat-color-icons/tree.svg",
"license": "MIT",
"creator": "",
"sha256": "...",
"tags": ["tree", "nature", "plant"]
}
GSAP (industry standard, free for most uses):
gsap.to("#character", { x: 400, duration: 2, ease: "power2.inOut" });
gsap.timeline().to("#actor", { y: -20, duration: 0.3 }).to("#actor", { y: 0, duration: 0.3 });
anime.js (lighter alternative, fully open source):
anime({ targets: "#character", translateX: 400, duration: 2000, easing: "easeInOutQuad" });
Key principle: Animate entire SVG groups (<g> elements) via translate/scale rather than
trying to manipulate internal paths — external SVGs often have unpredictable internal structure.
Need a CHARACTER? → DiceBear open-peeps (seed=name, set face/body params)
Need a SCENE/BG? → unDraw (keyword→slug map) or Openverse (filter license=cc0)
Need an OBJECT/PROP?→ Iconify search → pick flat-color-icons set for consistency
Need a BRAND LOGO? → Simple Icons CDN
Need ANYTHING ELSE? → Openverse search → verify license → freeze to manifest
Animating? → GSAP timeline; target <g> wrappers; translate whole elements
Style consistency? → Commit to ONE Iconify set for all non-character assets
<img src=".svg"> if you need to animate internal parts