Compose preview design board
Assemble rendered Compose @Preview PNGs into a single self-contained HTML design board for Claude Design and other design-tool imports. Use when turning a set of rendered previews into one coherent design brief — grouped, captioned, and ordered — rather than handing over loose screenshots. Pairs with the compose-preview skill.From its SKILL.md
npx -y skills add yschimke/skills --skill compose-preview-design-boardAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.5 KB, as published. Nobody here has run it
Compose Preview — Design Board
Assemble the PNGs produced by compose-preview into a single, self-contained
HTML design board — categories, groups, captions, and layout — so a set of
renders travels as one coherent brief instead of loose screenshots. The board
is built for import into Claude Design (and similar design tools).
This skill assumes the compose-preview skill is installed — it owns the
renderer, CLI, and Gradle plugin that produce the PNGs this skill arranges.
Check first with compose-preview --version; if it's missing, ask the user to
run the bootstrap installer (which covers the compose-preview skills):
curl -fsSL https://raw.githubusercontent.com/yschimke/skills/main/scripts/install.sh \
| bash
Source
This skill is maintained at
github.com/yschimke/skills under
skills/compose-preview-design-board/. To check for updates, compare the
installed copy against main (e.g. git ls-remote https://github.com/yschimke/skills HEAD). The renderer and CLI that produce
the input PNGs ship from
github.com/yschimke/compose-ai-tools.
When to use this skill
- You have a set of rendered
@PreviewPNGs and want to hand them to a designer or to Claude Design as a structured brief — grouped by feature/screen, with captions and intent notes — not a flat folder of images. - You want one portable artifact (a single HTML file, images inlined) that can be opened in a browser, served from a branch / GitHub Pages, or dropped into a design tool.
For rendering the previews, see the compose-preview skill. For reviewing a UI PR by diffing base vs head renders, see compose-preview-review. This skill is the export/presentation step that sits on top of those.
Workflow
-
Render previews. Use the compose-preview CLI to produce PNGs and the manifest of what was rendered:
compose-preview show --module <m> --json > /tmp/<m>-show.json -
Write a board spec. A JSON document describing how to arrange the renders (categories → groups → items, each item pointing at a PNG path). See Board spec schema below.
-
Generate the HTML. Build one self-contained file from the spec — every referenced PNG inlined as base64, missing PNGs shown as visible placeholders rather than failing the build, and deterministic output (no timestamps or random ids, so re-runs diff cleanly). Run your project's builder if it ships one; otherwise generate it from the contract below:
# spec may also be piped on stdin instead of --spec python3 scripts/build-design-board.py --spec board-spec.json --out design-board.html -
Import to Claude Design. Pick the route that fits:
- Web capture (best fidelity) — open
design-board.htmlin a browser, or serve it (GitHub Pages / a branch), and use Claude Design's web capture on the page. - File upload — drag the
.html(or the individual PNGs) into Claude Design's drop zone. - Connect the GitHub repo for design-system context alongside the board.
Grouping, captions, and flow order travel with the images, so the board reads as one brief rather than a pile of screenshots.
Targeting Figma instead? Don't hand-place these renders into Figma from here — use the figma-catalog-import skill. It owns the Figma side (the
@design-parity/figma-plugin, reconcile bycomponentId, mode-awareness) and takes either a whole-system catalog or this board's curated render set. Claude Design is a light HTML/PNG drop-in and stays here; Figma is the one heavy destination and lives there. - Web capture (best fidelity) — open
Board spec schema
JSON, top-down:
| Level | Fields |
|---|---|
| Top level | title, tagline, footer, optional palette (colour swatches), categories[] |
| Category | badge, title, intro, groups[] |
| Group | title, note (the design intent / rationale), layout, items[] |
| Item | src (PNG path from compose-preview), caption, optional sub (state / size / theme) |
layout controls how a group's items are arranged:
"row"— left-to-right wrapping; good for phone screens."grid"— auto-fill grid; good for theme swatches and tiles."wide"— full-width frames; good for size matrices.
The builder script
A reference builder ships beside this SKILL.md at
scripts/build-design-board.py — a small,
dependency-free Python 3 script (no pip install). It reads the spec, inlines
every image, and writes one self-contained HTML file. Swap in your project's own
builder if you have one, as long as it holds the same contract:
- reads the spec from
--spec <file>or stdin, and writes to--out <file>or stdout; - inlines every item
srcPNG as adata:image/png;base64,…URI, so the output is one file with no external dependencies; - renders a missing or unreadable PNG as a visible placeholder — never fails the build;
- emits deterministic HTML — no timestamps, random ids, or absolute paths — so re-runs diff cleanly;
- resolves item
srcpaths against--base(default: the current directory), so a spec stays portable — never hardcode an absolute checkout path like/home/user/<project>, or the board breaks in every other checkout.
Related
- compose-preview skill — render the
@PreviewPNGs this board is built from: CLI, Gradle plugin, capture modes. - compose-preview-review skill — review a UI PR by rendering base and head and diffing them.
- compose-design-catalog skill — the whole-system sibling of this skill: instead of a curated subset, catalog an entire component system into a durable, tool-neutral bundle.
- figma-catalog-import skill — take a board or catalog into Figma (plugin + reconcile). The Figma destination adapter for both arrangers.
What ships with it: 1 file
8.1 KB alongside SKILL.md, 1 of them executable
scripts/
- build-design-board.pyruns8.1 KB
Gives 0 of the 12 instructions most design frontend skills give
Counted across 1,179 of the 2,086 authors here whose files we hold, read 2026-09-06
- Commit to a bold aesthetic directionin 31 of 1179, across 24 files
- Prefer component composition over inheritancein 28 of 1179, across 14 files
- Animate only transform and opacity propertiesin 27 of 1179, across 22 files
- Memoize expensive computations with useMemoin 26 of 1179, across 13 files
- Use semantic HTML elementsin 24 of 1179, across 23 files
- Virtualize long lists for performancein 21 of 1179, across 10 files
- Use CSS variables for design tokensin 20 of 1179, across 14 files
- Implement loading, empty, and error statesin 20 of 1179
- Lazy load heavy components with Suspensein 19 of 1179, across 8 files
- Respect prefers-reduced-motion media queriesin 18 of 1179, across 10 files
- Prioritize CSS-only animations for HTMLin 18 of 1179, across 16 files
- Use compound components for related UI elementsin 18 of 1179, across 7 files
Said here and by no other author read
- render candidates using compose preview
- Write a JSON board specification document
- Generate HTML using the builder script
- Inline all PNG images as base64 URIs
- Ensure deterministic HTML output
- Resolve image paths relative to the base directory
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.