Skip to content
Back to skills

Style Comic

ASecurity

Comic book style (in testing) — brush-ink outlines with variable width and tapered ends, flat print colours on newsprint, Ben-Day halftone, panels that pop in on the beat, balloons, sound effects on bursts, speed lines. Use it when asked for a comic, cartoon, pop-art, «viñetas», motion comic, onomatopoeia or panels, or when working with styles/comic/.

  • 15 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added October 3, 2026
designgotesting

Works with

  • cli

Security analysis

A100/100

Scanned October 3, 2026

npx -y skills add illodev/drawn-by-code --skill style-comic --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Style Comic?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Style Comic
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/illodev-style-comic/badge)](https://www.skillsdirectory.com/skills/illodev-style-comic)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: style-comic
description: Comic book style (in testing) — brush-ink outlines with variable width and tapered ends, flat print colours on newsprint, Ben-Day halftone, panels that pop in on the beat, balloons, sound effects on bursts, speed lines. Use it when asked for a comic, cartoon, pop-art, «viñetas», motion comic, onomatopoeia or panels, or when working with styles/comic/.
---

# Style · Comic

**In testing.** Reference: `styles/comic/template.js` (look at `styles/comic/review/sheet.jpg`).
Its first style test was a client piece and lives in the client's private repo.

## Code

`styles/comic/comic.js` → `Comic`. Declare both fonts in the scene (OFL, licences in `fonts/`):

```js
fonts: [
    { family: 'Bangers', src: 'fonts/Bangers-Regular.ttf' },
    { family: 'Comic Neue', src: 'fonts/ComicNeue-Bold.ttf', descriptors: { weight: '700' } },
],
```

- **Time:** `onTwos(t)` (t held on its drawing), `drawing(t)` (drawing number, 12 a second).
- **Ink:** `ink(g, pts, { w, taper, wobble, light, closed, smooth, seed, color })` is a filled
  brush line that swells and tapers; `shape(g, pts, { fill, w, shade, light, seed })` fills,
  runs `shade(g, path)` clipped inside, then inks the outline. Paths: `curve`, `resample`,
  `pathOf`, `ellipse`, `rect`, `starPts`, and `lobes(circles, cx, cy)`, the outline of a union
  of circles (clouds, bushes, round bodies).
- **Halftone:** `dots(g, path, { color, spacing, r, anchor })` (Ben-Day, tile built at output
  resolution); `halftone(g, path, { color, spacing, r0, r1, dir, box })` (graded dots for
  round forms and skies).
- **Page:** `paper(g, env, { bleed })` (newsprint, cached) and `grainPost(ctx, env)` in `post`.
- **Panels:** `panel(g, rect, drawFn, { border, bg })` clips the art and rules the border;
  `enter(t, at, dur, from)` is the pop-in on the beat (overshoot, on twos).
- **Lettering:** `letter` (balloon text, upper case), `balloon({ kind: 'speech' | 'thought' |
  'shout', tail, text })`, `sfx(g, text, x, y, { size, fill, shade })` (extruded, outlined,
  each letter tilted and growing), `burst`.
- **Motion:** `speedLines` (focus lines to a point), `motionLines` (streaks trailing a move).
- **Hands:** `hand(g, pose, size, { side, fill })`, a cartoon hand (thumb + three fingers) in
  one skin, wrist at the origin pointing up. Poses `open` (back to the camera), `backGrip`
  (holding a sheet from the camera's side: the backs of three fingers over it, the thumb
  hidden behind), `thumbFront` (the owner's view of a sheet held at its bottom edge). Drawn as
  a right hand; `side: 'left'` mirrors it.
- **Tubes** (limbs, handles): a wide ink line with a narrower colour line on top (the
  template's mug handle, `limb` in any puppet).

## Style rules

- **Palette** (`Comic.COL`): page `#f4ecd6`, deep page `#e7d9b8`, white `#fffaf0`, ink
  `#1c1a20`, red `#dd3b2d`, yellow `#f6c536`, blue `#2e67ae`, sky `#8fc9e3`, green `#4f9d63`,
  orange `#f28a2e`, pink `#ee8fa6`. Ink is never pure black and the page never pure white. A
  character keeps its own brand colour; everything else comes from the palette.
- **Line:** brush ink with a varying width; open strokes taper; closed shapes carry the heavy
  side away from the light (the light comes from the top left: `light: [0.55, 0.85]`).
  Widths in a 900-wide frame: characters 6–8, props 3.5–5, panel borders 7, details 2.5–3.5.
  Each piece has a fixed seed: **nothing boils**.
- **Colour:** flat fills. Shading only as Ben-Day dots (flat or graded) or a hard cel shape,
  never a soft gradient. Dots on a moving piece are drawn in its local transform so they
  travel with it.
- **One-skin silhouettes:** a form made of several pieces (a hand) inks every piece first and
  fills every piece on top, so only the union's silhouette keeps its line.
- **Panels:** ruled borders of even width, the page as gutter. They pop in on the beat with a
  small overshoot and read left→right, top→bottom. **A panel is a moment:** once its beat has
  passed it holds (settles) instead of replaying its action. Balloons may break a border.
- **Camera (motion comic):** start inside the first panel so it fills the frame (the hook),
  pull back to the page on a beat, a gentle push at the end. Camera moves are smooth; the
  drawings change on twos. The final page holds as a poster.
- **Lettering:** Bangers for sound effects and stamps (extruded, outlined, sitting on a
  burst); Comic Neue Bold upper case in balloons; a document's own text in Comic Neue.
- **Balloons:** the tail points at the speaker from the free side. A thought bubble's trail
  never runs over a face (its circles read as spots): use a speech balloon with «…».
- **Marks** (motion lines, impact ticks) trail behind a move or sit at the ends of a label:
  never across what is held and never across printed text.
- **Hands:** cartoon, thumb + three fat round fingers; lines only between pressed fingers and
  at a bend; no nails. Right side and right view as the **hands** skill says.
- **Forbidden:** soft gradients, pure black or white, lines that boil, anything crossing
  text, hands through what they hold.

## Style checklist

- [ ] Does every outline swell or taper, and is every frame's ink identical where the piece didn't move?
- [ ] Is all shading dots or cel, with no gradient?
- [ ] Does each panel read alone and in order, and hold once its beat has passed?
- [ ] Does any mark, tick, trail or balloon cross printed text or a face?
- [ ] Every hand: right side, right view, one skin, in front of or behind what it holds (never through)?
- [ ] Vertical: SFX, balloons and text inside the safe zone (top 150 / bottom 250 px at 1080×1920)?
- [ ] Static panel backgrounds cached as sprites at the camera's largest zoom (< 150 ms/frame warm)?

## Lessons

- 2026-09-26 · first style test · A vertical page of stacked panels is mostly empty until the last panel lands: start the camera inside the first panel (it fills the frame and is the hook) and pull back to the page on the beat.
- 2026-09-26 · first style test · Pupils that look up vanish under a heavy lid: lift the lid a little whenever the eyes go up.
- 2026-09-26 · first style test · An arm raised from the middle of a round body, elbow inside it, reads as a noodle: attach it at the side, drawn behind the body, with the elbow outside.
- 2026-09-26 · first style test · The other arm resting reads as a mug handle unless it is akimbo in two passes: upper arm behind the body, forearm and hand in front.
- 2026-09-26 · first style test · A thumb seen from its owner's eyes reads as a pointing finger until the mound of the hand shows under the held edge, with the lines of the curled fingers.
- 2026-09-26 · first style test · Nails on the backs of cartoon fingers read as spots at this size: leave them out.
- 2026-09-26 · first style test · Impact ticks above and below a label crossed the text next to it: put them at the label's ends.
- 2026-09-26 · first style test · Graded halftone is drawn dot by dot: caching the static panel backgrounds at the camera's largest zoom took a page from 223 to 144 ms/frame.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.