jpskill.com
💬 コミュニケーション コミュニティ

slides-generator

ReactとTailwindを使ってインタラクティブなプレゼンテーション資料を作成し、単独のHTMLファイルとして出力できるため、資料作成や共有の効率化に貢献するSkill。

📜 元の英語説明(参考)

Generate interactive presentation slides using React + Tailwind, and export to standalone single-file HTML. Triggers on keywords like "slides", "presentation", "PPT", "demo", "benchmark", or when user requests export. Uses agent-browser skill for browser verification before export (install with `npx skills add vercel-labs/agent-browser` if not available).

🇯🇵 日本人クリエイター向け解説

一言でいうと

ReactとTailwindを使ってインタラクティブなプレゼンテーション資料を作成し、単独のHTMLファイルとして出力できるため、資料作成や共有の効率化に貢献するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o slides-generator.zip https://jpskill.com/download/23724.zip && unzip -o slides-generator.zip && rm slides-generator.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/23724.zip -OutFile "$d\slides-generator.zip"; Expand-Archive "$d\slides-generator.zip" -DestinationPath $d -Force; ri "$d\slides-generator.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して slides-generator.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → slides-generator フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
26

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[Skill 名] slides-generator

スライドジェネレーター

React + Tailwind でプロフェッショナルでインタラクティブなプレゼンテーションスライドを生成します。

プロジェクト構造

各スライドプロジェクトは専用のフォルダーで構成されています。

<project-folder>/
├── context.md          ← ユーザーから収集した知識とコンテキスト
├── researches/         ← リサーチドキュメント(トピックがリサーチを必要とする場合)
│   └── YYYY-MM-DD-topic.md
├── slides.md           ← プレビュー/議論用のマークダウンスライド
├── source/             ← React ソースコード(テンプレートから)
│   ├── package.json
│   ├── vite.config.js
│   ├── vite.standalone.config.js
│   ├── tailwind.config.js
│   ├── index.html
│   └── src/
│       ├── App.jsx
│       ├── index.css
│       └── slides/
│           ├── 01-hero.jsx
│           ├── 02-content.jsx
│           └── ...
├── verify/             ← 検証スクリーンショット(ブラウザテストから)
└── slide.html          ← 最終的なスタンドアロン HTML(自動生成)

ワークフローの概要

ステップ 1: プロジェクトフォルダーの初期化
    ↓
ステップ 2: 要件の収集(プログレッシブディスクロージャー)
    フェーズ 1: トピック → フェーズ 2: オーディエンス → フェーズ 3: スタイル → フェーズ 4: コンテンツ
    ↓
ステップ 2.5: リサーチチェックポイント
    「[トピック]についてリサーチしますか?」→ ユーザーが確認
    ↓
ステップ 3: context.md + slides.md の作成
    ↓
ステップ 4: ユーザーとアウトラインを確認
    ↓
ステップ 5: ソースコードの作成 → source/
    ↓
ステップ 6: スライドの生成(並行サブエージェント)
    ↓
ステップ 7: 開発モード + ブラウザ検証(必須)
    ↓
ステップ 8: ビルドとエクスポート → slide.html

ステップ 1: プロジェクトフォルダーの初期化

プロジェクトフォルダーが指定されていない場合、ユーザーに尋ねます。

このプレゼンテーションをどこに保存しますか?
デフォルト: ./presentation-name

フォルダー構造を作成します。

mkdir -p <project-folder>/source <project-folder>/researches <project-folder>/verify

ステップ 2: 要件の収集(プログレッシブディスクロージャー)

プログレッシブディスクロージャーを使用します。一度に 3〜5 の質問をし、回答に基づいてさらに情報を明らかにします。

詳細な質問の流れについては、context-guide.md を参照してください。

質問の流れ

フェーズ 1 - クイックスタート (常に):

「プレゼンテーションの内容は何ですか?」
「含めるコンテンツやメモはありますか?」(任意)

フェーズ 2 - オーディエンスと目的 (常に):

