---
name: web-artifacts-builder
description: Suite of tools for creating elaborate, multi-component  HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.
license: Complete terms in LICENSE.txt
---

# Web Artifacts Builder

> **大龙虾沙箱专用说明**：本 skill 在大龙虾代码沙箱里运行时不能跑原版 `init-artifact.sh`
> （它会触发 `pnpm create vite` + `pnpm install` 的网络下载，而沙箱 `--network none`）。
> 镜像内已预构建了完整项目模板，用以下两条包装器代替：
>
> - `web-artifacts-init <name>`   —— 替代 `scripts/init-artifact.sh`
> - `web-artifacts-bundle`        —— 替代 `scripts/bundle-artifact.sh`
>
> 原版脚本只在镜像外（开发机 / CI）直接跑才有意义。

To build powerful frontend  artifacts, follow these steps:
1. Initialize the frontend repo using `web-artifacts-init <project-name>`
2. Develop your artifact by editing the generated code
3. Bundle all code into a single HTML file using `web-artifacts-bundle`
4. Copy `bundle.html` to `/outputs/` so the sandbox can persist it as an Artifact
5. (Optional) Test the artifact

**Stack**: React 18 + TypeScript + Vite + Parcel (bundling) + Tailwind CSS + shadcn/ui

## Design & Style Guidelines

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

## Quick Start

### Step 1: Initialize Project (in 大龙虾 sandbox)

```bash
cd /work
web-artifacts-init <project-name>
cd <project-name>
```

外部（开发机）运行时改用 `bash scripts/init-artifact.sh <project-name>`。

This creates a fully configured project with:
- ✅ React + TypeScript (via Vite)
- ✅ Tailwind CSS 3.4.1 with shadcn/ui theming system
- ✅ Path aliases (`@/`) configured
- ✅ 40+ shadcn/ui components pre-installed
- ✅ All Radix UI dependencies included
- ✅ Parcel configured for bundling (via .parcelrc)
- ✅ Node 18+ compatibility (auto-detects and pins Vite version)

### Step 2: Develop Your Artifact

To build the artifact, edit the generated files. See **Common Development Tasks** below for guidance.

### Step 3: Bundle to Single HTML File

In 大龙虾 sandbox:
```bash
web-artifacts-bundle
cp bundle.html /outputs/<name>.html
```

外部（开发机）运行时改用 `bash scripts/bundle-artifact.sh`。

This creates `bundle.html` - a self-contained artifact with all JavaScript, CSS, and dependencies inlined. This file can be directly shared in Claude conversations as an artifact.

**Requirements**: Your project must have an `index.html` in the root directory.

**What the script does**:
- Installs bundling dependencies (parcel, @parcel/config-default, parcel-resolver-tspaths, html-inline)
- Creates `.parcelrc` config with path alias support
- Builds with Parcel (no source maps)
- Inlines all assets into single HTML using html-inline

### Step 4: Share Artifact with User

Finally, share the bundled HTML file in conversation with the user so they can view it as an artifact.

### Step 5: Testing/Visualizing the Artifact (Optional)

Note: This is a completely optional step. Only perform if necessary or requested.

To test/visualize the artifact, use available tools (including other Skills or built-in tools like Playwright or Puppeteer). In general, avoid testing the artifact upfront as it adds latency between the request and when the finished artifact can be seen. Test later, after presenting the artifact, if requested or if issues arise.

## Reference

- **shadcn/ui components**: https://ui.shadcn.com/docs/components