@stagefright5/pi-artifact-design
Design self-contained HTML artifacts with a local Vite dev server, theme/CSP harness, and single-file build
Package details
Install @stagefright5/pi-artifact-design from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@stagefright5/pi-artifact-design- Package
@stagefright5/pi-artifact-design- Version
0.2.1- Published
- Sep 25, 2026
- Downloads
- 347/mo · 16/wk
- Author
- stagefright5
- License
- Unlicense
- Types
- skill
- Size
- 57.9 KB
- Dependencies
- 0 dependencies · 1 peer
Pi manifest JSON
{
"skills": [
"./SKILL.md"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@stagefright5/pi-artifact-design
A pi skill for designing self-contained HTML artifacts. Its local Vite dev server simulates runtime constraints so you can test them before publishing.
Why
A published artifact is one self-contained HTML file. CSP blocks external stylesheets, images and media. This skill lets you work in separate source files with HMR, then bundles them into one validated file.
src/main.js + src/style.css + index.html
↓ dev real HMR, theme/CSP/ground harness
↓ build vite-plugin-singlefile inlines everything
dist/artifact.html ← publish this
Installation
Install the standalone package:
pi install npm:@stagefright5/pi-artifact-design
For source development and tests, see the source README and workspace development guide.
Use
node scripts/scaffold.mjs ~/work/my-page --title "My Page"
cd ~/work/my-page && npm install
npm run dev # http://localhost:5173
npm run build # -> dist/artifact.html, validated
What the dev harness gives you
| Theme tri-state | system / light / dark. system sets no attribute. Most viewers use this state, which a [data-theme]-only stylesheet renders incorrectly |
| Host-ground simulation | Paints the opposite theme's background behind the document to expose a transparent body |
| CSP headers | The production allowlist, relaxed only for the HMR socket and unbundled modules |
| Capability stub | Stubs every window.artifactAgent method and logs every call. window.claude is an alias |
The harness plugin uses apply: "serve", so builds exclude it.
What the validator rejects
The validator rejects off-allowlist external references, non-inlined relative assets,
custom properties defined only inside a theme block, and pages over 16MB. It warns
when a body background or <title> is missing. build.mjs exits non-zero on any error.
node scripts/validate.mjs some-artifact.html
Contents
| Path | |
|---|---|
SKILL.md |
The skill itself |
references/FUNDAMENTALS.md |
Design fundamentals, verbatim from Claude Code's bundled artifact-design |
references/DEV-SERVER.md |
Dev server, harness and validator detail |
references/GLOSSARY-SIDEBAR.md |
Pinned collapsible filterable glossary pattern |
scripts/ |
scaffold, preview, build, validate |
template/ |
The scaffolded project |
Attribution
references/FUNDAMENTALS.md is reproduced verbatim from the artifact-design skill
bundled with Claude Code 2.1.250. Anthropic owns that text. Everything else is original
to this package, including the Vite toolchain, harness, validator and glossary pattern.
The glossary pattern is proposed upstream as anthropics/claude-code#90263.
Licence
Unlicense.