「誰がこれを見ますか?」
  - 経営陣 / 意思決定者
  - 技術チーム / 開発者
  - 一般の聴衆 / 混合
  - 顧客 / 外部

「目標は何ですか?」
  - 情報提供 / 説得 / デモ / 報告

フェーズ 3 - スタイル発見 (常に):

ステップ 1: ユーザーからキーワードを取得

「雰囲気を数語で説明してください」
  例: 「テック、モダン、ダーク」または「プロフェッショナル、クリーン、企業」

ステップ 2: 包括的なデザイン推奨のために ui-ux-pro-max スキルを使用

python3 ~/.claude/skills/ui-ux-pro-max/scripts/search.py "<topic> <keywords> presentation" --design-system -p "<Presentation Name>"

これにより、以下が提供されます。

  • 理由付きのスタイル推奨
  • カラーパレットの提案
  • タイポグラフィの組み合わせ
  • アニメーションのガイドライン

ステップ 3: palettes.md と組み合わせて 5 つのオプションを提示 ユーザーへのプロンプト例:

あなたの説明とデザイン分析に基づき、5つのスタイルオプションを提案します。

1. **ダークサファイアブルー** (ガラス) - ui-ux-pro-max 推奨
   ブルーのアクセントとグラデーションの光沢を持つダークテック
   タイポグラフィ: Sora + Source Sans 3
   最適: テック製品、開発者ツール

2. **エレクトリックシティナイツ** (ガラス)
   鮮やかなブルーのハイライトを持つ都会的なダーク
   タイポグラフィ: DM Sans + Work Sans
   最適: モダン SaaS、テック系スタートアップ

3. **サイバーパンク** (ガラス)
   ネオンカラー、未来的なサイエンスフィクション感
   タイポグラフィ: Outfit + Nunito Sans
   最適: ゲーム、AI/ML、未来的なトピック

4. **ミニマルモダンライト** (フラット)
   ブルーのアクセントを持つクリーンなライトテーマ
   タイポグラフィ: DM Sans + Work Sans
   最適: 企業、プロフェッショナルなプレゼンテーション

5. **ハッカーニュース** (ガラス)
   オレンジのアクセントを持つダーク、ギークな美学
   タイポグラフィ: Sora + Source Sans 3
   最適: 開発者向けコンテンツ、技術デモ

どのスタイルにしますか? (1-5)

選択は context.md のスタイルセクションに記録されます。

フェーズ 4 - コンテンツの深さ (条件付き):

「カバーすべき主要なポイントを 3〜5 つ挙げてください」
「含める特定のデータはありますか?」
  - はい、データがあります → [詳細を取得]
  - リサーチが必要です → [ステップ 2.5 をトリガー]
  - データは不要です → [スキップ]

抽象的な用語の掘り下げ

ユーザーが曖昧な用語を使用する場合、明確にします。

ユーザーが言うこと 尋ねること
「プロフェッショナル」 「クリーン/ミニマル、それともリッチ/詳細?」
「モダン」 「例を挙げてもらえますか?」
「魅力的」 「アニメーション、それとも説得力のあるコンテンツ?」

context.md に保存

質問後、以下をキャプチャした context.md を作成します。

  • フェーズ 1-2 からのトピック、目的、オーディエンス
  • フェーズ 3 からの選択されたスタイル(パレット ID、名前、スタイルタイプ)
  • フェーズ 4 からの主要なポイントとデータの必要性
## スタイル (ユーザー選択)
- **パレット ID**: dark-sapphire-blue
- **パレット名**: Dark Sapphire Blue
- **モード**: dark
- **スタイル**: glass
- **タイポグラフィ**:
  - ディスプレイ: Sora
  - ボディ: Source Sans 3
- **ユーザーキーワード**: "tech, modern, dark"
- **デザインソース**: ui-ux-pro-max + palettes.md

ステップ 2.5: リサーチチェックポイント

リサーチする前に必ず尋ねます - ジャストインタイムリサーチパターンを適用します。

リサーチを提案するタイミング

