From slides-generator
Generate interactive presentation slides using React + Tailwind CSS. Trigger keywords: "slides", "presentation", "PPT", "ppt", "demo", "benchmark", "deck", "slideshow", "演讲稿", "演示文稿", "幻灯片"
How this skill is triggered — by the user, by Claude, or both
Slash command
/slides-generator:slides-generatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are the slides-generator skill. Generate a complete React + Vite + Tailwind CSS presentation project with the specified parameters.
ARCHITECTURE_ANIMATION_PATTERNS.mdENHANCEMENT_SUMMARY.mdSKILL.zh-CN.mdassets/commands/ppt.mdassets/commands/ppt.zh-CN.mdassets/commands/slides.mdassets/commands/slides.zh-CN.mdassets/templates/react-tailwind-advanced/ANIMATION_GUIDE.mdassets/templates/react-tailwind-advanced/QUICK_REFERENCE.mdassets/templates/react-tailwind-advanced/package.jsonassets/templates/react-tailwind-advanced/src/components/AnimatedArchitecture.jsxassets/templates/react-tailwind-advanced/src/components/AnimatedChart.jsxassets/templates/react-tailwind-advanced/src/components/AnimatedProcessFlow.jsxassets/templates/react-tailwind-advanced/src/components/AnimatedSlide.jsxassets/templates/react-tailwind-advanced/src/styles.cssassets/templates/react-tailwind-advanced/src/utils/architectureGenerator.jsassets/templates/react-tailwind/index.htmlassets/templates/react-tailwind/package.jsonassets/templates/react-tailwind/postcss.config.jsassets/templates/react-tailwind/scripts/validate-slides.jsYou are the slides-generator skill. Generate a complete React + Vite + Tailwind CSS presentation project with the specified parameters.
Extract the following parameters from the user request:
title: Presentation title (required)slides: Number of slides to generate (default: 5)theme: Theme selection - modern, minimalist, dark, colorful (default: modern)author: Author name (optional)When generating slides with architecture diagrams, data visualization, or complex concepts, MUST include these libraries in package.json:
{
"dependencies": {
"framer-motion": "^11.0.0",
"lucide-react": "^0.344.0",
"react-flow-renderer": "^10.3.17",
"recharts": "^2.12.0",
"@react-three/fiber": "^8.16.0",
"@react-three/drei": "^9.105.0",
"three": "^0.163.0"
}
}
When to use animations:
Architecture Diagrams (ALWAYS use animations)
framer-motion for layout animations + react-flow-renderer for node graphsData Visualization (ALWAYS use animations)
rechartsConcept Illustrations (HIGH priority)
framer-motion@react-three/fiberBullet Points (Medium priority)
MUST create these components for architecture slides:
AnimatedFlowDiagram.jsx
react-flow-renderer for node-based diagramsAnimatedArchitecture.jsx
DataFlowAnimation.jsx
For spatial or structural concepts, use 3D:
3DModelViewer.jsx - Using @react-three/fiber
3DArchitecture.jsx - For system topology
Use these patterns for professional, educational presentations:
Progressive Disclosure - Reveal information step-by-step
<motion.div
initial={{ opacity: 0, y: 20 }}
animate={{ opacity: 1, y: 0 }}
transition={{ delay: index * 0.1 }}
>
{content}
</motion.div>
Path Drawing - Draw lines/shapes progressively
<motion.path
d={pathData}
initial={{ pathLength: 0 }}
animate={{ pathLength: 1 }}
transition={{ duration: 2, ease: "easeInOut" }}
/>
Scale & Fade - Elegant element reveals
initial={{ scale: 0.8, opacity: 0 }}
animate={{ scale: 1, opacity: 1 }}
transition={{ type: "spring", stiffness: 200 }}
Staggered Grid - Cards appearing in wave pattern
const container = {
hidden: { opacity: 0 },
show: {
opacity: 1,
transition: { staggerChildren: 0.1 }
}
};
For different slide types:
Create a new directory named based on the title (slugified) and generate:
{
"name": "<slugified-title>-slides",
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@vitejs/plugin-react": "^4.3.4",
"autoprefixer": "^10.4.20",
"postcss": "^8.4.49",
"tailwindcss": "^3.4.17",
"vite": "^6.0.11"
}
}
Standard Vite config with React plugin
Config with theme colors based on selected theme
Standard PostCSS config with Tailwind and Autoprefixer
HTML entry point with root div and proper meta tags
TypeScript configuration if TypeScript is preferred
React entry point mounting App to root
Main app component with:
Global styles with:
Individual slide component with:
Main slideshow component with:
Theme configuration object with colors, fonts, and styles
Generate meaningful slide content based on the title:
Each slide should have:
id: Unique identifiertitle: Slide headingcontent: Main content paragraphbullets: Array of 3-5 bullet points (optional)For the react-tailwind template, follow these rules to prevent content cutoff:
mt-8 for author on title slide (not mt-12)Before generating any slide code, verify the following:
□ Bullets count ≤ 4 — If more than 4 bullets, split into multiple slides
□ Use space-y-3 or space-y-4 — NOT space-y-8
□ Wrap content area with slide-content class — <div className="slide-content flex-1 space-y-4">
□ Text is concise — Maximum 80 chars per bullet
□ Content layout uses flex — <div className="max-w-5xl w-full h-full flex flex-col">
Inform the user:
cd <project-name>npm installnpm run devCRITICAL: When dispatching subagents to generate slides, you must:
icon-reference.md from the references directoryTestRocket → ✅ Rocket or FlaskSubagent prompt must include:
## Icon Reference (IMPORTANT: Only use icons from this list)
[Copy icon list from icon-reference.md]
This prevents import errors like "does not provide an export named 'TestRocket'".
For generated projects using the react-tailwind template, a validation script is included to check for common content issues:
cd <project-name>
node scripts/validate-slides.js
The script checks:
Example output:
✓ Slide 01: bullets count OK (0)
⚠ Slide 02: bullets count exceeds limit (6 > 4)
Suggestion: Split into two slides
✅ Presentation project created successfully!
📁 Location: ./my-presentation-slides
Next steps:
cd my-presentation-slides
npm install
npm run dev
Keyboard shortcuts:
←/→ : Previous/Next slide
Space: Next slide
Home/End: First/Last slide
F: Toggle fullscreen
After generating slides, ALWAYS run the validation script before starting the dev server:
node ../scripts/validate-icons.js src/slides/
This prevents import errors like "does not provide an export named 'TestRocket'".
Begin generation when parameters are provided.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub zourunfa/af-caludecode-skills --plugin slides-generator