structured-artifact

v2026.09.24

Load when building a static HTML artifact — single page or multi-page site — to make structured information explorable through layout and navigation.

GitHub
Install command
npx skhub add haowjy/structured-artifact
Markdown
SKILL.md

Structured Artifact

A structured artifact is plain HTML that opens from file:// and works on a phone. Load /information-hierarchy first — it decides what each page shows and in what order; this skill builds it.

One page or several

Start from one index.html. Its first viewport carries the answer, and depth discloses in place — <details>, popovers, a collapsible detail panel. Grow into a folder (index.html + child pages + shared.css) when readers need whole pages per branch: the index becomes a map with links, and each child page stands alone with its own lede. resources/multi-page-site.md has the folder mechanics.

Build so it keeps working

Everything ships static — plain <script> tags, zero build step — so the artifact opens anywhere, years later, with nothing installed. CDN tags are the default; vendor the scripts into the folder when the artifact must work offline (resources/layout-and-theme.md). Resource snippets show the shape of each library's use, pinned only to a major version — before building, web-search the library's current version and syntax when anything looks dated, rather than trusting the snippet as frozen truth. Design for a narrow viewport and let wider layouts be enhancements; touch targets stay ≥ 44px and diagrams pan and pinch. Drive colors from CSS custom properties on :root, default light, with a ☀/🌙 toggle that adds .dark to <html> — readers get a readable page in daylight and a choice at night.

resources/layout-and-theme.md has the concrete layout, theme, and mobile patterns shared across everything below.

Verify the end state

Open the artifact in a browser before calling it done — a snippet that looked right in the editor still fails at runtime (a CDN URL 404s, a library changed its API, a diagram overflows). Check what a reader meets: the first viewport carries the answer, every page renders at ~375px width, the theme toggle flips both text and embedded content, links between pages resolve, and Mermaid diagrams render correctly.

Enrichments

Mix and match resources and patterns as needed, starting with the simplest pattern and adding complexity only when information hierarchy calls for it.

Load a resource when a beat calls for its pattern:

PatternWhen a beat needsResource
Multi-page siteIndex + child pages, nav, cross-linksresources/multi-page-site.md
MockupWireframe or annotated plan the reader must seeresources/mockups.md
DiagramDependencies, flow, system mapsresources/diagrams.md
Data tableRecords with sortable/filterable columnsresources/data-table.md
Data chartQuantities, trends, distributionsresources/data-chart.md
TimelineChronological events with detailresources/timeline.md
Tree / TOCHierarchy navigation, document outlineresources/tree-and-toc.md
Card gridItems with summary + expandable detailresources/card-grid.md
Diff / comparisonBefore/after, version diffresources/diff-view.md

For custom node rendering, drag, or live filtering on graphs beyond what Mermaid offers, see resources/experimental-react-flow.md.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Apache-2.0

Source path

cw/skills/structured-artifact

Default branch

main

Latest commit

0d5bf7f

Tree SHA

fde1816