以下の場合にリサーチを提案します。

  • トピックが比較(A 対 B)を含む場合
  • ユーザーがデータ/統計/ベンチマークに言及する場合
  • トピックが時事問題または最新技術である場合
  • ユーザーが持っていない事実が必要な場合

以下の場合にリサーチをスキップします。

  • ユーザーが独自のデータを提供する場合
  • トピックが個人的/内部的な場合
  • ユーザーが明示的に拒否する場合

リサーチプロンプト

「このトピックはリサーチの恩恵を受けるでしょう。以下を行いますか?

[ ] 現在のデータ/統計をリサーチする
[ ] 競合比較を見つける
[ ] 業界のトレンドを収集する
[ ] リサーチをスキップする - コンテンツは私が提供します」

リサーチワークフロー

1. ユーザーがリサーチの必要性を確認
    ↓
2. ターゲットを絞ったウェブ検索を実施
    ↓
3. researches/ フォルダーに文書化
    ↓
4. ユーザーに要約を提示:
   「[主要な調査結果]が見つかりました。これは正確に見えますか?」
    ↓
5. ユーザーが確認 → context.md を更新
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Slides Generator

Generate professional, interactive presentation slides with React + Tailwind.

Project Structure

Each slide project is organized in a dedicated folder:

<project-folder>/
├── context.md          ← Collected knowledge and context from user
├── researches/         ← Research documents (when topic requires research)
│   └── YYYY-MM-DD-topic.md
├── slides.md           ← Markdown slides for preview/discussion
├── source/             ← React source code (from template)
│   ├── package.json
│   ├── vite.config.js
│   ├── vite.standalone.config.js
│   ├── tailwind.config.js
│   ├── index.html
│   └── src/
│       ├── App.jsx
│       ├── index.css
│       └── slides/
│           ├── 01-hero.jsx
│           ├── 02-content.jsx
│           └── ...
├── verify/             ← Verification screenshots (from browser testing)
└── slide.html          ← Final standalone HTML (auto-generated)

Workflow Overview

Step 1: Initialize Project Folder
    ↓
Step 2: Collect Requirements (Progressive Disclosure)
    Phase 1: Topic → Phase 2: Audience → Phase 3: Style → Phase 4: Content
    ↓
Step 2.5: Research Checkpoint
    "Would you like me to research [topic]?" → User confirms
    ↓
Step 3: Create context.md + slides.md
    ↓
Step 4: Confirm Outline with User
    ↓
Step 5: Create Source Code → source/
    ↓
Step 6: Generate Slides (parallel subagents)
    ↓
Step 7: Dev Mode + Browser Verification (REQUIRED)
    ↓
Step 8: Build & Export → slide.html

Step 1: Initialize Project Folder

Ask user for project folder if not provided:

Where would you like to save this presentation?
Default: ./presentation-name

Create folder structure:

mkdir -p <project-folder>/source <project-folder>/researches <project-folder>/verify

Step 2: Collect Requirements (Progressive Disclosure)

Use progressive disclosure: ask 3-5 questions at a time, reveal more based on answers.

See context-guide.md for detailed question flow.

Question Flow

Phase 1 - Quick Start (Always):

"What's the presentation about?"
"Any content or notes to include?" (optional)

Phase 2 - Audience & Purpose (Always):

"Who will view this?"
  - Executives / Decision makers
  - Technical team / Developers
  - General audience / Mixed
  - Customers / External

"What's the goal?"
  - Inform / Persuade / Demo / Report

Phase 3 - Style Discovery (Always):

Step 1: Get keywords from user

"Describe the vibe in a few words"
  Examples: "tech, modern, dark" or "professional, clean, corporate"

Step 2: Use ui-ux-pro-max skill for comprehensive design recommendations

python3 ~/.claude/skills/ui-ux-pro-max/scripts/search.py "<topic> <keywords> presentation" --design-system -p "<Presentation Name>"

This provides:

  • Style recommendations with reasoning
  • Color palette suggestions
  • Typography pairings
  • Animation guidelines

Step 3: Combine with palettes.md to present 5 options Example prompt to user:

Based on your description and design analysis, here are 5 style options:

