プロ仕様の次世代AIファーストベクターグラフィックツール
「Illustmaker」(イラストメーカー)
コード1行で、ベクターデザインが動き出す。
AIエージェント・サーバーサイド・cron、どこからでも叩けるシンプルな HTTP JSON API(全102メソッド)。
あなたが思い描いたことをすべて実現してくれます。
| エンドポイント | POST https://asi.co.jp/illustmaker/api/mcp.php |
|---|---|
| Content-Type | application/json |
| 形式 | { "method": "...", "params": {...}, "session": "..." } |
| レスポンス | { "ok": true, ... } または { "ok": false, "error": "..." } |
| バージョン | 1.0.0 |
| llms.txt | /illustmaker/llms.txt |
クイックスタート
1. セッション作成
curl -X POST https://asi.co.jp/illustmaker/api/mcp.php \
-H 'Content-Type: application/json' \
-d '{"method":"illust.create_session","params":{"width":800,"height":600,"bg":"#ffffff"}}'
{
"ok": true,
"session": "abc123def456",
"state": {"docW":800,"docH":600,"docBg":"#ffffff","objects":[]},
"open_url": "https://asi.co.jp/illustmaker/?s=abc123def456"
}
2. オブジェクト追加
curl -X POST https://asi.co.jp/illustmaker/api/mcp.php \
-H 'Content-Type: application/json' \
-d '{
"method": "illust.add_object",
"session": "abc123def456",
"params": {"type":"ellipse","x":200,"y":150,"w":400,"h":300,"fill":"#4a9eff"}
}'
3. SVG書き出し
curl -X POST https://asi.co.jp/illustmaker/api/mcp.php \
-H 'Content-Type: application/json' \
-d '{"method":"illust.export_svg","session":"abc123def456"}'
4. ブラウザで開く(ユーザーに編集してもらう)
open_url をブラウザで開けば、ユーザーは続きを手作業で編集できます。
認証 / API キー
API は匿名でも利用可能ですが、レート制限が厳しめ(30 req/分)です。継続利用には API キーの取得を推奨します。
API キーの取得
curl -X POST https://asi.co.jp/illustmaker/api/keys.php \
-H 'Content-Type: application/json' \
-d '{"action":"issue","email":"you@example.com","purpose":"my_project"}'
{
"ok": true,
"api_key": "im_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"tier": "free",
"rate_limit_per_min": 100
}
取得した API キーは 1 度しか表示されません。安全な場所に保管してください。
利用
curl -X POST https://asi.co.jp/illustmaker/api/mcp.php \
-H 'Content-Type: application/json' \
-H 'X-API-Key: im_xxxxxxxxxx' \
-d '{"method":"illust.health"}'
レート制限階層
| tier | 制限 | 取得方法 |
|---|---|---|
| anon | 30 req/min | API キー不要 |
| free | 100 req/min | 上記の発行エンドポイント |
| pro | 600 req/min | お問い合わせ |
状態確認・取り消し
# info
curl -X POST https://asi.co.jp/illustmaker/api/keys.php -H 'Content-Type: application/json' \
-d '{"action":"info","key":"im_xxx"}'
# revoke
curl -X POST https://asi.co.jp/illustmaker/api/keys.php -H 'Content-Type: application/json' \
-d '{"action":"revoke","key":"im_xxx"}'
制限
| リクエストボディ | 最大 1MB |
|---|---|
| セッションあたりオブジェクト数 | 最大 5,000 |
| セッションファイルサイズ | 最大 5MB |
| batch_render の行数 | 最大 1,000 |
| レート制限 | anon 30 / free 100 / pro 600 req/min |
| セッション保管期間 | 最終更新から 7 日(cronで自動削除) |
| import_from_url | パブリックIP・80/443ポートのみ。リダイレクト追跡なし。5MB上限 |
ユースケース
AIにロゴを作らせる
Claude/Cursor 等にプロンプトで依頼 → AIがSVGコードを生成 → MCPに渡してブラウザで開く。 数秒で初稿が手元に。
- AIに「寿司屋のロゴ、 和モダンで赤と黒」とプロンプト
- AIが
illust.create_session→illust.add_svgまたは個別add_ellipse/add_textを呼ぶ open_urlが返るのでブラウザで開く- 人間が微調整 → SVG/PNG/PDF書き出し
食品ラベルを100枚量産
1テンプレ + CSV/JSONで100商品分のラベルを2秒で生成。 食品工場・飲食店・クラフトビールのVariable Data Printingに。
- テンプレ作成:
create_session→ 枠線/ロゴ/カラーバーadd_object - 変数テキスト追加:
{{name}}{{net}}{{expiry}} - 商品DB/CSVから配列抽出
batch_renderwithoutput:"pdf-imposition"でA4面付けPDFを一発生成- そのまま印刷業者へ入稿可
価格POPをPDFで一括書出
スーパーの特売POP・飲食店の値札・小売店のショーカード。 価格と商品名のCSVから30個一気にPDF化。
- POPテンプレ作成(赤い「特価」リボン + 商品画像 + 価格)
- POSデータ or CSV から商品名・通常価格・特売価格を配列に
batch_renderで印刷PDFまで一気通貫
記事ごとのOGP画像を生成
ブログ100本のSNS用サムネを一気に統一感のあるデザインで生成。 タイトル+著者名の差し替えだけ。
- 1200x630のテンプレ作成(背景+ブランドロゴ+変数タイトル)
- ブログDBから
{title, author}配列抽出 batch_renderwithoutput:"png-zip"でPNG一括取得- 各記事ページに自動配置
ロゴA/Bテスト用に10案生成
同じ会社名で配色違い/フォント違いを10案生成 → 並べて比較 → 良い案を選んでブラッシュアップ。
- テンプレ作成(会社名 + ロゴマーク)
suggest_paletteで12テーマ ×suggest_fontで8用途 から組合せ取得batch_renderで配色違い10案を一括生成- クライアント/Slack/Notion に並べて比較
データ→グラフSVG自動図解
売上CSV/JSONをAIに渡して棒グラフ/円グラフ/折れ線を直接SVGで描画。 プレゼン資料にそのまま埋め込み。
- データ配列をAIに渡して「これを棒グラフのSVGに」とプロンプト
- AIがプロパティ計算→
add_object(rect)とadd_textでグラフ要素配置 export_pdfでプレゼン用PDF
名刺・チケット連番量産
イベントチケット・QR入り受付票・名刺など、 連番+個別情報の量産。
- テンプレ作成(QRコード位置 + 連番フィールド + 個人情報フィールド)
{{name}}{{qr_url}}{{seat_no}}変数テキスト追加- 参加者DBから配列抽出
batch_renderwithimpositionで1枚A4に10券面付け → 印刷
商品カタログ印刷
EC/卸の商品カタログを商品DBから自動組版。 画像+型番+価格+特徴の4要素を全商品分。
- カタログ1ページ分のテンプレ作成
illust.import_from_urlで商品画像URLから取得- 商品DB全件をループ →
batch_render - A4縦に2x4=8商品配置で印刷
メソッド詳細
サイドナビのカテゴリと連動。 全メソッドは llms.txt でも一覧可。
illust.health no-session
サーバー疎通確認。
{"method": "illust.health"}
{"ok": true, "version": "1.0.0", "methods": 10}
illust.create_session no-session
新規セッションを作成。share_id とオープン用URLを返す。
params
width | number | 16〜16384、デフォルト 800 |
height | number | 16〜16384、デフォルト 600 |
bg | string | 背景色 (HEX/none)、デフォルト "#ffffff" |
{
"method": "illust.create_session",
"params": {"width": 1200, "height": 630, "bg": "#000"}
}
{"ok":true, "session":"...", "state":{...}, "open_url":"..."}
illust.set_document
ドキュメントサイズ・背景の変更。
{"method":"illust.set_document","session":"...","params":{"width":1080,"height":1080}}
illust.add_object
オブジェクトを追加。type は rect/ellipse/text/path/line/poly/star/image/raw。
params 共通
type | string | 必須 |
x, y, w, h | number | 位置・サイズ |
fill | string | 色値(HEX/rgb/named/none) |
stroke | string | 線色 |
strokeWidth | number | 線幅 |
rotation | number | 度数 |
name | string | レイヤー名 |
type 別の追加プロパティ
text | text, fontSize, fontFamily, fontWeight, letterSpacing, lineHeight | |
path/poly/star | nodes: [{x,y,hIn,hOut}], closed: bool | |
line | x1, y1, x2, y2 | |
image | href: "data:image/png;base64,..." or URL | |
raw | rawSvg: "<path d=\"...\"/>"(サニタイズされる) | |
illust.add_svg
SVG文字列をパースしてオブジェクト化して投入。
{"method":"illust.add_svg","session":"...","params":{"svg":"<svg><circle cx='50' cy='50' r='30' fill='red'/></svg>"}}
illust.list_objects
現在のオブジェクト一覧(id/type/位置/サイズ/色)。
illust.update_object
特定オブジェクトのプロパティを部分更新。
{"method":"illust.update_object","session":"...","params":{"id":"o1","patch":{"fill":"#ef4444","rotation":15}}}
illust.delete_objects
指定IDのオブジェクトを削除。
{"method":"illust.delete_objects","session":"...","params":{"ids":["o1","o3"]}}
illust.export_svg
サーバーサイドでSVG文字列を生成して返す。
{"ok":true, "svg":"<svg xmlns=...>...</svg>"}
illust.batch_render バッチ量産 5モード
テンプレートに {{var_name}} 変数を埋め込み、データ配列で展開。SVG/PNG/PDF面付け まで1コマンドで生成。 食品ラベル・価格POP・商品タグ・OGP画像量産に。
output モード一覧
svg | default | SVG文字列配列を返す(互換性のため filename 含まず) |
svg-zip | ZIP | 全SVGを1個のZIPにまとめてbase64で返す |
png | PNG配列 | ImageMagick経由でラスター化、 各PNGをbase64で配列返却。dpi 72-600指定可 |
png-zip | ZIP | 全PNGを1個のZIPに |
pdf-imposition | A4等の用紙にcols×rowsで面付け配置した印刷可能PDF。 真のベクター埋め込み(TCPDF) |
パラメータ
data | array | 必須。 各要素は変数オブジェクト e.g. {"name":"濃口醤油","net":"500ml"} |
output | string | 上記5モード。 default "svg" |
filename_template | string | ZIP内ファイル名テンプレ e.g. "{{name}}" → 濃口醤油.svg。 {{i}} は連番 |
dpi | number | png/png-zip用。 72(web)〜600(印刷)、 default 96 |
imposition | object | pdf-imposition用。 {paper:"A4"|"A3"|"letter", cols:N, rows:M, margin_mm:5, gap_mm:3} |
セットアップ(共通)
// 1. テンプレ作成 — テキストに {{var}} を含める
{"method":"illust.add_object","session":"...","params":{
"type":"text","text":"商品名: {{name}}","x":50,"y":80,"fontSize":36
}}
使い分け例
A) SVG-ZIP — 個別SVGをZIPで一括取得
{"method":"illust.batch_render","session":"...","params":{
"output": "svg-zip",
"filename_template": "{{name}}",
"data":[
{"name":"濃口醤油","net":"500ml"},
{"name":"薄口醤油","net":"500ml"}
]
}}
{"ok":true, "count":2, "output":"svg-zip",
"filename":"illustmaker-batch-20260525-115500.zip",
"zip_base64":"UEsDBBQAAAA...", "size":1352}
B) PNG (高DPI印刷用)
{"method":"illust.batch_render","session":"...","params":{
"output":"png-zip", "dpi":300,
"filename_template":"label-{{i}}",
"data":[{"name":"商品A"}, {"name":"商品B"}, ...]
}}
C) A4面付けPDF — 印刷業者にそのまま渡せる
{"method":"illust.batch_render","session":"...","params":{
"output": "pdf-imposition",
"imposition": {
"paper": "A4",
"cols": 2,
"rows": 4,
"margin_mm": 10,
"gap_mm": 5
},
"data": [/* 100件 */]
}}
{"ok":true, "count":100, "output":"pdf-imposition",
"paper":"A4", "cols":2, "rows":4, "pages":13,
"filename":"illustmaker-imposed-20260525-115500.pdf",
"pdf_base64":"JVBERi0xLjcK...", "size":54320}
クライアント側 (ブラウザ)
ヘルパー IM.batchRender() + IM.batchSave() でZIP/PDFが即自動ダウンロード:
IM.batchRender("session-id",
[{name:"濃口醤油"}, {name:"薄口醤油"}, ...],
{output:"pdf-imposition", imposition:{cols:2, rows:4}}
).then(IM.batchSave);
// → ブラウザDLが自動発火
追加メソッド (v2.0+)
v2.0 以降で 10 → 64メソッドに拡張。 セッション管理・整列・量産・配色提案・外部取得・ギャラリー連携・**マスク/シンボル/ブレンド/パスファインダー**・**印刷入稿PDF(トンボ・塗り足し)**・**部品/テンプレライブラリ**・**BYOK画像生成/AI Vision批評** まで対応。
セッション管理
illust.list_sessions | 全セッション一覧(最大100、 新しい順) → {count, sessions:[{session, docW, docH, objectCount, updated_at, size}]} |
|---|---|
illust.session_info | セッションメタ情報(サイズ・更新時刻・オブジェクト数) |
illust.clone_session | セッション複製(テンプレ流用)。 オブジェクトID再採番 |
illust.delete_session | セッション削除 |
illust.copy_to_session | {target, ids} 別セッションにオブジェクトコピー |
オブジェクト操作
illust.get_object | {id} → 単一オブジェクトの完全データ |
|---|---|
illust.clear_objects | 全オブジェクト削除 |
illust.add_image | {url} でサーバー側fetch→data URI埋込 / {href} で直接 |
illust.duplicate_objects | {ids, dx, dy} 複製(オフセット指定) |
illust.group_objects | {ids, name?} フォルダ化 |
illust.align_objects | {ids, kind} 整列。 kind: left/right/center-h/top/bottom/center-v/dist-h/dist-v |
illust.set_layer_order | {ids, action} 重ね順。 action: front/back/forward/backward |
保存・読込
illust.save_project | state全体をJSON化 → {project_base64, filename}。 .json として保存可 |
|---|---|
illust.load_project | {project_base64 | project_json} stateを完全置換 |
単発書出(batch_renderじゃない1枚もの用)
illust.export_png | {dpi?} 72-600 → PNG base64 |
|---|---|
illust.export_jpeg | {dpi?, quality?} 50-100 → JPEG base64 |
illust.export_pdf | 真のベクターPDF(TCPDFでSVG埋込) |
illust.export_optimized_svg | SVGO相当の軽量化。 {original_size, optimized_size, reduction_pct} も返す |
テキスト
illust.measure_text | {text, fontSize, fontFamily?, letterSpacing?} → {width, height, baseline}(全角/半角判定の近似値) |
|---|---|
illust.replace_text | {find, replace} 全テキスト一括置換 |
illust.set_text_style | {ids?, style:{fontSize, fontFamily, fill, ...}} 一括スタイル変更 |
illust.text_to_path | テキストを raw SVG として凍結(真のアウトライン化はクライアント側で getBBox / opentype.js が必要) |
illust.list_fonts | システムフォント + 人気Google Fonts一覧 |
illust.set_font | {name} Google Fontsをセッションに登録(実ロードはクライアント側で) |
配色・フォント提案
illust.extract_palette | 既存オブジェクトから色抽出 → {palette:[{color, count}], unique_count} |
|---|---|
illust.suggest_palette | {theme} → 5色配色。 themes: warm/cool/pastel/mono/vivid/和/夏/秋/冬/春/natural/tech |
illust.suggest_font | {purpose} → 推奨フォント5本。 purposes: logo/heading/body/japanese-logo/japanese-body/casual/serious/tech |
外部リソース
illust.import_from_url | {url, x?, y?, w?, h?} HTTP(S) URL からSVG/画像取得して配置(5MB上限) |
|---|
ギャラリー(コミュニティ)
セッション完成後、AIから直接公開ギャラリーに投稿・閲覧・リミックス・コメントできます。
gallery.submit | {session, title, description?, category?, tags?, author_name?, parent_id?} セッションを公開投稿。サーバー側でSVG/PNG/projectJSONを自動生成。→ {id, slug, url, png_url} |
|---|---|
gallery.list | {sort?, category?, tag?, q?, limit?} 公開作品一覧。sort:"new"|"popular"、category:"icon|logo|illustration|character|ui|pattern|other" |
gallery.get | {slug} 作品詳細(タイトル/作者/タグ/PNG/SVG/projectURL等) |
gallery.remix | {slug} 親作品を読み込んだ新セッションを作成 → {session, open_url, parent_id, object_count}。 そのまま illust.update_object 等で改造可 |
gallery.list_comments | {slug} コメント一覧(parent_id で1階層スレッド構造) |
gallery.comment | {slug, body, author_name?, parent_id?} コメント投稿。parent_id で返信 |
マスク(クリップ・不透明)
rect/ellipse/path 全シェイプをマスクとして使用できます(v3.0 から rect/ellipse 対応)。
illust.clip_mask | {session, mask_id, content_ids} 最前面のオブジェクトの形状でコンテンツをクリップ。マスク元は削除される |
|---|---|
illust.release_clip | {session, ids} クリップ解除 |
illust.opacity_mask | {session, mask_id, content_ids} 不透明マスク(白=不透明・黒=透明・グラデ可) |
illust.release_opacity_mask | {session, ids} 不透明マスク解除 |
テキストオンパス
illust.text_on_path | {session, text_id, path_id, offset?} テキストをパス曲線に沿わせる。startOffset 指定可("50%" or px) |
|---|---|
illust.release_text_on_path | {session, text_id} 通常テキストに戻す |
シンボル(マスター・インスタンス)
illust.save_symbol | {session, ids, name} 選択オブジェクトをシンボル化 |
|---|---|
illust.list_symbols | {session} シンボル一覧 |
illust.create_symbol_instance | {session, symbol_id, x, y} インスタンスを座標に配置 |
パスファインダー・ブレンド
illust.pathfinder | {session, ids[2+], op: union|intersect|subtract|exclude} ブーリアン演算。サーバー側で marching squares による高精度処理 |
|---|---|
illust.blend | {session, id_a, id_b, steps} 2オブジェクト間にN段階の中間オブジェクトを生成。形状・色を補間 |
印刷入稿対応(プロ向け)
印刷会社へそのまま入稿できるPDFを出力。トンボ・塗り足し・レジストレーションマーク対応。
illust.export_print_pdf | {session, bleed_mm?, trim_marks?, registration_marks?, color_space?} 印刷入稿PDF出力。・bleed_mm: 塗り足し (デフォルト3mm) ・trim_marks: トンボ自動付与 ・registration_marks: 4色レジマーク |
|---|---|
illust.preflight_check | {session, bleed_mm?} プリフライト診断 → {score: 0-10, issues, warnings, recommended_actions}。塗り足し漏れ・テキスト未アウトライン・RGB→CMYK警告 |
ライブトレース(画像→ベクター)
illust.live_trace | {session, image_id, threshold?, turd_size?, opt_tolerance?, fill?, replace_image?} ラスター画像オブジェクトを potrace でベクター化。手書きスケッチからロゴ起こし等 |
|---|
部品・テンプレートライブラリ
サーバー側に高品質な部品(アイコン・フレーム・装飾)とテンプレート(名刺・チラシ・ロゴ等)を保持。AIから検索・利用可能。
illust.library_search | {q?, category?, limit?} 部品検索。category: icon|frame|decoration |
|---|---|
illust.library_use | {session, slug, x, y, w?, h?} 選んだ部品をセッションに配置 |
illust.template_list | {category?, limit?} テンプレ一覧。category: business-card|flyer|logo|banner|card|coupon |
illust.template_render | {slug, vars} テンプレから新セッション生成。{{name}} {{title}} 等の変数を自動置換 |
BYOK 画像生成・AI Vision批評
ユーザー自身のAPIキーで画像生成・AI批評を実行。ASIサーバーはキーを保管しません(透過プロキシ)。
illust.generate_image | {session, prompt, api_key, provider: openai|recraft, model?, size?, x, y, w, h} 画像生成AIで画像挿入 |
|---|---|
illust.critique | {session, api_key, provider: anthropic|openai, model?, criteria?} 現在のセッションをPNG化 → Vision LLMで批評 → {score, summary, issues, strengths} |
グラデーションメッシュ (v4.0)
バイリニア補間による滑らかな2D色グラデーション。4隅色 or N×Mグリッドの全色指定可能。
illust.add_mesh_gradient | {session, x, y, w, h, cols?, rows?, detail?, corners?, colors?} 滑らかな2Dカラーグラデーション。detail(8-60)で滑らかさ調整。576〜3600ポリゴンで描画 |
|---|
ブランドキット保存 (v4.0)
パレット・フォント・アセットURLをひとまとめにブランド資産として保存。匿名 owner_fp(ip+ua hash)ベース。
illust.brand_save | {name, palette[], fonts[], assets[], kit_id?} ブランドキット保存。kit_id指定で上書き |
|---|---|
illust.brand_list | 自分のブランドキット一覧 |
illust.brand_delete | {kit_id} ブランドキット削除 |
ライブ共有 (v4.0)
編集中のセッションをURLで共有。閲覧者は /illustmaker/live/{token} で3秒polling閲覧。30日有効。mode='comment'で発行すれば閲覧者は座標付きコメント可。
illust.share_create | {session, mode: view|comment, label?} 共有リンク発行。返り値{token, url} |
|---|---|
illust.share_list | 自分が発行した共有リンク一覧 |
illust.share_delete | {token} 共有リンク無効化 |
illust.share_view | {token} 公開エンドポイント(認証不要)。token から現状SVGを返す |
ライブ共有コメント (v4.1)
共有リンクを mode='comment' で発行すると、閲覧者がライブビューア上で座標付きコメントを投稿可能。社内レビュー・クライアントフィードバック・教育現場の質問板に。
illust.share_comment_post | {token, body, author_name?, x?, y?} 閲覧者からのコメント投稿(公開エンドポイント・認証不要)。最大2000字。x/y省略で「全体への意見」。レート制限:20件/時間/閲覧者 |
|---|---|
illust.share_comment_list | {token, include_resolved?} コメント一覧(公開エンドポイント) |
illust.share_comment_resolve | {comment_id, resolved} 共有リンクのオーナーのみ。解決マーク切替 |
illust.share_comment_delete | {comment_id} 共有リンクのオーナーのみ。ソフト削除 |
リアルタイム共同編集 (v5.0)
共有リンクを mode='edit' で発行すると、複数人が /illustmaker/live/{token} から同時に図形描画・移動・削除できる完全共同編集モードに。HTTP long-polling + LWW(Last-Write-Wins)競合解決。参加者カーソル・選択範囲・編集ロックを表示。
illust.collab_join | {token, actor_name?, actor_color?, actor_id?} 共同編集に参加。actor_id払出 + 初期状態 + last_seq返却 |
|---|---|
illust.collab_leave | {token, actor_id} 離脱 |
illust.collab_op_submit | {token, actor_id, op_type, payload} 操作投稿。op_type = add_object / update_object / delete_objects / set_document / reorder_objects / cursor / selection / lock_object / unlock_object |
illust.collab_poll | {token, actor_id, since} long-poll(最大25秒)。since以降のop配列・参加者・ロック一覧を返却 |
illust.collab_status | {token} 軽量ステータス(参加者数・op数・最終seq) |
AI ツール統合
Claude Desktop / Cursor / Cline (npm版)
公開中: @illustmaker/mcp
{
"mcpServers": {
"illustmaker": {
"command": "npx",
"args": ["-y", "@illustmaker/mcp"]
}
}
}
macOS / Homebrew で `failed to connect` になる場合: Claude Code 等は最小PATHでサブプロセスを起動するため `npx` が見つからないことがあります。下記のように 絶対パス を指定してください(パスは which npx で確認)。
{
"mcpServers": {
"illustmaker": {
"command": "/usr/local/bin/npx",
"args": ["-y", "@illustmaker/mcp"]
}
}
}
HTTP API直接呼出しでも利用可能。
ブラウザコンソールから(window.IM)
エディタを開いた状態で、ブラウザのDevToolsコンソールから window.IllustMaker(短縮: IM)で全機能にアクセス可能。
IM.api() // 全メソッド一覧
IM.newDocument({width:800,height:600})
IM.addRect({x:100,y:100,w:200,h:120,fill:"#4a9eff"})
IM.addText("Hello",{x:160,y:300,fontSize:48})
IM.exportSVG() // → string
IM.downloadSVG("logo.svg")
スキーマ
オブジェクト型
{
"id": "o1", // 必須、英数字
"type": "rect"|"ellipse"|"text"|"path"|"line"|"poly"|"star"|"image"|"raw",
"name": "label", // 表示名
"x": 0, "y": 0, "w": 100, "h": 100,
"rotation": 0, // 度
"fill": "#000", // 色 or {"stops":[...]}
"stroke": "none",
"strokeWidth": 0,
"visible": true,
"locked": false,
// type 別:
// text: text, fontSize, fontFamily, fontWeight, letterSpacing, lineHeight
// path/poly/star: nodes:[{x,y,hIn,hOut}], closed
// line: x1, y1, x2, y2
// image: href
// raw: rawSvg (サニタイズされる)
}
色値の許容形式
- HEX:
#000,#ffffff,#00000080(8桁=アルファ含む) - RGB/RGBA:
rgba(255, 0, 0, 0.5) - HSL:
hsl(120, 50%, 50%) - 名前付き:
red,blue,currentColor - 特殊:
none,transparent - グラデーション:
{"stops":[{"offset":0,"color":"#f00"},{"offset":1,"color":"#00f"}], "angle":0}