A zero-dependency, single-file, hand-drawn-style HTML comic template. Explain any topic as a story with SVG panels and crisp CJK speech bubbles. 中文版见 README.md。
Text-to-image models garble CJK text, drift in style across panels, and the baked-in words can never be edited. This project inverts the stack:
| Layer | Tech | Handles |
|---|---|---|
| Art | Inline SVG (circles / rects / lines / paths) | Characters, props, scenes |
| Text | HTML + CSS bubbles / captions | Dialogue, narration, SFX |
| Manga feel | ~30 lines of CSS | Thick borders + solid offset shadows + paper grain |
Result: perfectly sharp CJK text, every sentence editable in one line of code, infinitely scalable, the whole comic is one ~30 KB .html file.
Download examples/*.html and open in any browser — fully offline.
video-pipeline/SKILL.md (silent-voice gotcha, concat-filter A/V sync fix, transparent-PNG subtitles when libass is missing, local BGM fallback)skill/template.html — the full page skeleton (cover, panels, 3 bubble tail directions, narration bar, SFX, fact box) is ready..ptitle, .bub, .narr.skill/reference.md, one <svg class="scene" viewBox="0 0 860 4xx"> per panel.① Wide shot Build the world (anthropomorphize the domain: network = town, RAM = warehouse...)
② – ⑤ Concept One panel per core idea; the plot IS the metaphor
⑥ Special Adapt a real incident you lived through (this is where the charm comes from)
⑦ Wrap-up A mnemonic + the .factbox knowledge checklist
#2b2622, paper #f7f1e3, accent red #e8542f, blue #2f6fe8, manga yellow #ffd94aborder: 3.5px solid + box-shadow: 6px 6px 0 (flat offset) + radial-gradient paper grain.bub (SVG <text> never wraps)skill/ is also a standard Agent Skill (SKILL.md + template + recipe book). Drop the folder into your agent’s skills directory (QwenWork, Claude Code, etc.) and just say “explain Docker as a comic” — consistent style, recurring characters, sequels supported. Downstream, video-pipeline/ turns any finished comic HTML into a subtitled, dubbed motion-comic MP4 plus a Bilibili/YouTube release pack — say “turn the comic into a video”.
Run the Python tag-balance checker in reference.md before shipping; require errors: none and unclosed: none.