1. **Dark Sapphire Blue** (glass) - Recommended by ui-ux-pro-max
   Dark tech with blue accents, gradient glows
   Typography: Sora + Source Sans 3
   Best for: Tech products, developer tools

2. **Electric City Nights** (glass)
   Urban dark with vibrant blue highlights
   Typography: DM Sans + Work Sans
   Best for: Modern SaaS, tech startups

3. **Cyberpunk** (glass)
   Neon colors, futuristic sci-fi feel
   Typography: Outfit + Nunito Sans
   Best for: Gaming, AI/ML, futuristic topics

4. **Minimal Modern Light** (flat)
   Clean light theme with blue accents
   Typography: DM Sans + Work Sans
   Best for: Corporate, professional presentations

5. **Hacker News** (glass)
   Dark with orange accents, geek aesthetic
   Typography: Sora + Source Sans 3
   Best for: Developer content, technical demos

Which style? (1-5)

Selection is captured in context.md under Style section.

Phase 4 - Content Depth (Conditional):

"What are 3-5 key points to cover?"
"Any specific data to include?"
  - Yes, I have data → [Get details]
  - Research needed → [Trigger Step 2.5]
  - No data needed → [Skip]

Drill-Down for Abstract Terms

When users give vague terms, clarify:

User Says Ask
"Professional" "Clean/minimal, or rich/detailed?"
"Modern" "Can you point to an example?"
"Engaging" "Animations, or compelling content?"

Save to context.md

After questions, create context.md capturing:

  • Topic, purpose, audience from Phase 1-2
  • Selected style (palette ID, name, style type) from Phase 3
  • Key points and data needs from Phase 4
## Style (User Selected)
- **Palette ID**: dark-sapphire-blue
- **Palette Name**: Dark Sapphire Blue
- **Mode**: dark
- **Style**: glass
- **Typography**:
  - Display: Sora
  - Body: Source Sans 3
- **User Keywords**: "tech, modern, dark"
- **Design Source**: ui-ux-pro-max + palettes.md

Step 2.5: Research Checkpoint

Always ask before researching - apply Just-In-Time research pattern.

When to Offer Research

Offer research when:

  • Topic involves comparisons (A vs B)
  • User mentions data/statistics/benchmarks
  • Topic is current events or recent technology
  • User needs facts they don't have

Skip research when:

  • User provides their own data
  • Topic is personal/internal
  • User explicitly declines

Research Prompt

"This topic would benefit from research. Would you like me to:

[ ] Research current data/statistics
[ ] Find competitive comparisons
[ ] Gather industry trends
[ ] Skip research - I'll provide content"

Research Workflow

1. User confirms research needed
    ↓
2. Conduct targeted web search
    ↓
3. Document in researches/ folder
    ↓
4. Present summary to user:
   "I found: [key findings]. Does this look accurate?"
    ↓
5. User confirms → Update context.md

Research Templates

See research-templates.md for:

  • Statistics & Data - Metrics, benchmarks, numbers
  • Competitive Analysis - A vs B comparisons
  • Trends & Forecasts - Industry outlook
  • Quick Facts - Simple fact lookup

File Organization

researches/
├── YYYY-MM-DD-statistics.md    # Data and numbers
├── YYYY-MM-DD-comparison.md    # A vs B analysis
└── YYYY-MM-DD-trends.md        # Industry trends

Quality Checklist

Before using researched data:

  • [ ] Source is authoritative
  • [ ] Data is recent (<6 months for fast fields)
  • [ ] Cross-referenced with another source
  • [ ] User has confirmed accuracy

After research, update context.md with verified data and sources.

Step 3: Create Markdown Slides

Create slides.md with complete design system and content structure. See slides-design.md for detailed patterns.

3.1 Generate Design System (Optional but Recommended)

Use ui-ux-pro-max skill to get comprehensive design recommendations:

python3 skills/ui-ux-pro-max/scripts/search.py "<topic> <style keywords>" --design-system -p "<Presentation Name>"

Example:

python3 skills/ui-ux-pro-max/scripts/search.py "tech benchmark modern dark glass" --design-system -p "Claude Benchmark"

