home / skills / anthropics / claude-plugins-official / playground

This skill creates interactive single-file HTML playgrounds with live preview and prompt output to explore topics visually.

npx playbooks add skill anthropics/claude-plugins-official --skill playground

Review the files below or copy the command above to add this skill to your agents.

Files (7)
SKILL.md
3.7 KB
---
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

1. **Identify the playground type** from the user's request
2. **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)
3. **Follow the template** to build the playground. If the topic doesn't fit any template cleanly, use the one closest and adapt.
4. **Open in browser.** After writing the HTML file, run `open <filename>.html` to 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.

```javascript
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

```javascript
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

Overview

This skill creates self-contained interactive HTML playgrounds that pair configurable controls with a live preview and a copyable prompt output. It produces a single-file explorer that runs in any browser with no external dependencies and sensible defaults for immediate use. Use it to let users visually explore options and then copy a natural-language prompt reflecting their non-default choices.

How this skill works

The builder selects a template that matches the requested playground type (design, data, concept map, document critique, diff review, or code map) and produces a single HTML file with inline CSS and JS. It wires controls to a single state object so every change triggers an immediate preview re-render and prompt regeneration. The prompt summarizes only non-default choices in natural language and includes a copy button with brief feedback.

When to use it

  • User requests an interactive playground, explorer, or visual configurator
  • The input space is large, visual, or structural (design systems, data queries, code architecture)
  • You want a single-file shareable demo with zero external deps
  • You need users to tweak options and then export a clear natural-language prompt
  • Rapid prototyping or teaching where instant visual feedback helps understanding

Best practices

  • Keep the playground as one HTML file with inline CSS/JS and no CDN dependencies
  • Use a single state object; every control writes to it and every render reads from it
  • Provide sensible defaults and 3–5 named presets that reset all controls to coherent configurations
  • Prompt output should be a natural-language instruction mentioning only non-default values
  • Update preview instantly on every control change; avoid an explicit "Apply" button
  • Group controls and hide advanced options in a collapsible section to avoid overwhelming users

Example use cases

  • Design playground: tweak component spacing, color, and typography and copy a prompt describing the chosen design decisions
  • Data explorer: build and preview a query UI, see results mockup, and copy the query prompt
  • Concept map: interactively expand topics and export a prompt summarizing gaps and suggested next topics
  • Document critique: adjust review scope and severity, preview annotated feedback, and copy the instruction for automated review
  • Diff review: load a commit/patch, annotate line comments, and export reviewer instructions

FAQ

Can the playground rely on external libraries or CDNs?

No. Playgrounds must be self-contained single HTML files with inline CSS and JS to avoid runtime failures.

How does the prompt decide what to mention?

The prompt builder compares current state to defaults and only mentions values that differ, phrasing them as natural-language instructions rather than raw dumps.