playground
anthropics/claude-plugins-official
Build self-contained interactive HTML playgrounds with live preview and copyable prompt output.
What is playground?
Creates single-file HTML explorers that let users adjust visual or structural parameters through controls, see live results, and export a natural-language prompt. Use when a user wants an interactive tool to explore a design, data query, concept, or code review workflow.
- Generates self-contained HTML files with no external dependencies
- Provides live preview that updates instantly as controls change
- Outputs natural-language prompts that capture non-default choices
- Includes copy-to-clipboard button with feedback
- Offers sensible defaults and 3–5 named presets for quick starts
- Supports six template types: design, data explorer, concept map, document critique, diff review, and code map
How to install playground
npx skills add https://github.com/anthropics/claude-plugins-official --skill playgroundHow to use playground
- 1.Identify which playground template matches the user's request (design, data, concept, document, diff, or code)
- 2.Load the corresponding template from templates/ directory
- 3.Customize the template: define state object, controls, preview logic, and prompt generation
- 4.Write the HTML file with inline CSS and JavaScript—no external dependencies
- 5.Open the file in a browser to verify live preview and prompt output work
- 6.Share the single HTML file with users
Use cases
- Build a design playground where users adjust spacing, color, typography, and see component updates in real time
- Create a SQL or API query builder with live result preview and exportable prompt
- Design a concept map explorer for learning topics with visual knowledge gap mapping
- Set up a code review interface for git diffs with line-by-line commenting and approval workflow
- Build a document critique tool with suggest/approve/reject/comment actions
- Designers exploring visual design decisions
- Data engineers building queries or pipelines
- Educators creating interactive learning tools
- Code reviewers needing structured feedback workflows
- Technical writers documenting complex systems
playground FAQ
No. Every playground is a single HTML file with inline CSS and JavaScript. No CDN dependencies, no build step.
Use the prompt output pattern: check for non-default values, use qualitative language (e.g., 'pronounced shadow' instead of 'blur: 24px'), and write it as an actionable instruction.
Use the closest template and adapt it. The core pattern—state object, live preview, prompt output, copy button—works for any interactive explorer.
Define 3–5 named preset objects that set all controls to cohesive combinations. Add buttons that snap state to each preset and trigger updateAll().
No. Keep everything inline and self-contained. If external resources fail, the playground breaks. Use system fonts and minimal CSS instead.
Full instructions (SKILL.md)
Source of truth, from anthropics/claude-plugins-official.
name: playground description: Creates interactive HTML playgrounds — self-contained single-file explorers that let users configure something visually through controls, see a live preview, and copy out a prompt. Use when the user asks to make a playground, explorer, or interactive tool for a topic.
Playground Builder
A playground is a self-contained HTML file with interactive controls on one side, a live preview on the other, and a prompt output at the bottom with a copy button. The user adjusts controls, explores visually, then copies the generated prompt back into Claude.
When to use this skill
When the user asks for an interactive playground, explorer, or visual tool for a topic — especially when the input space is large, visual, or structural and hard to express as plain text.
How to use this skill
- Identify the playground type from the user's request
- Load the matching template from
templates/:templates/design-playground.md— Visual design decisions (components, layouts, spacing, color, typography)templates/data-explorer.md— Data and query building (SQL, APIs, pipelines, regex)templates/concept-map.md— Learning and exploration (concept maps, knowledge gaps, scope mapping)templates/document-critique.md— Document review (suggestions with approve/reject/comment workflow)templates/diff-review.md— Code review (git diffs, commits, PRs with line-by-line commenting)templates/code-map.md— Codebase architecture (component relationships, data flow, layer diagrams)
- Follow the template to build the playground. If the topic doesn't fit any template cleanly, use the one closest and adapt.
- Open in browser. After writing the HTML file, run
open <filename>.htmlto launch it in the user's default browser.
Core requirements (every playground)
- Single HTML file. Inline all CSS and JS. No external dependencies.
- Live preview. Updates instantly on every control change. No "Apply" button.
- Prompt output. Natural language, not a value dump. Only mentions non-default choices. Includes enough context to act on without seeing the playground. Updates live.
- Copy button. Clipboard copy with brief "Copied!" feedback.
- Sensible defaults + presets. Looks good on first load. Include 3-5 named presets that snap all controls to a cohesive combination.
- Dark theme. System font for UI, monospace for code/values. Minimal chrome.
State management pattern
Keep a single state object. Every control writes to it, every render reads from it.
const state = { /* all configurable values */ };
function updateAll() {
renderPreview(); // update the visual
updatePrompt(); // rebuild the prompt text
}
// Every control calls updateAll() on change
Prompt output pattern
function updatePrompt() {
const parts = [];
// Only mention non-default values
if (state.borderRadius !== DEFAULTS.borderRadius) {
parts.push(`border-radius of ${state.borderRadius}px`);
}
// Use qualitative language alongside numbers
if (state.shadowBlur > 16) parts.push('a pronounced shadow');
else if (state.shadowBlur > 0) parts.push('a subtle shadow');
prompt.textContent = `Update the card to use ${parts.join(', ')}.`;
}
Common mistakes to avoid
- Prompt output is just a value dump → write it as a natural instruction
- Too many controls at once → group by concern, hide advanced in a collapsible section
- Preview doesn't update instantly → every control change must trigger immediate re-render
- No defaults or presets → starts empty or broken on load
- External dependencies → if CDN is down, playground is dead
- Prompt lacks context → include enough that it's actionable without the playground
Related skills
More from anthropics/claude-plugins-official and the wider catalog.

plugin-settings
Store and read per-project plugin configuration using .claude/plugin-name.local.md files with YAML frontmatter.

plugin-structure
Standardized directory structure and manifest configuration for Claude Code plugins.

project-artifact
Generate and publish a tabbed project status page for multi-workstream initiatives, kept current and shareable with teammates.

receipts
Generate a personal Claude Code usage & impact report from local session transcripts.

session-report
Generate an explorable HTML report of Claude Code session usage, tokens, cache, and costs.

skill-development
Create and structure effective skills for Claude Code plugins with guidance on workflows, resources, and best practices.