Produce low-fidelity black-and-white UI wireframes as SVGs or viewer pages. Use when asked to wireframe, sketch a screen, draft a layout, make a low-fi mockup, or publish wireframes.
74
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Produce low-fidelity, black-and-white UI wireframes as standalone SVG files. The goal is to communicate structure — what goes where, in what order, at roughly what size — without committing to colour, brand, or polish.
Trigger on phrases like:
Skip and defer to frontend-design (or similar) when the request mentions: brand, polish, real components, "production-ready", colour palettes, hi-fi, Figma export, or actual code/HTML/React deliverables.
Wireframes are diagnostic, not decorative. Lock these tokens on every output:
| Token | Value | Notes |
|---|---|---|
| Stroke | #000 width 1.5 | All borders, dividers, outlines |
| Fill (boxes) | #fff | Default for cards/containers |
| Placeholder fill | #e6e6e6 | Image/avatar/empty-state regions |
| Text colour | #000 for labels, #666 for placeholder text | No other colours |
| Accent | #d33 (dashed) — annotation layer ONLY | Never inside real UI elements |
| Font | font-family="-apple-system, system-ui, sans-serif" | Single typeface across the whole file |
| Type scale | 12 caption · 14 body · 20 heading · 28 title | No other sizes |
| Grid | 8px snap, 24px gutter | All x/y/w/h must be multiples of 8 |
| Default canvas | 1280×800 desktop, 375×812 mobile, 768×1024 tablet | Pick one and state it in the comment |
If you need to highlight a specific region for a callout, use the annotation layer (red dashed). Never colourise the wireframe itself.
references/components.md and assemble the screen from the primitive snippets. Snap every coordinate to 8px.wireframes/<slug>.svg in the working directory. Filename slug describes the screen (login.svg, dashboard.svg, settings-account.svg).flow.svg that arranges thumbnails left-to-right with arrows between them.<svg xmlns="http://www.w3.org/2000/svg" width="1280" height="800" viewBox="0 0 1280 800"
font-family="-apple-system, system-ui, sans-serif" fill="#fff" stroke="#000" stroke-width="1.5">
<!-- canvas border -->
<rect x="0" y="0" width="1280" height="800" />
<!-- example: a button -->
<g transform="translate(48, 48)">
<rect width="120" height="40" rx="4" />
<text x="60" y="25" font-size="14" text-anchor="middle" stroke="none" fill="#000">Continue</text>
</g>
</svg>Two house-style gotchas worth memorising:
stroke="none" on <text> elements (text inherits the parent stroke and gets a halo otherwise).fill="#000") since the parent group fill is #fff for boxes.The full set of reusable primitives lives in references/components.md. Load it whenever you need a primitive whose exact markup you do not have in working memory. Do not re-derive primitives from scratch — copy the snippet and adjust coordinates.
Primitives provided:
For exact pixel values, palette tokens, and type sizes, see references/grid-system.md.
references/examples.md contains four complete wireframes you can copy and adapt:
When the user's request is close to one of these, start from the example and modify, rather than building from blank.
Every wireframe response should include:
Trigger on phrases like "make a page that shows the screens", "single page I can scroll", "build a viewer", "let me click through the wireframes", "show them all on one page", or any request to bundle multiple wireframes into a browsable artifact (not a production site).
Build one static index.html that loads the SVG wireframes directly. Do not turn this into a React app or component library — it's a review surface, not product UI.
File layout (default):
design/<task-slug>/
index.html
wireframes/ # the SVGs from this skill
screenshots/ # any reference screenshotsPage anatomy (start from assets/site-template.html and adjust — do not re-derive the CSS):
12 screens, Lo-fi · monochrome, Click any wireframe to zoom).<img> points to the SVG file directly — do not inline it.[data-zoom]. Esc and backdrop click both close.wireframes/flow.svg full-width.House style for the viewer (matches the wireframes themselves):
--bg: #fafaf8, --panel: #fff, --ink: #111, --muted: #666, --line: #e5e5e0, --accent: #d33 (red dashed callouts only).-apple-system, system-ui, "Segoe UI", sans-serif. No web fonts.border-radius: 8px on cards, 1px --line borders, no shadows except the hover lift on .wire.Responsive (verify before reporting done):
<details> disclosure at the top of the page, defaults closed; tapping a link auto-closes it. Sections get scroll-margin-top: 80px so anchor jumps clear the sticky bar.touch-action: pinch-zoom so users can pinch in further.Verification before handing off: open the file in a browser and walk it at 1440×900, 768×1024, and 390×844. Confirm anchor jumps land cleanly, lightbox opens/closes, and SVGs render at the right aspect.
Defer to the here-now skill — it owns publishing, anonymous vs. permanent sites, claim tokens, and credentials. Do not roll your own hosting.
Load the here-now skill and follow its publish.sh recipe. The shape is:
cd design/<task-slug>
{path-to-here-now}/scripts/publish.sh .
# → https://{adjective-noun-suffix}.here.now/If here-now isn't installed for the current agent, install it (npx skills add heredotnow/skill --skill here-now -g) or escalate to whoever owns the agent's skill set. Do not roll your own hosting.
Things to remember when invoking it:
index.html at its root, not the parent. index.html must be at the root of the published tree.here-now skill's sign-in-code flow — don't fake your way around it.--slug {existing-slug} so the URL stays stable across review rounds (the script auto-loads the claim token from .herenow/state.json).publish_result.* lines from script stderr to determine auth_mode and the claim URL — do not read .herenow/state.json and present its contents as the source of truth.siteUrl from the current run; if anonymous, also share the claim URL and the 24h expiry warning.frontend-design or write React/HTML directly.example-skills:canvas-design or algorithmic-art.assets/template.svg — blank desktop canvas with hidden 8px-grid guides; copy as a starting point.assets/template-mobile.svg — same for 375×812 mobile.assets/site-template.html — minimal review-viewer page (sticky TOC + responsive collapse + lightbox). Copy to design/<task-slug>/index.html and fill in the sections when the user requests a website.14f20be
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.