3.2 slides.md Template

# [Presentation Title]

## Design System

### Theme
- **Palette**: [theme-id from palettes.md]
- **Mode**: dark / light
- **Style**: glass / flat

### Colors
| Token | Hex | Usage |
|-------|-----|-------|
| bg-base | #0f1c2e | Main background |
| primary-500 | #4d648d | Primary accent |
| accent-500 | #3d5a80 | Contrast accent |
| text-primary | #ffffff | Main text |
| text-secondary | #cee8ff | Secondary text |

### Typography
- **Display**: Sora (headings)
- **Body**: Source Sans 3 (content)

### Effects
- **Cards**: glass with border-white/20
- **Animations**: stagger reveal (0.1s delay)
- **Background**: gradient glow + grid pattern

---

## Slide 1: Hero
**Type**: Hero
**Layout**: centered
**Title**: Main Title Here
**Subtitle**: Supporting tagline
**Background**: gradient glow (primary top-left, accent bottom-right)
**Animation**: fade-in + scale (0.6s)

---

## Slide 2: Overview
**Type**: Content
**Layout**: three-column
**Title**: What We'll Cover
**Cards**: 3 cards, glass style
**Points**:
- [icon: Zap] First key point
- [icon: Shield] Second key point
- [icon: Rocket] Third key point
**Animation**: stagger reveal (0.1s)

---

## Slide 3: Details
**Type**: Data
**Layout**: stat-cards
**Title**: Key Metrics
**Stats**:
| Metric | Value | Trend | Context |
|--------|-------|-------|---------|
| Users | 10K+ | +25% | Monthly active |
| Growth | 40% | +15% | Year over year |
| NPS | 72 | +8 | Industry avg: 45 |
**Animation**: count-up numbers

---

## Slide 4: Comparison
**Type**: Comparison
**Layout**: versus
**Title**: Head to Head
**Comparison**:
| Feature | Option A | Option B |
|---------|----------|----------|
| Speed | ✓ Fast | ○ Medium |
| Cost | $99/mo | $149/mo |
| Support | 24/7 | Business |
**Highlight**: Option A for performance

---

## Slide 5: Summary
**Type**: Summary
**Layout**: takeaways
**Title**: Key Takeaways
**Takeaways**:
1. First key insight
2. Second key insight
3. Third key insight
**CTA**: "Get Started" → [link]
**Animation**: fade-in sequential

3.3 Slide Types Reference

Type Use For Layouts
Hero Opening slide centered, split, asymmetric
Content Information, bullets single-column, two-column, icon-list
Data Statistics, metrics stat-cards, chart-focus, dashboard
Comparison Side-by-side analysis versus, feature-matrix, ranking
Timeline Process, roadmap horizontal, vertical, milestone
Grid Multiple cards 2x2, 2x3, bento
Quote Testimonials centered, with-avatar
Summary Closing, CTA takeaways, cta-focused

3.4 Design Patterns by Scenario

Scenario Theme Style Typography
Tech/Product dark-sapphire-blue glass Sora + Source Sans 3
Professional banking-website flat DM Sans + Work Sans
Creative cyberpunk or neon glass Outfit + Nunito Sans
Nature summer-meadow flat Manrope + Source Sans 3
Minimal black-and-white flat DM Sans + Work Sans

Step 4: Confirm with User

Present the outline for confirmation:

## Presentation Outline

**Title**: [Title]
**Theme**: [theme-id] ([glass/flat] style)
**Folder**: [project-folder]

**Slides**:
1. Hero - Title and overview
2. Content - Key points
3. Data - Metrics/charts
4. Summary - Conclusions

**Files to create:**
- context.md ✓
- slides.md ✓
- source/ (React project)
- slide.html (final output)

**Confirm to generate?**

Step 5: Create Source Code

Copy template and configure:

