{"id":"9dac1e03-befe-46d6-9626-19da86b3e219","shortId":"CnrUtt","kind":"skill","title":"Web Artifacts Builder","tagline":"Skills skill by Anthropics","description":"# Web Artifacts Builder\n\nTo build powerful frontend claude.ai artifacts, follow these steps:\n1. Initialize the frontend repo using `scripts/init-artifact.sh`\n2. Develop your artifact by editing the generated code\n3. Bundle all code into a single HTML file using `scripts/bundle-artifact.sh`\n4. Display artifact to user\n5. (Optional) Test the artifact\n\n**Stack**: React 18 + TypeScript + Vite + Parcel (bundling) + Tailwind CSS + shadcn/ui\n\n## Design & Style Guidelines\n\nVERY IMPORTANT: To avoid what is often referred to as \"AI slop\", avoid using excessive centered layouts, purple gradients, uniform rounded corners, and Inter font.\n\n## Quick Start\n\n### Step 1: Initialize Project\n\nRun the initialization script to create a new React project:\n```bash\nbash scripts/init-artifact.sh <project-name>\ncd <project-name>\n```\n\nThis creates a fully configured project with:\n- ✅ React + TypeScript (via Vite)\n- ✅ Tailwind CSS 3.4.1 with shadcn/ui theming system\n- ✅ Path aliases (`@/`) configured\n- ✅ 40+ shadcn/ui components pre-installed\n- ✅ All Radix UI dependencies included\n- ✅ Parcel configured for bundling (via .parcelrc)\n- ✅ Node 18+ compatibility (auto-detects and pins Vite version)\n\n### Step 2: Develop Your Artifact\n\nTo build the artifact, edit the generated files. See **Common Development Tasks** below for guidance.\n\n### Step 3: Bundle to Single HTML File\n\nTo bundle the React app into a single HTML artifact:\n```bash\nbash scripts/bundle-artifact.sh\n```\n\nThis 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.\n\n**Requirements**: Your project must have an `index.html` in the root directory.\n\n**What the script does**:\n- Installs bundling dependencies (parcel, @parcel/config-default, parcel-resolver-tspaths, html-inline)\n- Creates `.parcelrc` config with path alias support\n- Builds with Parcel (no source maps)\n- Inlines all assets into single HTML using html-inline\n\n### Step 4: Share Artifact with User\n\nFinally, share the bundled HTML file in conversation with the user so they can view it as an artifact.\n\n### Step 5: Testing/Visualizing the Artifact (Optional)\n\nNote: This is a completely optional step. Only perform if necessary or requested.\n\nTo 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.\n\n## Reference\n\n- **shadcn/ui components**: https://ui.shadcn.com/docs/components","tags":["web","artifacts","builder","skills","anthropics"],"capabilities":["skill","source-anthropics","category-skills"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/anthropics/skills/web-artifacts-builder","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.500","qualityRationale":"deterministic score 0.50 from registry signals: · indexed on skills.sh · published under anthropics/skills","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T13:40:06.355Z","embedding":null,"createdAt":"2026-04-18T20:24:01.134Z","updatedAt":"2026-04-24T13:40:06.355Z","lastSeenAt":"2026-04-24T13:40:06.355Z","tsv":"'/docs/components':382 '1':20,98 '18':59,154 '2':27,164 '3':36,184 '3.4.1':128 '4':47,281 '40':136 '5':52,306 'add':352 'ai':80 'alia':262 'alias':134 'anthrop':7 'app':194 'aris':376 'artifact':2,9,16,30,49,56,167,171,199,210,229,283,304,309,327,348,361,370 'asset':272 'auto':157 'auto-detect':156 'avail':329 'avoid':73,82,345 'bash':111,112,200,201 'build':12,169,264 'builder':3,10 'built':336 'built-in':335 'bundl':37,63,150,185,191,246,289 'bundle.html':205 'category-skills' 'cd':114 'center':85 'claud':225 'claude.ai':15 'code':35,39 'common':177 'compat':155 'complet':315 'compon':138,379 'config':259 'configur':119,135,148 'contain':209 'convers':226,293 'corner':91 'creat':106,116,204,257 'css':65,127,214 'depend':145,216,247 'design':67 'detect':158 'develop':28,165,178 'direct':222 'directori':240 'display':48 'edit':32,172 'excess':84 'file':44,175,189,219,291 'final':286 'finish':360 'follow':17 'font':94 'frontend':14,23 'fulli':118 'general':344 'generat':34,174 'gradient':88 'guidanc':182 'guidelin':69 'html':43,188,198,255,275,278,290 'html-inlin':254,277 'import':71 'includ':146,331 'index.html':236 'initi':21,99,103 'inlin':217,256,270,279 'instal':141,245 'inter':93 'issu':375 'javascript':213 'latenc':353 'later':366 'layout':86 'like':339 'map':269 'must':233 'necessari':321 'new':108 'node':153 'note':311 'often':76 'option':53,310,316 'parcel':62,147,248,251,266 'parcel-resolver-tspath':250 'parcel/config-default':249 'parcelrc':152,258 'path':133,261 'perform':319 'pin':160 'playwright':340 'power':13 'pre':140 'pre-instal':139 'present':368 'project':100,110,120,232 'puppet':342 'purpl':87 'quick':95 'radix':143 'react':58,109,122,193 'refer':77,377 'repo':24 'request':323,356,372 'requir':230 'resolv':252 'root':239 'round':90 'run':101 'script':104,243 'scripts/bundle-artifact.sh':46,202 'scripts/init-artifact.sh':26,113 'see':176 'seen':364 'self':208 'self-contain':207 'shadcn/ui':66,130,137,378 'share':223,282,287 'singl':42,187,197,274 'skill':4,5,333 'slop':81 'sourc':268 'source-anthropics' 'stack':57 'start':96 'step':19,97,163,183,280,305,317 'style':68 'support':263 'system':132 'tailwind':64,126 'task':179 'test':54,346,365 'test/visualize':325 'testing/visualizing':307 'theme':131 'tool':330,338 'tspath':253 'typescript':60,123 'ui':144 'ui.shadcn.com':381 'ui.shadcn.com/docs/components':380 'uniform':89 'upfront':349 'use':25,45,83,276,328 'user':51,285,296 'version':162 'via':124,151 'view':300 'vite':61,125,161 'web':1,8","prices":[{"id":"2eb9834e-78bf-4bea-9f88-792e97f6ab4f","listingId":"9dac1e03-befe-46d6-9626-19da86b3e219","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"anthropics","category":"skills","install_from":"skills.sh"},"createdAt":"2026-04-18T20:24:01.134Z"}],"sources":[{"listingId":"9dac1e03-befe-46d6-9626-19da86b3e219","source":"github","sourceId":"anthropics/skills/web-artifacts-builder","sourceUrl":"https://github.com/anthropics/skills/tree/main/skills/web-artifacts-builder","isPrimary":false,"firstSeenAt":"2026-04-18T21:24:30.833Z","lastSeenAt":"2026-04-24T12:50:17.835Z"},{"listingId":"9dac1e03-befe-46d6-9626-19da86b3e219","source":"skills_sh","sourceId":"anthropics/skills/web-artifacts-builder","sourceUrl":"https://skills.sh/anthropics/skills/web-artifacts-builder","isPrimary":true,"firstSeenAt":"2026-04-18T20:24:01.134Z","lastSeenAt":"2026-04-24T13:40:06.355Z"}],"details":{"listingId":"9dac1e03-befe-46d6-9626-19da86b3e219","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"anthropics","slug":"web-artifacts-builder","source":"skills_sh","category":"skills","skills_sh_url":"https://skills.sh/anthropics/skills/web-artifacts-builder"},"updatedAt":"2026-04-24T13:40:06.355Z"}}