Generated banner for Illustration Framed Panel
Generated logo for Illustration Framed Panel

Illustration Framed Panel

Meng ToCommunityCreated by Meng To

  • Skill
  • Content generator
  • Design and creative
  • MIT
  • Low risk
  • Has scripts

From the author

Draws original design-and-coding scenes as SVG cards (480x360) in a framed-panel cartoon style. Identifying traits are a soft pastel card with a periwinkle-violet panel framed in thin navy, outline-only clouds and a pale lavender floor band with dashes inside it; L-shaped corner brackets outside two corners; white speech bubbles, UI cards and bushes that break out over the frame edge; and a semi-real character with a thin navy outline (1.25 px), muted flat fills, navy hair with violet highlights, blush and short paired hatch marks. Covers people working with laptops, screens, UI parts and devices. Use when someone asks for a framed panel, window-frame or picture-frame illustration, pastel violet cartoon, outlined flat character scene, empty-state, onboarding or 404 art, a blog header, a feature spot, a support, about or team page illustration, or a marketing card with a person.
— the description by Meng To

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill produces original SVG illustrations in a specific framed-panel cartoon style. Each scene features a semi-real character engaged in design or coding tasks, set within a violet panel on a pastel card. The style is defined by thin navy outlines, specific pastel color palettes, and elements like UI cards or speech bubbles that break out over the frame edge to create a dynamic composition.

What it does

  • Creates 480x360 SVG illustrations of characters working with laptops, screens, and UI elements.
  • Applies a consistent framed-panel aesthetic with navy outlines and pastel fills.
  • Incorporates breakout elements like speech bubbles and UI cards that extend beyond the frame.
  • Provides a structured workflow for generating, linting, and rendering the SVG cards.
  • Includes a kit for consistent character features, poses, and props.
  • Ensures technical consistency through a provided linting and rendering toolset.

When to use it

  • When you need custom illustrations for blog headers, feature spots, or marketing cards.
  • For creating empty-state, onboarding, or 404 page artwork.
  • When designing visuals for support, about, or team pages.
  • When a consistent, outlined, pastel-violet cartoon style is required for product documentation or UI.

Advantages

  • Maintains a high level of visual consistency across multiple illustrations.
  • Provides a clear, deterministic workflow for generating complex SVG scenes.
  • Includes built-in validation to ensure style adherence and technical correctness.
  • Offers a modular approach to character and prop placement.

Usage examples

“Generate a framed panel illustration of a developer sitting on a beanbag and typing on a laptop.”
An SVG file featuring a character in the specified pose, with breakout UI elements and the correct pastel color scheme.
“Create a 404 page illustration showing a person kneeling and pressing a button on a component board.”
An SVG illustration depicting the kneeling pose, grid board, and breakout UI cards consistent with the framed-panel style.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/mengto/illustration-framed-panel/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip illustration-framed-panel.zip -d .agents/skills

Documentation by Meng To

Illustration: Framed panel

A cartoon person at work inside a violet "window", painted on a pastel card. The panel gives the scene a stage, and the UI bubbles and bushes that spill over its edge make it feel lively rather than boxed. Use it for friendly product and team moments: support, live streams, design work, onboarding.

Boundary: for people without a frame on a plain white background with inked outlines and big heads, use illustration-outlined-cartoon. For flat shapes with no outlines and floating confetti, use illustration-flat. For a single object with no person, use illustration-teal-spot.

Extracted from a set of 42 original design-and-coding cards in 14 styles; the three cards in examples/ are this style's shipped cards.

The look in one sentence

A fixed violet panel with a thin navy frame sits on a pastel card, with outline clouds and a dashed lavender floor inside it, and the scene's white bubbles, UI cards and leaves break out across its edge.

Palette

Measured from the examples. Every card uses the navy line, the panel set and the bubble set; pick one card pastel.