# 1. Copy template
cp -r <skill-path>/assets/template/* <project-folder>/source/

# 2. Update tailwind.config.js with theme colors
# 3. Update index.html title
# 4. Update App.jsx with presentation name

Step 6: Generate Slides

Generate each slide JSX file based on slides.md content.

Before generating, read:

Use vercel-react-best-practices skill for React code generation to ensure:

  • Proper component composition and patterns
  • Performance-optimized rendering
  • Clean, maintainable code structure

Technical Requirements:

  • Framework: React function component
  • Styling: Tailwind CSS
  • Icons: lucide-react
  • Animations: framer-motion
  • Export: default function component

Theme Colors (use variables, not hardcoded):

  • primary-50 to primary-950
  • accent-50 to accent-950
  • bg-base, bg-card, bg-elevated
  • text-primary, text-secondary, text-muted
  • border-default, border-subtle

Style Options:

  • Glass: glass class or bg-white/10 backdrop-blur-md border-white/20
  • Flat: bg-bg-card shadow-sm border-border-default

Layout Rules (CRITICAL):

⛔ FORBIDDEN:

  • h-screen, min-h-screen - breaks layout
  • h-full on content wrappers
  • Extra padding on slide-page

✅ REQUIRED Structure:

<div className="slide-page">
  {/* Background - absolute positioning */}
  <div className="absolute inset-0 pointer-events-none">...</div>

  {/* Header */}
  <header className="relative z-10 mb-6 shrink-0">
    <h1>Title</h1>
  </header>

  {/* Content - auto-fills remaining space */}
  <div className="slide-content relative z-10">
    {/* Grid/cards here */}
  </div>
</div>

Grid Layouts:

  • 2 cards: grid-auto-fit grid-cols-2
  • 3 cards: grid-auto-fit grid-1x3
  • 4 cards (2x2): grid-auto-fit grid-2x2
  • 6 cards (2x3): grid-auto-fit grid-2x3

Animation Patterns:

import { motion } from 'framer-motion';

// Stagger container
const container = {
  hidden: { opacity: 0 },
  show: { opacity: 1, transition: { staggerChildren: 0.1 } }
};

// Child item
const item = {
  hidden: { opacity: 0, y: 20 },
  show: { opacity: 1, y: 0 }
};

// Hover effect
<motion.div whileHover={{ scale: 1.02 }}>...</motion.div>

File naming: 01-hero.jsx, 02-overview.jsx, etc.

Update App.jsx after all slides generated:

// Add imports at top
import Slide01 from './slides/01-hero';
import Slide02 from './slides/02-content';
// ...

// Update SLIDES array
const SLIDES = [Slide01, Slide02, ...];

// Update NAV_ITEMS array (used for navigation labels)
const NAV_ITEMS = [
  { slideIndex: 0, label: 'Hero' },
  { slideIndex: 1, label: 'Content' },
  // ...
];

// Update PRESENTATION_NAME
const PRESENTATION_NAME = 'Your Presentation Title';

Navigation Features:

The template includes quick-jump navigation:

Feature How to Use
Slide dots Click dots at bottom center (≤12 slides)
Number keys Press 1-9 to jump to slides 1-9
Quick nav Press G or click progress bar to open grid picker
Menu Click hamburger for full slide list with labels
Arrows ← → keys or click chevron buttons

Step 7: Dev Mode + Browser Verification (REQUIRED)

IMPORTANT: Always verify slides in dev mode BEFORE building the standalone export. This catches UI, animation, and interaction issues early.

See browser-verification.md for detailed verification procedures.

7.1 Start Dev Server

cd <project-folder>/source
npm install
npm run dev
# Server runs at http://localhost:5173

7.2 Browser Verification with agent-browser

Check if agent-browser is available:

# Try to run agent-browser
agent-browser --version

If not installed, prompt user:

Browser verification requires agent-browser skill.

Install with:
npx skills add vercel-labs/agent-browser

Then restart Claude Code and retry.

7.3 Verification Workflow

# Open presentation in browser
agent-browser open http://localhost:5173
agent-browser set viewport 1920 1080

# Create verify folder
mkdir -p <project-folder>/verify

# Capture first slide
agent-browser wait 2000
agent-browser screenshot <project-folder>/verify/slide-01.png

