Skip to content
Back to skills

Static Web Artifacts Builder

ASecurity

Build self-contained static HTML artifacts opened in a browser: interactive diagrams, dashboards, infographics. Pure HTML5+CSS3+inline SVG, zero toolchain. Triggers on: "interactive HTML", "open in browser", "HTML artifact", "visual dashboard", "HTML infographic". NOT for PNG/SVG output, use concept-to-image.

  • 318 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 27, 2026
data-aigobashnodeapibackend

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add Mathews-Tom/armory --skill static-web-artifacts-builder --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Static Web Artifacts Builder?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Static Web Artifacts Builder
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mathews-tom-static-web-artifacts-builder/badge)](https://www.skillsdirectory.com/skills/mathews-tom-static-web-artifacts-builder)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: static-web-artifacts-builder
description: 'Build self-contained static HTML artifacts opened in a browser: interactive diagrams, dashboards, infographics. Pure HTML5+CSS3+inline SVG, zero toolchain. Triggers on: "interactive HTML", "open in browser", "HTML artifact", "visual dashboard", "HTML infographic". NOT for PNG/SVG output, use concept-to-image.'
metadata:
  version: 1.1.1
  category: visualization
  tags: [html, interactive, dashboard, svg]
  difficulty: intermediate
---

# Static Web Artifacts Builder

To build high-density static infographic artifacts, follow these steps:

1. Initialize the project scaffold using `scripts/init-artifact.sh`
2. Develop your artifact by editing the generated HTML file(s)
3. Validate and finalize using `scripts/bundle-artifact.sh`
4. Display artifact to user

**Stack**: Vanilla HTML5 + CSS3 (Grid/Flexbox) + inline SVG — zero runtime dependencies

## Design & Style Guidelines

VERY IMPORTANT: To avoid what is often referred to as "AI slop", avoid excessive centered layouts, purple gradients, uniform rounded corners, and Inter font.

### Infographic-Specific Constraints

- **Density**: Content-to-whitespace ratio ≥ 70:30. Maximize signal per pixel.
- **Geometry**: Layered/nested containers, shaped regions (clip-path, border-radius variations), gradient fills, subtle box-shadows — not flat uniform boxes.
- **Iconography**: Inline SVG icons for every major concept. No naked text labels.
- **Color**: Purposeful palette (3-4 hues + neutrals), encoding meaning (category, flow direction, severity). Define as CSS custom properties.
- **Flows**: Directional connectors with SVG arrowheads, curved paths, labeled edges. Architecture diagrams = layered tiers with bidirectional data flows, not flat node graphs.
- **Layout math**: CSS Grid with explicit `grid-template-columns`/`grid-template-rows` fractional allocations. No auto-spacing defaults. Every margin/padding intentional.

## Quick Start

### Step 1: Initialize Project

Run the initialization script to create a new static project:

```bash
bash scripts/init-artifact.sh <project-name>
cd <project-name>
```

This creates a minimal scaffold with:

- ✅ Template HTML with CSS custom properties (theming)
- ✅ CSS Grid + Flexbox layout utilities (inline `<style>`)
- ✅ Print-ready viewport meta configuration
- ✅ No node_modules, no package.json, no build toolchain

### Step 2: Develop Your Artifact

Edit the generated `index.html` directly. Each HTML file = one page = one clear message.

Key patterns:

- Use CSS Grid `grid-template-areas` for named region layouts
- Use `fr` units for proportional spatial allocation
- Embed SVG icons inline (not as external references)
- Use CSS custom properties (`--color-primary`, `--color-accent`, etc.) for palette cohesion
- Use `clip-path`, `border-radius`, gradients, and `box-shadow` for visual depth

### Step 3: Validate and Finalize

```bash
bash scripts/bundle-artifact.sh
```

This validates the artifact is fully self-contained:

- Checks for zero external resource references (no CDN links, no external stylesheets/scripts)
- Verifies inline SVG presence
- Reports file size
- Copies validated output to `bundle.html`

### Step 4: Share Artifact with User

Share the validated HTML file in conversation with the user so they can view it as an artifact.

---

## When to Use This Skill vs Other Visual Skills

| Task                                                            | Use This Skill                      | Use Instead                                         |
| --------------------------------------------------------------- | ----------------------------------- | --------------------------------------------------- |
| Rich infographic with multiple sections, high data density      | Yes                                 | —                                                   |
| Self-contained dashboard with interactive tabs or toggles       | Yes                                 | —                                                   |
| Architecture diagram with bidirectional flows and layered tiers | Yes                                 | `architecture-diagram` for auto-generated from code |
| Simple concept illustration or icon-style image                 | No                                  | `concept-to-image`                                  |
| Slide deck or multi-page presentation                           | No                                  | `html-presentation`                                 |
| Architecture diagram generated from existing codebase           | No                                  | `architecture-diagram`                              |
| Single-page visual where CSS Grid layout control is critical    | Yes                                 | —                                                   |
| Artifact must be screenshot-ready via Playwright                | Yes (with caveat — see Limitations) | —                                                   |

---

## Error Handling

| Error                                           | Cause                                                    | Resolution                                                                                        |
| ----------------------------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| CDN link detected by `bundle-artifact.sh`       | External stylesheet or script reference in HTML          | Inline all CSS and JS — no external URLs allowed in output                                        |
| Content overflow / clipping in browser          | Viewport too small or fixed heights with overflow:hidden | Use `min-height` instead of `height`; test at 1440px wide; use `overflow: auto` on scroll regions |
| Playwright screenshot cuts off content          | Page height exceeds screenshot viewport                  | Set `page.setViewportSize` to match content dimensions; use `fullPage: true`                      |
| `bundle-artifact.sh` reports missing inline SVG | SVG loaded via `<img src>` or external ref               | Replace with inline `<svg>` block directly in HTML                                                |
| File size too large to share as artifact        | Embedded base64 images or verbose SVG                    | Optimize SVG paths; avoid embedding raster images                                                 |

---

## Limitations

- **Browser required for screenshots**: Rendering and Playwright-based screenshot capture require a browser runtime. The HTML file itself has no server-side dependency, but visual validation needs a browser.
- **No server-side rendering**: Output is purely client-side. Dynamic data, API calls, or server-computed content are not supported.
- **No persistent state**: The artifact has no backend. User interactions (form inputs, toggles) reset on page reload and cannot be saved.
- **File size guidance**: Aim for under 500KB. Artifacts above 1MB may not render as inline conversation artifacts in some Claude interfaces.
- **Font availability**: System fonts only (or inline base64-encoded web fonts). Do not reference Google Fonts or other external font CDNs.
- **Print fidelity**: CSS print media queries are supported but browser print rendering varies. Test `@media print` explicitly if print output is a requirement.

Files in this skill

  • LICENSE.txt11.1 KB
  • SKILL.md7.3 KB
  • evals/cases.yaml2.1 KB
  • scripts/bundle-artifact.sh3.1 KB
  • scripts/init-artifact.sh9.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.