RoleHexWhere it goes
Card: peach / orchid / sky cyan#F7D8B5 / #DFA5D4 / #A7E0EDfull-bleed card, one per card
Bracket and outside marks#9C878C / #A3739B / #6E9FADbrackets on the matching pastel
Navy line#2E2A5Cevery outline, clouds, hatch marks, eyes, bold UI text
Panel#8A80EApanel fill (also a UI accent: slider, swatch)
Floor band / floor dashes#D0CCF4 / #8F88D6floor rect y 256–312, its short dashes
Contact shadow#B5AEEAflat ellipses under feet, chairs, beanbags
Bushes#BACCA6, #A9C094 front layerscalloped bushes on the floor line
Hair / hair highlight#433D71 / #7C74C4all hair; highlight strokes; folds on dark fabric
Skin (three tones)#EDB0A2, #F0BFA4, #D49A80face, neck, hands
Blush#E8878A at opacity 0.5–0.6 (on #D49A80 skin: #C46A5C at 0.55)cheek ellipses, tongue line
Mouth#9A3E52 (#8A3A48 on tan skin)open smile
Topsmustard #EDB24F (cuff #E0A23E), mint #95D1B3 (shade #79BC9C), orange #EE8A6E (shade #D9735A)sweaters, hoodies, cardigans
Trousers#6A63B0 (folds #A29DDA), #4A4488 (folds #7C74C4)jeans
Cream / white#FCF6EA, #FCFAF3 / #FFFFFFtees, socks, shoe uppers, code windows / bubbles and UI cards
Red accent / its shadow#E35D5B / #B8434Ashoe soles, tags, buttons, heart, errors
Pale red, pink#E9A3A0, #F8CCC8, #F4E0E8, #F29CA0secondary UI lines, error rows, drop slots, code tokens
Green / dark green / pale green#5FA77A / #3E8E5E / #CDEBD6check badges, toggles, success rows
Mint, sage#8FD0B0, #6FB585, #79C2A8icon chips, image placeholders, avatar shirts
Yellow, orange#EDB24F, #F09A5Eswatches, earrings, highlighted code
UI greys#BDB8D6 lines, #6E6A8E / #7D79A0 dark lines, #C9C5DE raised-shadow, #CFCBE0 line numberstext placeholders inside bubbles
Devices#C9C7DA body, #9F9CB8 / #B7B5CC / #A9A7C0 edges, #DCDAE8 keyboard, #A9A6C2 keys, #3A3570 screen, #524C98 active line, #6E68AA, #E8E6F8, #BDB8F0 code on darklaptops, monitors
Furniture#C9C5E8 + #A9A4D8 seams, #B9B4DE, #D8D3F0 grid, desk #F6E7D2 top / #E3B98E edge, #FFF4D6 lamp glowchairs, drawers, boards, desks
One-off prop tinte.g. plum #B2679E (the Support beanbag)one large prop per card may take its own muted tint; lint will WARN on it
Avatars#FBE3CC background, #F1B9A2 skin, #D9774E ginger hairsmall faces inside bubbles
  • No gradients, filters or patterns. Opacity only on blush ellipses (0.5–0.6) and on glasses lenses (fill-opacity 0.18).

  • Never put the panel violet behind a violet top or violet trousers without a navy outline between them; the figure has to separate from the panel by value (mustard, mint, orange, cream all do).

  • The card pastel never appears inside the panel, and the panel violet never fills the card.

