원클릭으로
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.