--- name: "pixel-art" description: "Generate pixel art SVG illustrations for READMEs, docs, or slides. Use when user says \"\u753b\u50cf\u7d20\u56fe\", \"pixel art\", \"make an SVG illustration\", \"README hero image\", or wants a cute visual." --- # Pixel Art SVG Generator Create a pixel art SVG illustration: $ARGUMENTS ## Design Principles ### Pixel Grid - Each "pixel" is a `` with width/height of 7px - Grid spacing: 7px (no gaps between pixels) - Characters are typically 8-10 pixels wide, 8-12 pixels tall - Use `` 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 ```xml ``` ### Chat Bubble Recipe ```xml 📄 Message here 🤔 Response here ``` ### Arrow Recipe ```xml ``` ## 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: `![Alt text](filename.svg)` ## 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 `` at the bubble-tail junction to cover the stroke line