Line and fill

  • One outline colour, navy #2E2A5C, always a stroke over a flat fill, round caps and joins.

  • Widths at 480 wide: panel outline 1.35; body, clothes, furniture, bubbles 1.25; hands, shoes, bushes, neck 1.05–1.15; clouds and floor line 1.2; fold curves 0.9–1.1; hatch pairs and inner ear 0.85–0.9; finger separations 0.75–0.8; corner brackets 1.25 in the bracket colour.

  • Texture is drawn, never filtered: pairs of short parallel slashes (each 3–4 long, the second 1 right and 5 lower, slanting up-right, navy 0.9) scattered 2–4 pairs per garment; a few longer fold curves; on dark trousers and hair, folds and highlights in the lighter tint (#A29DDA, #7C74C4) at 1.0–1.2.

  • Shading is a flat darker tone with no outline, laid inside a shape along one side (#D9735A panels inside an #EE8A6E hoodie; #79BC9C cuffs on a mint sweater).

  • Raised UI parts (buttons, toggles, tags, chips) have a darker copy 3 px straight below (#B8434A under red, #3E8E5E under green, #C9C5DE under white).

  • Every white bubble and card gets one short inner corner tick (Q curve, 1.0) 5–7 px inside a top corner: the "sketchy" hand.

  • Text: ui-sans-serif, system-ui, sans-serif, weight 700–800, 10–16 px, navy or white. At most three words per card ("Fixed it!", "+1", "LIVE", "Aa").

Characters

  • One figure per card, seated or kneeling: the panel interior is 266 tall and every example figure spans 195–215 px from hair top to floor. A standing adult (about 5.5 heads) does not fit; crouch, sit, kneel or crop at a desk.

  • Head: use face() from scripts/panel-kit.mjs; it is the same face in all three examples. 3/4 view, 36 wide and 46 tall (brow to chin), chin at (232, 166.5) before your transform. Near eye a navy ellipse rx 1.8 ry 2.1 with an upper-lid arc and a lash flick to the outside; far eye smaller (rx 1.5 ry 1.9); arched brows 1.2; a single hook nose on the far side of the face; an open smile filled #9A3E52 with a pink tongue line; blush ellipse 7.6 × 4.2 under the near eye and a small one at the far cheek edge; ear with one inner curve; a gold earring.

  • Placing the head: wrap face, neck and hair in one <g transform="translate(dx dy) rotate(a 232 166)">; tilt 4–8° into the action. Mirror with scale(-1 1) to look left. Never scale the head: the line weight would change.

  • Hair: navy-violet #433D71 masses with 1.25 outline: a back mass drawn before the face and a fringe or cap after it. Add 3–5 highlight strokes #7C74C4 (1.1–1.2) following the hair direction and 1–2 navy inner strokes (0.9–1.0). The examples show a bob with a side fringe, a high bun with a scrunchie, and a curly crop.

  • Body: torso 60–70 wide, soft trapezoid, sleeves as separate shapes overlapping the torso. Necklines and hems drawn as a second line 3–4 px inside (ribbed hem: a line plus short vertical ticks every 6–7 px). Cardigans have 2 buttons (r 1.5); hoodies have cream drawstrings (1.6) with tiny rectangular tips.

  • Hands: about 22–26 px long, a little shorter than the face. Built as cuff band (the sleeve's shade tone, 5–6 wide, one centre line at 0.8) → forearm in skin → wrist → palm → fingers separated by short inner curves at 0.75–1.0, knuckle bumps on the outline. Thumbs are a separate small shape. Templates: typeHand() (flat or typing, back of hand), pointHand() + pointCuff() (index extended, others curled, thumb across), gripHand() (a right fist round a handle, back to the viewer, thumb over the top on the business end) and kneeHand() (the far arm of a right-facing seated figure, hand palm-down over a knee). Before placing any of them, decide left or right, palm or back, finger direction, and check the thumb side with the table in references/craft.md; mirror the template with scale(1 -1) when the table says the thumb belongs on the other edge.

  • Legs and feet: jeans taper from hip to ankle with a knee bend; when both legs overlap, give the far leg the darker jean #4A4488 (folds #7C74C4) behind a #6A63B0 near leg; hems as a single line; a sock or bare ankle 2–3 px; white sneakers with a 3-px red sole (sneaker()), a toes-tucked shoe for kneeling (tuckedShoe()). Shoes always touch the floor band or a footrest, with a contact ellipse under them.

  • Poses that work: cross-legged on a beanbag leaning into a laptop (the body rotated −5° about the hips), kneeling on one knee while pressing a button into a board, seated on a chair pointing at a monitor while looking back at the viewer. Each has a lean, a twist or a bent knee.

Decor and props

  • Inside the panel: 2 cloud doodles (a big one ~50 wide and a mid one ~44 wide, each with a 3-px dash to its right), optionally a small one (~17 wide), plus 2–4 tiny single-arc ticks (~9 wide), all outline only, in the sky area and never behind the head; one wall prop at most (a code window, a ring light, a grid board).

  • Floor: the band from y 256 to 312 with a navy line at 256 and 6–7 dashes (10–26 long, some followed by a 4-px dash after a 5-px gap) near its top corners and bottom edge.

  • Bushes: 1–2, standing on the floor line at a bottom corner; at least one crosses the panel's side edge.

  • Breakouts: exactly 2 white UI pieces (speech bubble, UI card, type specimen) that cross the frame: one upper-left across the left edge (x about 62–166, y 58–134), one on the right across the right edge (x about 336–436, y 150–250). Optional third: a small red tag across the top-left corner. Each holds an icon or avatar plus 2–4 text lines; no paragraphs.

  • Outside the panel: the two corner brackets (top-right and bottom-left, fixed coordinates) and 2–3 parenthesis marks: a double arc beside one side, a single arc beside the other, in the bracket colour. 0–2 navy sparkle ticks (three short radiating strokes, ticks()) beside a breakout.

  • Never: confetti, stars, gradients, drop shadows, a second figure, a frame in any colour other than navy, decor in the card margins beyond the brackets and marks.

Composition

  • Card: square full-bleed rect, no rx. Panel: x 110 y 46 w 262 h 266 (55 % of the width, 74 % of the height), fill #8A80EA, navy outline 1.35, identical in every card.

  • Draw order: card → brackets and marks → panel fill → clouds → wall props → floor band, line, dashes → props wholly inside the panel → panel outline → bushes that cross the edge → furniture and figure → breakout bubbles and cards → sparkle ticks. Anything that crosses the frame is drawn after the outline so it sits on top of it.

  • The figure's centre line sits at x 205–235, slightly left of the panel centre (241), facing the prop on the right; the head is in the upper half of the panel with 30–60 px of sky above the hair.

  • Weight: the left breakout high, the right breakout at mid height, the bushes low at the corners, so the three non-figure masses form a loose diagonal.

  • Breakouts cross the frame by 40–65 px (measured: 44–64 in the examples). A card that only clips the edge by 10–20 px reads as misplaced, not as breaking out.

  • The lower half needs one furniture mass 120–200 px wide (beanbag, desk, component board, or a seat plus a side table). A figure on a thin stool alone leaves a violet hole under the right breakout.

  • Margins: everything stays inside x 40–450 and y 30–325.

Techniques

scripts/panel-kit.mjs holds every repeated part, lifted from the examples (no dependencies, deterministic). Generate the frame, then hand-draw the figure and props in between. node scripts/panel-kit.mjs demo "$WORK/kit.svg" draws every part on one card so you can see them before using them.

  1. The frame. scaffold({ prefix, bg, label, clouds, wall, inside, front }) returns the whole card with the layers in the order above. cloud(x, y, 'big'|'mid'|'small'|'tick') and bush(x, 'big'|'mid'|'small', { mirror }) place the doodles; floorShadow(cx, cy, rx) puts a contact ellipse on the floor.

    node scripts/panel-kit.mjs scaffold "$WORK/card.svg" --bg orchid --prefix xx- --label "Card Name"
  2. Breakouts. bubble({ x, y, w, h, tail: 'down'|'left'|'right', at }) draws a white speech bubble (radius 8, 11-px tail) with its corner tick; wrap it in a <g stroke="#2E2A5C" stroke-width="1.25">. raised(x, y, w, h, rx, face, under) and textLine(x, y, len, colour) fill it.

  3. Head and shoes. face({ skin, blush, blushOpacity, mouth, earring, smile }) and neck(skin) in template coordinates; sneaker(x, y, { mirror }), tuckedShoe(bx, by).

  4. Texture. hatch(x, y) returns a pair of slashes: <path d="${hatch(186, 214)} ${hatch(214, 196)}" stroke="#2E2A5C" stroke-width="0.9" fill="none" stroke-linecap="round"/>.

  5. Holding things. Draw the held object first, then gripHand() over it, so the curled fingers and thumb overlap the handle; rotate the fist so its fingers follow the forearm, and tilt the handle up to 45° off the thumb axis for wrist bend. To show a lens or screen magnifying what is behind it, redraw that content inside a clipPath of the lens, scaled 1.6 about the lens centre, then a white fill-opacity 0.18 glass and two short white glare strokes; give the rim a light metal #C9C7DA.

  6. Moving traced paths. xf(d, { ox, oy, tx, ty, s, sx, sy }) moves, scales or mirrors path data while keeping stroke widths exact; use it instead of transform="scale()" on anything outlined.

Failure modes

  • Typing hand without a thumb. Both judges marked the Support card's first typing hand for it. Every hand shows its thumb or is turned so the thumb is plainly hidden behind the palm; check with the thumb proof.

  • Thumbs on the wrong side. A designer rejected a whole pass of hands across the set for this. Write down left/right, palm/back and finger direction for each hand before drawing it.

  • Upright on a soft seat. "She sits upright, with no sink into the beanbag": lean the torso 5° into the work, drop the hips below the cushion's rim and dent the cushion outline around them.

  • Too clean a line. Judges found the line "cleaner and more even than the pack's sketchy line". Mix widths (0.75–1.35 as listed), add the bubble corner ticks, hatch pairs and short tick marks at seams.

  • UI kit instead of doodles. Breakouts that are full mini-interfaces read as a UI kit. Keep each to an icon, an avatar or a big glyph plus 2–4 placeholder lines.

  • Too many bubbles. Live Coding's early drafts stacked a heart bubble and a "+1" bubble on the left; the shipped card (scored 9) merges them into one "+1 ♥" bubble and balances the bottom corners with a bush on each side.

  • A lone prop clutters the floor. A PC tower beside the desk was cut from Live Coding; keep the floor to the furniture the figure uses plus bushes.

  • Simplified crossed legs. The Support card's crossed legs and socks were called simplified: draw the far foot tucked under the near knee, the near shin crossing in front, a visible sock band and the sole of the near foot.

  • Figure merges with the panel. Violet clothes on the violet panel lose the silhouette; dress the figure in mustard, mint, orange or cream, and keep dark trousers below the floor line where the band is pale.

  • Floating feet. Shoes need a #B5AEEA contact ellipse and must sit on y 295–304 in the floor band, or visibly on a footrest.

  • A foot reaching for the stool ring. On a stool whose footring sits about 35 px under the seat, the knees are too far forward for a foot to reach it; a tucked far leg drawn there plugged its shin into the shoe's toe. Plant both feet: the far shin drops from under the near thigh, its shoe tucked behind the near shoe with the sole about 3 px higher. Draw a footring as a true ellipse (two cubic halves, not two quadratics that meet in points), with the back half drawn before the post and the front half after it.

  • A dark lens reads as a frying pan. The self-test's first magnifier had a hair-navy rim and grey glass; a light #C9C7DA rim and a magnified view of the card under it made it read at once.

  • Glyphs that turn into digits. Open hook quote marks at 10 px read as "66" (self-test); draw quotes as two filled teardrops and check every small glyph at 1x.

  • A handle pasted over the fist. Drawn after the hand, a handle sits on top of the fingers and the grip reads as a sticker; the handle goes first, the fingers and thumb over it.

Examples

  • examples/support.svg: Support (peach). Cross-legged on a plum beanbag, typing on a laptop on her lap, leaning in; a user's question bubble breaks out left, a "Fixed it!" reply breaks out right, a code window with a bug row and a fixed row hangs on the panel wall. Shows the typing hand, crossed legs, beanbag compression, kicked-off sneakers.

  • examples/design-system.svg: Design System (orchid). Kneeling on one knee, pressing a red button into its dashed slot on a grid board of components (swatches, toggles, slider, avatar chip); a selected component card with handles and a cursor breaks out top-left, an "Aa" type card breaks out right. Shows kneeling legs, a toes-tucked shoe, a two-handed push, raised UI parts.

  • examples/live-coding.svg: Live Coding (sky cyan). Seated at a desk on a swivel chair, pointing at code on a monitor while grinning at the viewer; a mic on a boom arm, a ring light, a mug; a red LIVE tag crosses the top-left corner, a "+1 ♥" chat bubble breaks out left, a code snippet bubble breaks out right. Shows the pointing hand, a mirrored head with glasses, a hoodie with strings, desk drawers.

Workflow

Run commands from this skill's folder. WORK is your own work folder (any path); the card is $WORK/card.svg with id prefix xx-.

  1. Brief. Name the subject and write one line each: the figure's action (verb + object), the pose (sit, kneel, crouch), the wall prop, the two breakouts and what each says, the card pastel.

  2. Pose and hands first. Sketch the figure as boxes on paper or in comments: hip point, knee, feet on the floor band, the shoulder line and where each hand lands. For every hand write down left or right, palm or back, finger direction and the thumb side from references/craft.md.

  3. Scaffold: mkdir -p "$WORK" && cp scripts/panel-kit.mjs "$WORK/" && node scripts/panel-kit.mjs scaffold "$WORK/card.svg" --bg peach --prefix xx- --label "Card Name". For anything beyond the empty frame, write a small generator in $WORK that imports ./panel-kit.mjs and calls scaffold({ ..., front }) with your figure.

  4. Block the furniture, torso, legs and head (via face()), render, and check the silhouette and the lean at 1x before any detail.

  5. Draw clothes, hands, hair, props and breakouts; then add folds, hatch pairs, corner ticks.

  6. Render (headless, 2x): node scripts/render.mjs "$WORK/card.svg" "$WORK/card.png"

  7. Sheet next to the examples: node scripts/render.mjs --sheet "$WORK/sheet.png" examples/*.svg "$WORK/card.svg". Ask "same hand, same set?": frame, line weight, how much breaks out, the face.

  8. Zoom every hand, the face, the feet and every contact at 5–8x, re-rendered from vector: node scripts/render.mjs "$WORK/card.svg" "$WORK/hand.png" --zoom x,y,w,h --scale 8. Do the thumb proof from references/craft.md on a throwaway copy.

  9. Critique against the five criteria in references/craft.md, fix, and repeat. Expect four or more rounds.

  10. Lint: node scripts/lint.mjs "$WORK/card.svg" --prefix xx- --palette style.json. Fix every ERROR; each WARN must be a deliberate tint.

Verify

  • [ ] Card is one full-bleed pastel rect (peach, orchid or sky cyan) with no rx.

  • [ ] Panel at exactly 110, 46, 262 × 266, fill #8A80EA, navy outline 1.35, drawn after the inside props and before the breakouts.

  • [ ] Corner brackets at top-right and bottom-left in the card's bracket colour, plus a double and a single parenthesis mark outside the sides.

  • [ ] Two outline clouds with their tail dashes and 2–4 tiny arc ticks inside the panel; nothing filled in the sky.

  • [ ] Floor band y 256–312 with its navy line and 6–7 dashes; every foot and chair leg on it with a contact ellipse.

  • [ ] Exactly two white breakouts crossing the left and right frame edges, each with a corner tick; at least one bush crossing a side edge.

  • [ ] All outlines navy #2E2A5C; widths in the listed bands (no stroke over 1.35 except deliberate UI bars).

  • [ ] The face is the shared template (eye sizes, lash flick, hook nose, blush), placed by translate and rotate only.

  • [ ] Every hand has a cuff band, a wrist narrower than the palm, separated fingers and a thumb on the side the handedness table gives.

  • [ ] The pose has a lean, twist or bent knee; the seat or floor visibly takes the weight.

  • [ ] 2–4 hatch pairs per garment, hair highlight strokes, at least one flat shade panel or darker cuff.

  • [ ] Text is three words or fewer, 700–800 weight, navy or white.

  • [ ] lint.mjs --palette style.json passes; any WARN is a tint you chose on purpose.

Files

references/craft.md

Craft rules for every illustration card

These rules hold in every illustration-* style. They come from 42 hand-written SVG cards that blind judges scored against commercial illustration packs, and from the faults a designer kept catching in close-ups. Each rule names the failure it prevents.

The card file

  • One self-contained <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 480 360">. A 4:3 card, drawn at 480 wide; every number in the style specs assumes that width.

  • No <style>, no class, no <script>, no <image>, no <foreignObject>, no external href or url(). Presentation attributes only. Failure prevented: a card that loses its colours when pasted into a page whose CSS also styles .hand or path, or that breaks inside a sandboxed embed.

  • Pick a short id prefix per card (dk-, cr2-) and start EVERY id with it: gradients, patterns, filters, clipPaths, masks. Failure prevented: two inline cards on one page share id="grain", and the second card silently renders with the first card's filter.

  • A full-card background, when the style has one, is a square full-bleed <rect width="480" height="360"> with no rx. The page's card container rounds the corners. Failure prevented: a double radius, with a white sliver at each corner.

  • Text: font-family="ui-sans-serif, system-ui, sans-serif" or ui-monospace. Draw wordmarks and big lettering as paths. Keep words to a few; a card is not a slide.

  • Write a small generator (Node or Python) when the style repeats marks: hatching, halftone dots, wobbly brush outlines, grass blades, brick clusters. Hand-place the character and the hero object. Keep generators seeded so a re-run gives the same card.

Originality

  • Every scene is an original design or coding scene with original characters and props.

  • Never trace or recompose a reference image. Don't reuse its poses, props or layout. If a reference shows a figure on a ladder at the left, don't put yours on a ladder at the left.

  • Before you finish, compare your card against any reference you looked at and ask "would someone say this is that card redrawn?" If yes, recompose.

Hands

Hands are the fault that judges and designers catch first, in every style.

  • Construction: sleeve cuff → tapered forearm → a wrist narrower than the hand → palm → fingers → thumb. Never a fist pasted onto a sleeve, never a mitten blob, never fingers drawn as parallel stripes on a box.

  • Fingers: they taper and differ in length. The middle finger is longest; the little finger is shortest and sits lower. Group them; don't space them evenly like a rake. Three or four visible fingers is normal.

  • Size: a hand is about as long as the face from chin to brow. Bigger reads as a glove.

  • Gripping: the fingers wrap around the object, so the overlap order changes along the grip. The thumb closes the loop from the other face. Two hands on one object are two separate fists with a gap.

  • Typing or resting: the palm is flat or arched, the fingertips touch the surface, and the thumb shows.

  • Pointing: the index finger is extended, the other fingers curl with knuckles visible, and the thumb tucks over the middle finger.

  • Open or waving: the fingers spread slightly and the thumb angles out at about 45°.

  • Style match: draw finger separations the way the style draws them: inner contour lines in an outlined style, gaps or tone steps in a flat style, a single loop in a one-line style.

Handedness: put the thumb on the correct side

A designer rejected a whole pass of hands because the thumbs were on the wrong side. Agents never reason about this unless told to. Before drawing each hand, decide three things and write them down:

  1. Is it the LEFT or RIGHT hand? Trace the arm back to its shoulder.

    • A figure in 3/4 or profile facing RIGHT shows its RIGHT side nearest the viewer; the near arm usually passes in front of the torso. Facing LEFT, the near side is the LEFT.

    • A figure facing the viewer has its right hand on the viewer's left.

    • Overlap order (in front of or behind the torso) is the strongest cue. In flat styles a darker, shaded sleeve is usually the far arm.

  2. Which side faces the viewer: the PALM or the BACK (knuckles or nails)?

  3. Which way do the fingers point, wrist to knuckles?

HandVisible sideThumb side when fingers point UPGeneral rule
Rightbackleftthumb = finger direction rotated 90° counter-clockwise
Rightpalmrightthumb = finger direction rotated 90° clockwise
Leftbackrightthumb = finger direction rotated 90° clockwise
Leftpalmleftthumb = finger direction rotated 90° counter-clockwise
  • Right hand, back visible, fingers pointing right: the thumb is on top. A left hand in the same position has the thumb at the bottom.

  • For a hand seen edge-on, work in 3D. With x right, y up, z toward the viewer, f the finger direction, p the direction the palm faces and t the direction of the thumb: right hand t = f × p, left hand t = p × f. A right hand palm-down with fingers pointing right has its thumb on the far side, hidden; a left hand in the same position shows its thumb on the near side.

  • The index finger always sits next to the thumb. The little finger is on the opposite edge.

  • A gripping hand has its fingers and thumb on opposite faces of the object. Which face the thumb is on follows from the table, not from what looks convenient.

  • In a bat or handle grip with two hands, both thumbs point toward the business end.

Thumb proof: make a throwaway copy of the card with the thumb filled #ff0000 and the index finger #0000ff, render that hand at 8x, and check it against what you wrote down. Delete the copy afterwards.

Pose and contact

  • Give poses weight: a lean, bent knees, contrapposto, a twisted torso against a pull. Bolt-upright symmetry reads as clip art. Failure prevented: a front-facing symmetric redo of a pulling figure scored a full point lower than the twisted version.

  • A sitting figure needs the seat to take the weight: hips lower than knees on a beanbag, thighs foreshortened, the cushion compressed. Failure prevented: "the sitting pose reads as standing".

  • Everything that rests has contact: feet on the floor or ground line, objects on surfaces, cups on tables. Nothing floats by accident. Decor that floats on purpose (confetti, sparkles) keeps clear of the figure.

  • No tangents: two contours that just touch read as a mistake. Overlap them clearly or separate them clearly.

  • Arms connect. Every hand traces back through a forearm and an elbow to a shoulder. Failure prevented: "one hand has no arm".

  • Legs taper from hip to ankle. Boxy Π-shaped trousers read as stiff.

  • A shin enters the shoe at the collar, above the heel, never over the toe. With the foot flat on the ground, the shin leans at most about 20° off vertical; a foot tucked further back has to point its toe down. Both shins are about the same length. Failure prevented: a tucked-back far leg drawn as one long diagonal that plugged into the toe of a shoe.

  • Check furniture against the body before putting a foot on it. A stool's footring 35 px below the seat can't take a foot when the knees sit 70 px in front of the post; plant that foot on the floor instead.

  • Heads have a neck.

Composition

  • The group is centred with generous, balanced margins: nothing touches the card edge, and no quadrant is dead empty.

  • One focal point. The subject must read in one glance at 1x (480 px wide).

  • Match the style's density. A sparse style with a cluttered card fails as surely as a dense style with an empty one.

  • Name the card's subject before you draw, and make every prop serve it. When a joke has to land ("stack overflow"), test it at 1x: if you need the caption to get it, the drawing hasn't landed. Failure prevented: "the stack-overflow joke doesn't read at 1x".

The loop: render, critique, fix

Headless only. Never open a visible browser window to check a card.

  1. Render at 2x: node scripts/render.mjs card.svg card.png.

  2. Put the card next to the style's examples: node scripts/render.mjs --sheet sheet.png examples/*.svg card.svg. The question is "same hand, same set?", not "is it nice?".

  3. Zoom where faults hide, re-rendered from vector rather than upscaled: node scripts/render.mjs card.svg hand.png --zoom x,y,w,h --scale 8 (x, y, w, h in SVG units). Check every hand at 3x or more, plus faces, feet and every contact point.

  4. Check the 1x read: the subject has to land at 480 px wide.

  5. Write a harsh critique against the five criteria below, fix, and re-render. Expect four or more rounds before a card is honestly an 8.

  6. Lint: node scripts/lint.mjs card.svg --prefix xx- --palette style.json. Fix every ERROR. Off-palette WARN entries must each be deliberate.

Scoring: five criteria, 0 / 1 / 2 each

The bar for every card is 8/10: "polished and intentional, only minor nits". The question is "would a buyer of a commercial illustration pack accept this as a new card in it?"

  1. Style fidelity: palette, line weight, outline and fill rules, decor vocabulary and density all match the style.

  2. Character drawing: proportions right for the style, appealing face, hands that read, feet and shoes, hair, clothing folds.

  3. Pose and physicality: the gesture reads instantly, with weight and contact, and nothing floats or intersects by mistake.

  4. Composition: a clear focal point, balanced weight, the style's density, generous margins, nothing cramped or cropped.

  5. Subject clarity and craft: the subject reads in one glance; clean edges, consistent stroke widths, no stray marks.

When someone else judges
  • One judge varies by up to 1.5 points on the same render. Use two fresh judges and score each card as the lower of the two.

  • Give judges each card's own subject. A rubric that names only the first card's subject makes judges mark later cards against the wrong subject.

  • To compare two versions, show one judge both in random order. Separate absolute scores drift by about a point between judges.

  • When a judge's notes go back to the illustrator, send them to the same illustrator who drew the card. A fresh redraw rarely beats a focused fix.

  • When fixing one element (a hand, a head), diff the before and after renders and confirm only that element changed. If a designer says "it was better before" about one part, restore that part in place and keep the other fixes.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Node.js

Security

What our scanner noticed· Low risk

  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Meng To
Publisher
Meng To (Community)
Source
MengTo/Skills · agent-skills/illustration/illustration-framed-panel · commit 5ea1661
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Meng To.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download illustration-framed-panel.zip