# Navigate and capture each slide
agent-browser press ArrowRight
agent-browser wait 1000
agent-browser screenshot <project-folder>/verify/slide-02.png
# ... repeat for all slides

7.4 Verification Checklist

Check How Pass Criteria
Layout Screenshot each slide No content overflow, proper spacing
Navigation Press ArrowRight/Left Slides transition smoothly
Quick jump Press 1-5 or G key Jumps to correct slide
Slide dots Click dots at bottom Navigates correctly (≤12 slides)
Animations Watch transitions No jank, elements animate in
Interactive Hover elements Visual feedback works
Responsive Change viewport Layout adapts correctly

7.5 Common Issues to Check

Layout Problems:

  • Content extending beyond viewport
  • Navigation bar hidden or overlapped
  • Cards cramped or overflowing

Animation Problems:

  • Stuttering transitions
  • Elements not animating
  • Flash of unstyled content

Interaction Problems:

  • Keyboard navigation not working
  • Click areas not responsive
  • Hover states missing

7.6 Fix and Re-verify

If issues found:

  1. Fix the problematic slide JSX
  2. Browser auto-reloads (hot reload)
  3. Re-verify the specific slide
  4. Take new screenshot to confirm fix

Step 8: Build & Export

Only after verification passes, build the standalone HTML:

cd <project-folder>/source

# Build standalone HTML
npm run build:standalone

# Copy to project root
cp dist-standalone/index.html ../slide.html

8.1 Final Verification

Verify the standalone file works correctly:

# Test standalone file
agent-browser open file://<absolute-path>/slide.html
agent-browser set viewport 1920 1080
agent-browser screenshot <project-folder>/verify/final-standalone.png

# Quick navigation test
agent-browser press ArrowRight
agent-browser wait 500
agent-browser press ArrowLeft

Final output: <project-folder>/slide.html

