ワンクリックで
canvas-design
Tạo visual art, illustrations, và design assets bằng code (SVG, Canvas API, PDF generation).
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Tạo visual art, illustrations, và design assets bằng code (SVG, Canvas API, PDF generation).
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | canvas-design |
| description | Tạo visual art, illustrations, và design assets bằng code (SVG, Canvas API, PDF generation). |
| metadata | {"openclaw":{"emoji":"🖼️","skillKey":"canvas-design","userInvocable":true}} |
| invocation | {"userInvocable":true,"disableModelInvocation":false} |
Tạo visual art và design assets bằng code — SVG, HTML Canvas API, hoặc PDF generation.
| Command | Mô tả |
|---|---|
/canvas-design | Hướng dẫn tạo visual art |
/canvas-design [description] | Tạo art từ mô tả |
Generates visual outputs using code-based approaches:
This skill does NOT use AI image generation APIs. It creates visuals through code.
Before writing code, sketch the layout mentally:
/theme-factory themes for consistent palettesWhen text appears in visual output:
Font files location: Check project's public/fonts/ or use web-safe fonts.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600">
<defs>
<!-- Gradients, filters, patterns -->
</defs>
<g id="background">
<!-- Background elements -->
</g>
<g id="main">
<!-- Primary content -->
</g>
<g id="foreground">
<!-- Overlays, text -->
</g>
</svg>
Gradients:
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#121212"/>
<stop offset="100%" stop-color="#1e1e1e"/>
</linearGradient>
Glow effect:
<filter id="glow">
<feGaussianBlur stdDeviation="4" result="blur"/>
<feMerge>
<feMergeNode in="blur"/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
Pattern fills:
<pattern id="dots" width="20" height="20" patternUnits="userSpaceOnUse">
<circle cx="10" cy="10" r="1" fill="rgba(255,255,255,0.1)"/>
</pattern>
Noise texture (via feTurbulence):
<filter id="noise">
<feTurbulence type="fractalNoise" baseFrequency="0.65" numOctaves="3"/>
<feColorMatrix type="saturate" values="0"/>
</filter>
const canvas = document.createElement("canvas");
canvas.width = 1600;
canvas.height = 900;
const ctx = canvas.getContext("2d");
Particle systems:
for (let i = 0; i < 200; i++) {
const x = Math.random() * canvas.width;
const y = Math.random() * canvas.height;
const r = Math.random() * 3 + 1;
ctx.beginPath();
ctx.arc(x, y, r, 0, Math.PI * 2);
ctx.fillStyle = `rgba(255, 92, 92, ${Math.random() * 0.5})`;
ctx.fill();
}
Flow fields:
function noise2D(x, y) {
// Perlin or simplex noise
return Math.sin(x * 0.01) * Math.cos(y * 0.01);
}
for (let x = 0; x < width; x += 10) {
for (let y = 0; y < height; y += 10) {
const angle = noise2D(x, y) * Math.PI * 2;
// Draw line segment in angle direction
}
}
Radial compositions:
const cx = canvas.width / 2;
const cy = canvas.height / 2;
for (let i = 0; i < 36; i++) {
const angle = (i / 36) * Math.PI * 2;
const x = cx + Math.cos(angle) * 200;
const y = cy + Math.sin(angle) * 200;
// Draw element at (x, y)
}
const dataUrl = canvas.toDataURL("image/png");
// or use canvas.toBlob() for file writing
Write SVG string directly to a .svg file.
Use a library like jspdf or pdfkit:
import { jsPDF } from "jspdf";
const doc = new jsPDF({ orientation: "landscape", unit: "px", format: [1600, 900] });
doc.addImage(canvas, "PNG", 0, 0, 1600, 900);
doc.save("output.pdf");
Use /theme-factory [name] to get a color palette, then apply it to your canvas creation. This ensures visual consistency across all project outputs.