Wireframe Sketch Template
Hand-drawn lo-fi wireframes that look explicitly draft — to invite layout feedback, signal "not shippable", or document IA without committing to visual design.
⚠️ Pick the Skeleton FIRST
The biggest failure mode of this skill: model inherits the brush strokes (wobble, dashed, handwriting) but writes the wrong document structure — e.g. producing 3 isolated app screens when a multi-screen flow doc was needed, or stuffing a sitemap with editorial figures.
Before you write a single line, declare in your reply which skeleton you're using and why. Match user's words to one of:
| User says |
Skeleton |
Why |
| 报纸 / 杂志 / landing / 官网 / brochure / 单页 / 一篇 / 简报 / 海报式文档 / one-pager / editorial |
A. Single-Page Editorial |
One long page, sections stack, content-dense |
| App / 小程序 / 移动端 / 手机 / 桌面应用 / SaaS 流程 / 用户路径 / 注册流 / 下单流 / 多屏 / 多页 / 注册 / 登录 / 引导 / 设置 / Tab / 表单流 |
B. App Multi-Screen Flow |
Multiple screens, navigation, states, triggers |
| 信息架构 / IA / sitemap / 站点地图 / 流程图 / 关系图 / 节点图 / 数据流 / 状态机 / 权限矩阵 |
C. IA / Sitemap Diagram |
Nodes + edges, no actual screens |
| 不明 / 用户没说 / 都行 |
ask the user before picking — don't default |
— |
If the user gave a topic but no skeleton hint, ask which one. Picking wrong = doing the work twice.
Skeleton A — Single-Page Editorial
foolscap-wireframe.html is the reference for this skeleton. Use when the artifact is a single scrollable page (newspaper, magazine spread, landing page wireframe, brochure, single-page PRD illustration).
Required sections (in order, can drop 1–2 but keep the rhythm):
- Masthead / banner — title, issue/version, date
- Hero feature — one big lead block with headline + intro + hand-drawn illustration placeholder
- 3–5 content sections — each with its own h2, mix of text figures and sketch illustrations
- Sidebar / brief / list block — short items, dense type, breaks the rhythm
- CTA / signup / footer
Density: aim for the foolscap reference's content-per-square-inch — sparse single-page wireframes feel like a stub, not a draft.
Skeleton B — App Multi-Screen Flow ⛔ HARD MINIMUMS
foolscap-wireframe.html is not the reference for this skeleton — only borrow its SVG filters, font stack, and dashed-cell aesthetic. The document structure must be assembled from the checklist below.
Required sections (MUST all be present — page is incomplete otherwise)
- Cover — app name + version + role/persona + 1-line scope ("MVP / 内测 / v0.3 / 仅记账,不含理财")
- Sitemap / nav diagram — visual tree or grid showing all screens and their relationship. Not a list — an actual diagram with boxes + lines.
- 6–8+ core screens as
figure blocks. For a 记账 app that's at minimum: 启动/欢迎 → 首页(概览) → 记一笔(金额→分类→备注→保存) → 账单详情 → 月度统计 → 分类管理 → 预算设置 → 我的/设置. 3 screens is not a wireframe doc, it's a sketch sample.
- At least 1 flow arrow diagram showing user path across screens (e.g. "首页 → 点'+' → 记一笔 → 保存 → toast → 回首页"). Don't just put a single
↓ between screens — write the trigger on the arrow.
- At least 1 state variant for each screen that has state: empty / loading / error / success. Pick the screens where it matters (list page → empty state; form → error state).
- End matter — open questions / TBD list / version log / next-step decisions to make
Per-screen requirements
Every screen block must have:
- Figure number —
图 02 / Fig. 03, sequential, referenced from flow diagrams
- One-line responsibility — "记一笔 · 从主页点'+'进入,保存后弹 toast 并返回主页"
- Trigger annotations — what entry points lead here, what exits go where
- Marginalia — at least 1 hand-written side note per non-trivial screen (constraint, edge case, "TBD",未决问题)
Layout
- Vertical stack of screens with explicit arrow + trigger label between each (not a passive
↓)
- Or horizontal flow strip with screens in left-to-right order — works well for linear flows like onboarding/checkout
- Don't put screens in a grid with no flow indication — that's a screen gallery, not a flow doc
Content density red lines
- < 5 screens → reject yourself, ask user for more flows or downgrade scope honestly
- No sitemap → reject yourself, the doc is unreadable without it
- No state variants → at least mark the empty/error spots even if you don't draw them ("空状态:见图 04a / TBD")
- No marginalia anywhere → you copied the brush but not the language; go back and annotate
Skeleton C — IA / Sitemap Diagram
Pure structural document — no real screens, just node-edge diagrams of information architecture, navigation, data flow, or state machines.
Required sections:
- Title + legend — what the boxes mean, what the line types mean (solid = direct nav, dashed = conditional, double = data binding)
- Main diagram — the tree/graph itself, central, large
- Per-node mini-spec — for non-obvious nodes, 1–3 lines of what lives there
- Permission / role matrix if applicable
- Open questions at the bottom
Wobble + handwriting still apply. Box-and-line layout, lots of whitespace, single accent color for the "current path" / "default" highlight.
Marginalia Language (skeletons B & C must use; A optional)
Marginalia is what separates a real lo-fi wireframe from a "high-fi draft pretending to be lo-fi". Use these moves:
| Mark |
When |
How |
| Side note |
Constraint or rationale |
<aside class="margin"> in handwritten font, accent color, pulled into the margin |
| Circle + arrow |
Calling out a specific element |
SVG <circle> + <path> with filter:url(#wobble), accent stroke |
| TBD / ? |
Unresolved decision |
Handwritten "TBD" in accent color, sometimes inside a wobbly circle |
| Strikethrough |
Old idea kept for context |
text-decoration:line-through + slight rotation transform:rotate(-1deg) |
| Underline + ! |
Important / must-discuss |
Wavy underline SVG below the term |
| Numbered call-out |
Reference into a legend table below |
Circled digit in accent color, with <ol> legend at section end |
Marginalia ink color = the one accent (template uses bright blue). Body ink stays monochrome.
Hand-drawn Marks
Lo-fi wireframes lean heavily on drawn-in-place marks, not real icons or photos. Build a small library at top of file:
- X-out box — image placeholder:
<rect> + two crossing <line>, all under filter:url(#wobble)
- Wavy-line text — copy placeholder: 3–5
<path> of horizontal squiggles at decreasing widths
- Stick icons — nav icons as 8–16 px SVG paths (house, plus, chart, gear), 1.4 px stroke + wobble
- Loading spinner — wobbly circle with a gap, no animation needed for static deliverable
- Avatar circle — circle + initials in handwritten font
- Chart bones — wobbly bars / dots / lines, no axis labels beyond figure number
Don't import an icon font, lucide, heroicons, etc. Real icons fight the wobble and instantly break the lo-fi register.
Required Reading
Read this SKILL.md first, end to end. Don't open foolscap-wireframe.html until you've picked a skeleton.
Then:
- Skeleton A → read foolscap fully, both for structure and brush vocabulary
- Skeleton B → open foolscap ONLY to copy: the
<filter> SVG turbulence values, the dotted background pattern, the dashed/wavy divider paths, the handwritten font stack. Do not copy the masthead/hero/long-reads structure — wrong skeleton.
- Skeleton C → same as B, brush-only extraction
Never copy foolscap's placeholder editorial copy, figure captions, or class names wholesale.
Design Strategy
Lock the scope of fidelity at the top:
- pure structure (boxes + labels only, no real type beyond field names) → maximum wobble, sparsest content
- structure + sample content (placeholder headlines, real labels, fake numbers like ¥3,280) → moderate wobble, more density
- structure + annotations (arrows, marginalia, "TBD", trigger labels) → wobble + marginalia + accent-color callouts
Pick one and hold the line across the whole doc — mixing fidelities reads as inconsistent. Skeleton B almost always wants tier 3.
Layout Bias
Prefer:
- pure white paper background — no yellow legal-pad pretense
- monochrome ink (black + 2–3 grays), at most one accent (bright blue or red) for marginalia and "current/default" highlight
- one handwritten CJK font (Ma Shan Zheng / Long Cang) + one handwritten Latin font (Caveat / Kalam)
- mono stack (uppercase, tight letterspacing) for "labels" / "figure numbers" / "callouts"
- dashed or wavy dividers between sections — never solid clean rules
- consistent wobble intensity — don't dial it up and down per element; one global filter + maybe one "stronger" for tiny shapes
- numbered figures ("图 01", "Fig. 02") for everything referenced from elsewhere in the doc
- generous side margins to make room for marginalia
Avoid:
- real production icons or polished SVG illustrations (they fight the sketch frame)
- color photos (use sketch placeholders — X-out boxes or wavy-line text)
- emoji
- mixing wireframe with high-fidelity components on the same page
- forcing the wobble filter on every element until the page becomes noisy — wobble is a seasoning, not a wash
- 单一
↓ 当作 flow 注释 — write the trigger on the arrow
- 在 App 场景里只画 3 个孤立屏并交付 — that's a screen sample, not a wireframe doc
Anti-patterns (self-check before delivering)
Platform / Size
Renders as a web page, typically captured as a long screenshot for embedding in PRDs / Notion / Confluence / 飞书 docs. Not designed for runtime interaction — it's a static deliverable that looks hand-drawn.
For Skeleton B, page width 720–960 px works well (matches reading width in doc tools). For Skeleton A, 960–1100 px (editorial format). For Skeleton C, often wider (1200+) to fit sitemaps.
1---2name: wireframe-sketch3description: Hand-drawn paper-wireframe template — white paper background, monochromatic ink palette, SVG turbulence "wobble" filters for pen-quiver authenticity, handwritten fonts (Caveat / Kalam / Ma Shan Zheng / Long Cang), wavy dividers, sketch-rect overlays, marginalia annotations. For PRD illustrations, IA flow docs, low-fidelity layout exploration, "draft / not final" stakeholder communication. Three skeletons (single-page editorial / app multi-screen flow / IA sitemap) — pick one up front based on the artifact, do NOT inherit only the brush strokes.4---56# Wireframe Sketch Template78Hand-drawn lo-fi wireframes that look explicitly draft — to invite layout feedback, signal "not shippable", or document IA without committing to visual design.910## ⚠️ Pick the Skeleton FIRST1112The biggest failure mode of this skill: model inherits the brush strokes (wobble, dashed, handwriting) but writes the **wrong document structure** — e.g. producing 3 isolated app screens when a multi-screen flow doc was needed, or stuffing a sitemap with editorial figures.1314**Before you write a single line, declare in your reply which skeleton you're using and why.** Match user's words to one of:1516| User says | Skeleton | Why |17|---|---|---|18| 报纸 / 杂志 / landing / 官网 / brochure / 单页 / 一篇 / 简报 / 海报式文档 / one-pager / editorial | **A. Single-Page Editorial** | One long page, sections stack, content-dense |19| App / 小程序 / 移动端 / 手机 / 桌面应用 / SaaS 流程 / 用户路径 / 注册流 / 下单流 / 多屏 / 多页 / 注册 / 登录 / 引导 / 设置 / Tab / 表单流 | **B. App Multi-Screen Flow** | Multiple screens, navigation, states, triggers |20| 信息架构 / IA / sitemap / 站点地图 / 流程图 / 关系图 / 节点图 / 数据流 / 状态机 / 权限矩阵 | **C. IA / Sitemap Diagram** | Nodes + edges, no actual screens |21| 不明 / 用户没说 / 都行 | **ask the user** before picking — don't default | — |2223If the user gave a topic but no skeleton hint, **ask which one**. Picking wrong = doing the work twice.2425---2627## Skeleton A — Single-Page Editorial2829`foolscap-wireframe.html` is the reference for this skeleton. Use when the artifact is a single scrollable page (newspaper, magazine spread, landing page wireframe, brochure, single-page PRD illustration).3031Required sections (in order, can drop 1–2 but keep the rhythm):32331. **Masthead / banner** — title, issue/version, date342. **Hero feature** — one big lead block with headline + intro + hand-drawn illustration placeholder353. **3–5 content sections** — each with its own h2, mix of text figures and sketch illustrations364. **Sidebar / brief / list block** — short items, dense type, breaks the rhythm375. **CTA / signup / footer**3839Density: aim for the foolscap reference's content-per-square-inch — sparse single-page wireframes feel like a stub, not a draft.4041---4243## Skeleton B — App Multi-Screen Flow ⛔ HARD MINIMUMS4445`foolscap-wireframe.html` is **not the reference for this skeleton** — only borrow its SVG filters, font stack, and dashed-cell aesthetic. The document **structure** must be assembled from the checklist below.4647### Required sections (MUST all be present — page is incomplete otherwise)48491. **Cover** — app name + version + role/persona + 1-line scope ("MVP / 内测 / v0.3 / 仅记账,不含理财")502. **Sitemap / nav diagram** — visual tree or grid showing all screens and their relationship. Not a list — an actual diagram with boxes + lines.513. **6–8+ core screens** as `figure` blocks. For a 记账 app that's at minimum: 启动/欢迎 → 首页(概览) → 记一笔(金额→分类→备注→保存) → 账单详情 → 月度统计 → 分类管理 → 预算设置 → 我的/设置. **3 screens is not a wireframe doc, it's a sketch sample.**524. **At least 1 flow arrow diagram** showing user path across screens (e.g. "首页 → 点'+' → 记一笔 → 保存 → toast → 回首页"). Don't just put a single `↓` between screens — write the trigger on the arrow.535. **At least 1 state variant** for each screen that has state: empty / loading / error / success. Pick the screens where it matters (list page → empty state; form → error state).546. **End matter** — open questions / TBD list / version log / next-step decisions to make5556### Per-screen requirements5758Every screen block must have:59- **Figure number** — `图 02` / `Fig. 03`, sequential, referenced from flow diagrams60- **One-line responsibility** — "记一笔 · 从主页点'+'进入,保存后弹 toast 并返回主页"61- **Trigger annotations** — what entry points lead here, what exits go where62- **Marginalia** — at least 1 hand-written side note per non-trivial screen (constraint, edge case, "TBD",未决问题)6364### Layout6566- **Vertical stack** of screens with explicit arrow + trigger label between each (not a passive `↓`)67- Or **horizontal flow strip** with screens in left-to-right order — works well for linear flows like onboarding/checkout68- **Don't** put screens in a grid with no flow indication — that's a screen gallery, not a flow doc6970### Content density red lines7172- < 5 screens → reject yourself, ask user for more flows or downgrade scope honestly73- No sitemap → reject yourself, the doc is unreadable without it74- No state variants → at least mark the empty/error spots even if you don't draw them ("空状态:见图 04a / TBD")75- No marginalia anywhere → you copied the brush but not the language; go back and annotate7677---7879## Skeleton C — IA / Sitemap Diagram8081Pure structural document — no real screens, just node-edge diagrams of information architecture, navigation, data flow, or state machines.8283Required sections:84851. **Title + legend** — what the boxes mean, what the line types mean (solid = direct nav, dashed = conditional, double = data binding)862. **Main diagram** — the tree/graph itself, central, large873. **Per-node mini-spec** — for non-obvious nodes, 1–3 lines of what lives there884. **Permission / role matrix** if applicable895. **Open questions** at the bottom9091Wobble + handwriting still apply. Box-and-line layout, lots of whitespace, single accent color for the "current path" / "default" highlight.9293---9495## Marginalia Language (skeletons B & C must use; A optional)9697Marginalia is what separates a real lo-fi wireframe from a "high-fi draft pretending to be lo-fi". Use these moves:9899| Mark | When | How |100|---|---|---|101| Side note | Constraint or rationale | `<aside class="margin">` in handwritten font, accent color, pulled into the margin |102| Circle + arrow | Calling out a specific element | SVG `<circle>` + `<path>` with `filter:url(#wobble)`, accent stroke |103| TBD / ? | Unresolved decision | Handwritten "TBD" in accent color, sometimes inside a wobbly circle |104| Strikethrough | Old idea kept for context | `text-decoration:line-through` + slight rotation `transform:rotate(-1deg)` |105| Underline + ! | Important / must-discuss | Wavy underline SVG below the term |106| Numbered call-out | Reference into a legend table below | Circled digit in accent color, with `<ol>` legend at section end |107108**Marginalia ink color** = the one accent (template uses bright blue). Body ink stays monochrome.109110---111112## Hand-drawn Marks113114Lo-fi wireframes lean heavily on **drawn-in-place** marks, not real icons or photos. Build a small library at top of file:115116- **X-out box** — image placeholder: `<rect>` + two crossing `<line>`, all under `filter:url(#wobble)`117- **Wavy-line text** — copy placeholder: 3–5 `<path>` of horizontal squiggles at decreasing widths118- **Stick icons** — nav icons as 8–16 px SVG paths (house, plus, chart, gear), 1.4 px stroke + wobble119- **Loading spinner** — wobbly circle with a gap, no animation needed for static deliverable120- **Avatar circle** — circle + initials in handwritten font121- **Chart bones** — wobbly bars / dots / lines, no axis labels beyond figure number122123**Don't** import an icon font, lucide, heroicons, etc. Real icons fight the wobble and instantly break the lo-fi register.124125---126127## Required Reading128129Read this `SKILL.md` first, end to end. **Don't** open `foolscap-wireframe.html` until you've picked a skeleton.130131Then:132- **Skeleton A** → read foolscap fully, both for structure and brush vocabulary133- **Skeleton B** → open foolscap ONLY to copy: the `<filter>` SVG turbulence values, the dotted background pattern, the dashed/wavy divider paths, the handwritten font stack. **Do not copy** the masthead/hero/long-reads structure — wrong skeleton.134- **Skeleton C** → same as B, brush-only extraction135136Never copy foolscap's placeholder editorial copy, figure captions, or class names wholesale.137138---139140## Design Strategy141142Lock the **scope of fidelity** at the top:143144- **pure structure** (boxes + labels only, no real type beyond field names) → maximum wobble, sparsest content145- **structure + sample content** (placeholder headlines, real labels, fake numbers like ¥3,280) → moderate wobble, more density146- **structure + annotations** (arrows, marginalia, "TBD", trigger labels) → wobble + marginalia + accent-color callouts147148Pick one and hold the line across the whole doc — mixing fidelities reads as inconsistent. Skeleton B almost always wants tier 3.149150---151152## Layout Bias153154Prefer:155156- pure white paper background — no yellow legal-pad pretense157- monochrome ink (black + 2–3 grays), at most one accent (bright blue or red) for marginalia and "current/default" highlight158- one handwritten CJK font (Ma Shan Zheng / Long Cang) + one handwritten Latin font (Caveat / Kalam)159- mono stack (uppercase, tight letterspacing) for "labels" / "figure numbers" / "callouts"160- dashed or wavy dividers between sections — never solid clean rules161- consistent wobble intensity — don't dial it up and down per element; one global filter + maybe one "stronger" for tiny shapes162- numbered figures ("图 01", "Fig. 02") for everything referenced from elsewhere in the doc163- generous side margins to make room for marginalia164165Avoid:166167- real production icons or polished SVG illustrations (they fight the sketch frame)168- color photos (use sketch placeholders — X-out boxes or wavy-line text)169- emoji170- mixing wireframe with high-fidelity components on the same page171- forcing the wobble filter on every element until the page becomes noisy — wobble is a seasoning, not a wash172- 单一 `↓` 当作 flow 注释 — write the trigger on the arrow173- 在 App 场景里只画 3 个孤立屏并交付 — that's a screen sample, not a wireframe doc174175---176177## Anti-patterns (self-check before delivering)178179- [ ] App 场景但没 sitemap → reject, add one180- [ ] App 场景但 < 5 屏 → reject, expand or downgrade scope honestly181- [ ] 屏与屏只用 `↓` 连接没 trigger label → annotate every arrow182- [ ] 通篇没有任何 marginalia / TBD / 圈划 → 你只继承了笔触没继承语言,补183- [ ] 用了 lucide/heroicons/emoji/真实 icon font → 拆掉换 SVG path 简笔184- [ ] wobble 强度乱跳 → 统一到 1–2 个 filter id185- [ ] 没有 figure 编号但流程图里要引用 → 加编号186- [ ] 文案太"成品"(完整营销 copy / 准确产品文案) → 退回到 placeholder ("功能 A 的一句话说明")187- [ ] 用了亮黄色 legal-pad 底 → 改回纯白纸188- [ ] 配色超过 1 个 accent → 砍189190---191192## Platform / Size193194Renders as a web page, typically captured as a long screenshot for embedding in PRDs / Notion / Confluence / 飞书 docs. Not designed for runtime interaction — it's a static deliverable that looks hand-drawn.195196For Skeleton B, page width 720–960 px works well (matches reading width in doc tools). For Skeleton A, 960–1100 px (editorial format). For Skeleton C, often wider (1200+) to fit sitemaps.