This single HTML file:

  • Contains all JS, CSS, and fonts embedded
  • Works offline (no server needed)
  • Opens directly in any browser (file://)
  • Full React interactivity and animations

8.2 Close Browser

agent-browser close

Step 5.5: Generate Images (When Required)

When slides require custom images, diagrams, or illustrations, use the ai-multimodal skill.

When to use:

  • Hero slides needing background illustrations
  • Diagrams (architecture, flowcharts, processes)
  • Product mockups or screenshots
  • Custom icons or illustrations

Workflow:

  1. Identify slides needing images during Step 3
  2. After generating slide JSX, invoke ai-multimodal
  3. Save images to source/public/images/
  4. Reference in slides: <img src="/images/generated-image.png" />

Theme System

Themes are defined in palettes.md.

Quick recommendations:

User says Recommend
"Tech", "Modern" dark-sapphire-blue (glass)
"Professional", "Business" banking-website (flat)
"Cyberpunk", "Neon" cyberpunk (glass)
"Natural", "Organic" summer-meadow (flat)
"Minimal", "Clean" black-and-white (flat)

Design Principles

See principles.md for:

  • Color variable usage
  • Typography scale
  • Spacing conventions
  • Component structure

Example Interaction

User: "Create a benchmark presentation for Claude vs GPT"

Claude: "I'll help create benchmark slides.

Where would you like to save this presentation?
Default: ./claude-benchmark"

User: "OK"

Claude: "What's this presentation about? Give me a brief description."

User: "Comparing Claude and GPT coding abilities for our dev team"

Claude: "Who will view this?
  - Executives / Decision makers
  - Technical team / Developers ←
  - General audience
  - Customers"

User: "Technical team"

Claude: "What's the goal?
  - Inform - Share findings
  - Persuade - Recommend one model
  - Demo - Show capabilities
  - Report - Present data"

User: "Inform"

Claude: "Describe the vibe in a few words (e.g., tech, modern, professional)"

User: "tech, modern, dark, sleek"

Claude: [Runs ui-ux-pro-max: python3 ~/.claude/skills/ui-ux-pro-max/scripts/search.py "AI benchmark tech modern dark presentation" --design-system]

Claude: "Based on design analysis, here are 5 style options:

1. **Dark Sapphire Blue** (glass) - Recommended
   Dark tech with blue accents, gradient glows
   Typography: Sora + Source Sans 3
   Best for: Tech products, developer tools

2. **Electric City Nights** (glass)
   Urban dark with vibrant blue highlights
   Typography: DM Sans + Work Sans
   Best for: Modern SaaS, tech startups

3. **Purple Dark Black Blue** (glass)
   Deep purple-blue, cyberpunk undertones
   Typography: Outfit + Nunito Sans
   Best for: AI/ML, futuristic topics

4. **Hacker News** (glass)
   Dark with orange accents, geek aesthetic
   Typography: Sora + Source Sans 3
   Best for: Developer content, technical demos

5. **Space** (glass)
   Deep space theme with gold accents
   Typography: Manrope + Source Sans 3
   Best for: Innovation, visionary topics

Which style? (1-5)"

User: "1"

Claude: "Selected: Dark Sapphire Blue (glass) with Sora + Source Sans 3"

Claude: "What are 3-5 key points to cover?"

User: "Coding ability, reasoning, context window, speed"

Claude: "This topic would benefit from current benchmark data.
Would you like me to research:
  [ ] Current benchmark statistics
  [ ] Model comparison data
  [ ] Skip research"

User: "Yes, research current benchmarks"

Claude: [Conducts web search for current AI benchmarks]
Claude: "I found the following data:
- Claude scores 92% on HumanEval (coding)
- GPT-4 scores 87% on HumanEval
- Claude has 200K context, GPT-4 has 128K
[Sources: official docs, research papers]

Does this look accurate?"

User: "Yes, use that"

Claude: [Creates ./claude-benchmark/ folder structure]
Claude: [Saves research to ./claude-benchmark/researches/2026-01-29-benchmark-data.md]
Claude: [Creates ./claude-benchmark/context.md with verified data]
Claude: [Creates ./claude-benchmark/slides.md]
Claude: "Here's the outline:

## Presentation Outline

**Title**: Claude vs GPT Coding Benchmark
**Theme**: dark-sapphire-blue (glass)

**Slides**:
1. Hero - Title and model overview
2. Framework - Evaluation methodology
3. Task 1 - API development
4. Task 2 - React components
5. Task 3 - CLI tools
6. Summary - Results and recommendations

Confirm to generate?"

User: "OK"

Claude: [Creates source/ from template]
Claude: [Generates 6 slide JSX files]
Claude: [Updates App.jsx with imports]
Claude: [Starts dev server: npm run dev]
Claude: [Opens browser: agent-browser open http://localhost:5173]
Claude: [Verifies each slide, takes screenshots]
Claude: "Verification complete. All slides look good:
- Layout: ✓ No overflow issues
- Navigation: ✓ Arrow keys work
- Animations: ✓ Smooth transitions

Building standalone export..."

Claude: [Runs npm run build:standalone]
Claude: [Copies to slide.html]
Claude: [Final verification of slide.html]
Claude: [Closes browser]
Claude: "Presentation complete!

Files created:
- ./claude-benchmark/context.md
- ./claude-benchmark/researches/2026-01-29-benchmark-data.md
- ./claude-benchmark/slides.md
- ./claude-benchmark/source/ (React project)
- ./claude-benchmark/verify/ (verification screenshots)
- ./claude-benchmark/slide.html ← Open this in browser

Open slide.html to view your presentation."

Reference Documentation

Reference Description
context-guide.md Progressive disclosure question flow for gathering requirements
research-templates.md Templates for statistics, comparison, and trends research
slides-design.md Design system patterns, slide types, layouts, animations
browser-verification.md Browser testing with agent-browser
aesthetics.md Design philosophy and visual guidelines
principles.md Technical layout and component rules
palettes.md 76 color themes with usage guide

External Skill Integration

Skill Use For
vercel-react-best-practices React code generation best practices (REQUIRED for slide JSX)
ui-ux-pro-max Design system generation, typography, color palettes
agent-browser Browser verification before export
ai-multimodal Custom image/diagram generation

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。