From Prototyping
Creates clickable React prototypes in a single HTML file using Babel-standalone. Supports screen transitions, navigation, and state management without build tools.
How this skill is triggered — by the user, by Claude, or both
Slash command
/prototyping:interactive-prototypeWhen to use
Юзер просит «прототип», «кликабельный», «как настоящее приложение», «можно покликать», «потыкать UX», «flow между экранами». Лучше slides когда нужны переходы и состояния.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
React 18 + Babel standalone через CDN unpkg. JSX-секции через `<script type="text/babel" src=...>`. Никакой сборки.
React 18 + Babel standalone через CDN unpkg. JSX-секции через <script type="text/babel" src=...>. Никакой сборки.
<!doctype html>
<html lang="ru"><head><meta charset="utf-8"><title><Project></title>
<link rel="stylesheet" href="styles/tokens.css">
<style>html,body{margin:0;background:#f0eee9;font-family:var(--font-body)}</style>
</head><body>
<div id="root"></div>
<!-- React + Babel через CDN -->
<script src="https://unpkg.com/[email protected]/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/[email protected]/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/@babel/[email protected]/babel.min.js" crossorigin></script>
<!-- Атомы и секции -->
<script type="text/babel" src="components/icons.jsx"></script>
<script type="text/babel" src="components/shared.jsx"></script>
<script type="text/babel" src="screens/welcome.jsx"></script>
<script type="text/babel" src="screens/main.jsx"></script>
<!-- Главный entry -->
<script type="text/babel" data-presets="env,react">
const { useState } = React;
const { Welcome, Main } = window;
function App() {
const [screen, setScreen] = useState('welcome');
const screens = {
welcome: <Welcome onNext={() => setScreen('main')} />,
main: <Main onBack={() => setScreen('welcome')} />,
};
return screens[screen] || screens.welcome;
}
ReactDOM.createRoot(document.getElementById('root')).render(<App />);
</script>
</body></html>
<project>/
├── <Project>.html
├── styles/tokens.css
├── components/
│ ├── icons.jsx # SVG-icons в JSX
│ ├── shared.jsx # Button, Input, Card, Badge
│ └── chrome.jsx # Topbar, Sidebar если есть
├── screens/
│ ├── welcome.jsx # каждый экран — отдельный файл
│ ├── main.jsx
│ └── settings.jsx
└── uploads/ # картинки от юзера
window в конце:
function Welcome({ onNext }) { return <div>...</div>; }
window.Welcome = Welcome;
import / export — Babel standalone их не выполняет в этой конфигурацииuseState берёшь как const { useState } = React в каждом файле где нужен"prop" или 'prop', не curlyПростой паттерн для prototype:
function App() {
const [screen, setScreen] = useState('welcome');
const [data, setData] = useState({ name: '', email: '' });
// Передаешь setData в формы как onChange
return screens[screen];
}
Если состояние сложное — заменяй на useReducer в App, передавай dispatch вниз.
| Тип | Экраны (минимум) |
|---|---|
| Onboarding | welcome → personal-info → permissions → done |
| Authentication | login → 2fa → forgot-password → reset |
| E-commerce | catalog → product → cart → checkout → confirmation |
| Dashboard | empty-state → loaded → drill-down → settings |
| Form-flow | step-1 → step-2 → step-3 → review → submitted |
device-frames — обернуть прототип в iPhone / Android / Browser framemobile-overlays — клавиатура, sheet, тосты, action sheet поверх экранаtweaks-panel — sidebar с крутилками (цвет primary, размер шрифта, состояние demo)microinteractions — hover, skeleton, scroll-reveal внутри экрановclaude-in-html — встроить LLM в прототип (чат-бот / AI-консультант)states-checklist — empty / loading / error / disabled на каждом экранеforms-a11y — если в прототипе есть формыApp.jsx 800 строк → невозможно править секцииimport / export в Babel standalone → не работает, путаетslides с скриншотами прощеfeature-dev agentGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Reference for writing and editing skills with predictable behavior, covering invocation models, description writing, and information hierarchy.
npx claudepluginhub jhamidun/claude-code-config-pack --plugin prototyping