Pixel Art SVG Generator
Create a pixel art SVG illustration: $ARGUMENTS
Design Principles
Pixel Grid
- Each "pixel" is a
<rect> with width/height of 7px
- Grid spacing: 7px (no gaps between pixels)
- Characters are typically 8-10 pixels wide, 8-12 pixels tall
- Use
<g transform="translate(x,y)"> to position and reuse character groups
Color Palette
Keep it simple — 3-5 colors per character:
- Skin:
#FFDAB9 (light), #E8967A / #D4956A (blush/shadow)
- Eyes:
#333
- Hair:
#8B5E3C (brown), #2C2C2C (black), #FFD700 (blonde), #C0392B (red)
- Clothes: use project's brand color (e.g.
#4A9EDA for blue, #74AA63 for green)
- Shoes/pants:
#444
- Accessories:
#555 (glasses frames), #FFD700 (crown)
Character Template (7px grid)
Row 0 (hair top): 4 pixels centered
Row 1 (hair): 6 pixels wide
Row 2 (face top): 6 pixels — all skin
Row 3 (eyes): 6 pixels — skin, eye, skin, skin, eye, skin
Row 4 (mouth): 6 pixels — skin, skin, mouth, mouth, skin, skin
Row 5 (body top): 8 pixels — hand, 6 shirt, hand
Row 6 (body): 6 pixels — all shirt
Row 7 (legs): 2+2 pixels — with gap in middle
Scene Composition
Chat Dialogue Layout (like our hero image)
- Two characters on left/right sides, vertically centered
- Chat bubbles between them, alternating left/right
- Bubble tails point toward the speaking character
- Arrows between bubbles show direction of communication
- Use
orient="auto" markers for arrow heads
- Bottom: tagline or decoration
Single Character with Label
- Character centered
- Label text below
- Optional: speech bubble above
Group Scene
- Characters spaced evenly
- Optional: ground line, background elements
- Keep viewBox tight — no wasted space
SVG Structure
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 W H" font-family="monospace">
<defs>
<!-- Arrow markers if needed -->
</defs>
<rect width="W" height="H" fill="#fafbfc" rx="12"/> <!-- Background -->
<!-- Characters via <g transform="translate(...)"> -->
<!-- Dialogue bubbles: <rect> + <polygon> tail + <text> -->
<!-- Arrows: <line> with marker-end -->
<!-- Labels: <text> with text-anchor="middle" -->
</svg>
Chat Bubble Recipe
<!-- Blue bubble (left character speaks) -->
<rect x="110" y="29" width="280" height="26" fill="#e8f4fd" stroke="#4a9eda" stroke-width="1.5" rx="8"/>
<!-- Tail pointing left toward character -->
<polygon points="108,41 99,47 108,46" fill="#e8f4fd" stroke="#4a9eda" stroke-width="1.5"/>
<rect x="107" y="40" width="3" height="7" fill="#e8f4fd"/> <!-- covers stroke at junction -->
<text x="123" y="46" font-size="13px">📄 Message here</text>
<!-- Orange bubble (right character responds) -->
<rect x="490" y="71" width="280" height="26" fill="#fdf2e8" stroke="#da8a4a" stroke-width="1.5" rx="8"/>
<!-- Tail pointing right toward character -->
<polygon points="772,83 781,89 772,88" fill="#fdf2e8" stroke="#da8a4a" stroke-width="1.5"/>
<rect x="770" y="82" width="3" height="7" fill="#fdf2e8"/>
<text x="503" y="88" font-size="13px">🤔 Response here</text>
Arrow Recipe
<defs>
<marker id="ar" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">
<polygon points="0 0, 8 3, 0 6" fill="#4a9eda"/>
</marker>
</defs>
<!-- Right arrow (→): x1 < x2 -->
<line x1="392" y1="42" x2="465" y2="42" stroke="#4a9eda" stroke-width="2" marker-end="url(#ar)"/>
<!-- Left arrow (←): x1 > x2 -->
<line x1="488" y1="84" x2="420" y2="84" stroke="#da8a4a" stroke-width="2" marker-end="url(#ar-o)"/>
Workflow
Step 1: Understand the Request
- What characters/objects to draw?
- What's the scene? (dialogue, portrait, group, diagram)
- What colors/brand to match?
- What size? (compact for badge, wide for README hero)
Step 2: Generate SVG
- Write to a temp file or project directory
- Open with a local preview command for visual inspection
- Keep viewBox tight — measure actual content bounds
Step 3: Iterate with User
- User provides feedback on screenshot
- Common fixes: overlap, arrow direction, spacing, sizing
- Use
Edit for small tweaks, Write for major redesigns
- Typical: 2-4 iterations to get it right
Step 4: Finalize
- Ensure no personal info in the SVG
- Clean up: remove unused defs, tighten viewBox
- Suggest adding to README:

Capability Rule
If the user expects local preview or interactive visual iteration and the current environment cannot open or preview the generated asset, stop and tell the user what needs to be configured. Do not silently downgrade into a write-only path unless the user explicitly asked for that mode.
Common Pitfalls
- Arrow direction:
orient="auto" follows line direction. Line going right→left = arrowhead points left
- Bubble overlap: keep 38-44px vertical spacing between rows
- Text overflow: monospace 13px ≈ 7.8px/char, emoji ≈ 14px. Measure before setting bubble width
- Character overlap with bubbles: keep character x-zone and bubble x-zone separated by ≥10px
- viewBox too large: match viewBox to actual content, add ~10px padding
- Tail stroke artifact: always add a small
<rect> at the bubble-tail junction to cover the stroke line
1---2name: pixel-art3description: Generate pixel art SVG illustrations for READMEs, docs, or slides. Use when user says "画像素图", "pixel art", "make an SVG illustration", "README hero image", or wants a cute visual.4---5
6# Pixel Art SVG Generator
7
8Create a pixel art SVG illustration: $ARGUMENTS
9
10## Design Principles
11
12### Pixel Grid
13- Each "pixel" is a `<rect>` with width/height of 7px
14- Grid spacing: 7px (no gaps between pixels)
15- Characters are typically 8-10 pixels wide, 8-12 pixels tall
16- Use `<g transform="translate(x,y)">` to position and reuse character groups
17
18### Color Palette
19Keep it simple — 3-5 colors per character:
20- **Skin**: `#FFDAB9` (light), `#E8967A` / `#D4956A` (blush/shadow)
21- **Eyes**: `#333`
22- **Hair**: `#8B5E3C` (brown), `#2C2C2C` (black), `#FFD700` (blonde), `#C0392B` (red)
23- **Clothes**: use project's brand color (e.g. `#4A9EDA` for blue, `#74AA63` for green)
24- **Shoes/pants**: `#444`
25- **Accessories**: `#555` (glasses frames), `#FFD700` (crown)
26
27### Character Template (7px grid)
28```
29Row 0 (hair top): 4 pixels centered
30Row 1 (hair): 6 pixels wide
31Row 2 (face top): 6 pixels — all skin
32Row 3 (eyes): 6 pixels — skin, eye, skin, skin, eye, skin
33Row 4 (mouth): 6 pixels — skin, skin, mouth, mouth, skin, skin
34Row 5 (body top): 8 pixels — hand, 6 shirt, hand
35Row 6 (body): 6 pixels — all shirt
36Row 7 (legs): 2+2 pixels — with gap in middle
37```
38
39### Scene Composition
40
41#### Chat Dialogue Layout (like our hero image)
42- Two characters on left/right sides, vertically centered
43- Chat bubbles between them, alternating left/right
44- Bubble tails point toward the speaking character
45- Arrows between bubbles show direction of communication
46- Use `orient="auto"` markers for arrow heads
47- Bottom: tagline or decoration
48
49#### Single Character with Label
50- Character centered
51- Label text below
52- Optional: speech bubble above
53
54#### Group Scene
55- Characters spaced evenly
56- Optional: ground line, background elements
57- Keep viewBox tight — no wasted space
58
59### SVG Structure
60```xml
61<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 W H" font-family="monospace">
62 <defs>
63 <!-- Arrow markers if needed -->
64 </defs>
65
66 <rect width="W" height="H" fill="#fafbfc" rx="12"/> <!-- Background -->
67
68 <!-- Characters via <g transform="translate(...)"> -->
69 <!-- Dialogue bubbles: <rect> + <polygon> tail + <text> -->
70 <!-- Arrows: <line> with marker-end -->
71 <!-- Labels: <text> with text-anchor="middle" -->
72</svg>
73```
74
75### Chat Bubble Recipe
76```xml
77<!-- Blue bubble (left character speaks) -->
78<rect x="110" y="29" width="280" height="26" fill="#e8f4fd" stroke="#4a9eda" stroke-width="1.5" rx="8"/>
79<!-- Tail pointing left toward character -->
80<polygon points="108,41 99,47 108,46" fill="#e8f4fd" stroke="#4a9eda" stroke-width="1.5"/>
81<rect x="107" y="40" width="3" height="7" fill="#e8f4fd"/> <!-- covers stroke at junction -->
82<text x="123" y="46" font-size="13px">📄 Message here</text>
83
84<!-- Orange bubble (right character responds) -->
85<rect x="490" y="71" width="280" height="26" fill="#fdf2e8" stroke="#da8a4a" stroke-width="1.5" rx="8"/>
86<!-- Tail pointing right toward character -->
87<polygon points="772,83 781,89 772,88" fill="#fdf2e8" stroke="#da8a4a" stroke-width="1.5"/>
88<rect x="770" y="82" width="3" height="7" fill="#fdf2e8"/>
89<text x="503" y="88" font-size="13px">🤔 Response here</text>
90```
91
92### Arrow Recipe
93```xml
94<defs>
95 <marker id="ar" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto">
96 <polygon points="0 0, 8 3, 0 6" fill="#4a9eda"/>
97 </marker>
98</defs>
99<!-- Right arrow (→): x1 < x2 -->
100<line x1="392" y1="42" x2="465" y2="42" stroke="#4a9eda" stroke-width="2" marker-end="url(#ar)"/>
101<!-- Left arrow (←): x1 > x2 -->
102<line x1="488" y1="84" x2="420" y2="84" stroke="#da8a4a" stroke-width="2" marker-end="url(#ar-o)"/>
103```
104
105## Workflow
106
107### Step 1: Understand the Request
108- What characters/objects to draw?
109- What's the scene? (dialogue, portrait, group, diagram)
110- What colors/brand to match?
111- What size? (compact for badge, wide for README hero)
112
113### Step 2: Generate SVG
114- Write to a temp file or project directory
115- Open with a local preview command for visual inspection
116- Keep viewBox tight — measure actual content bounds
117
118### Step 3: Iterate with User
119- User provides feedback on screenshot
120- Common fixes: overlap, arrow direction, spacing, sizing
121- Use `Edit` for small tweaks, `Write` for major redesigns
122- Typical: 2-4 iterations to get it right
123
124### Step 4: Finalize
125- Ensure no personal info in the SVG
126- Clean up: remove unused defs, tighten viewBox
127- Suggest adding to README: ``
128
129## Capability Rule
130
131If the user expects local preview or interactive visual iteration and the current environment cannot open or preview the generated asset, stop and tell the user what needs to be configured. Do not silently downgrade into a write-only path unless the user explicitly asked for that mode.
132
133## Common Pitfalls
134- **Arrow direction**: `orient="auto"` follows line direction. Line going right→left = arrowhead points left
135- **Bubble overlap**: keep 38-44px vertical spacing between rows
136- **Text overflow**: monospace 13px ≈ 7.8px/char, emoji ≈ 14px. Measure before setting bubble width
137- **Character overlap with bubbles**: keep character x-zone and bubble x-zone separated by ≥10px
138- **viewBox too large**: match viewBox to actual content, add ~10px padding
139- **Tail stroke artifact**: always add a small `<rect>` at the bubble-tail junction to cover the stroke line