revealjs-slides について
revealjs-slidesは、reveal.jsでHTMLプレゼンテーションを作成するスキルです。テンプレートを使ったスライド生成に加え、生成物の配信と表示手順を案内します。
主な機能
- 01テンプレートからのHTMLスライド生成
- 02カスタム16:9テーマ
- 03Markdownとコードハイライト
- 04Mermaid図と数式への対応
- 05発表者ノートとPDF出力
活用シーン
- 01テンプレートを使ったプレゼン作成
- 02図や数式を含むスライドの作成
- 03発表者ノートを使ったプレゼン
- 04プレゼンのPDF保存
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alahmadiq8/ skills --skill revealjs-slidesインストール後、Claude Code で/revealjs-slidesを入力して読み込まれたか確認します。
同梱ファイルassets/template.html
詳細
reveal.js スライドジェネレーター
ワークフロー
assets/template.htmlのテンプレートをユーザーの指定したパス(デフォルト:cwd のslides.html)にコピーします{{TITLE}}、{{SUBTITLE}}、{{AUTHOR}}、{{DATE}}のプレースホルダーを置き換えます- TITLE SLIDE と閉じコメントの間に、各スライドの
<section>要素を生成します - プレゼンテーションを配信して開きます(以下の実行方法を参照)
実行方法
HTML ファイルを生成したら、必ず配信してユーザーが開けるようにします。
npx live-server --port=8765 --open=slides.html
プレゼンテーションのキーボードショートカット:
- 矢印キー/Space — スライドを移動します
S— 発表者ノート表示を開きますO— 概要/スライド一覧を開きますF— 全画面表示にしますEsc— 概要表示または全画面表示を終了しますB/.— 一時停止します(黒画面)
テンプレートの場所
assets/template.html — CDN ベース(npm のインストールは不要)で、Inter フォントとカスタムテーマを使用し、Markdown、Highlight、Notes、Math、Mermaid のプラグインを含みます。
デフォルトテーマ:カスタムスタイル
テンプレートには、組み込みのカスタムテーマが用意されています。主な特徴は以下のとおりです。
- Inter フォント(Google Fonts)と、Segoe UI/Calibri のフォールバック
- 左揃えのコンテンツスライド。テキストは上揃え(
center: false) - タイトル/クロージングスライドでは、
class="title-slide"を使用して中央揃え・垂直方向中央配置のレイアウトにします - h2 スライドタイトルには、控えめな下線を付けます
- 太字テキストは見出しのアクセントカラー(
#1a3c6e)で表示されます - テーブルには濃紺のヘッダー行と、交互に色が付く行を使用します
- 引用には、左側に青いアクセントバーと明るい背景を付けます
- コードブロックは、控えめな枠線を付けたフラットなスタイルです(ドロップシャドウなし)
- スライドサイズ:1280x720(16:9)。一般的なプレゼンテーションのアスペクト比に一致します
- スライドの余白:上下 48px、左右 56px
タイトル/クロージングスライド(垂直方向中央配置)
<section class="title-slide">
<h1>Presentation Title</h1>
<p>Subtitle text here</p>
<p class="small">Author — Date</p>
</section>
2 カラムレイアウト(.columns ヘルパーを使用)
<section>
<h2>Comparison</h2>
<div class="columns">
<div><h3>Left</h3><p>Content</p></div>
<div><h3>Right</h3><p>Content</p></div>
</div>
</section>
ベーステーマの上書き
カスタムテーマは white.css を上書きします。ベーステーマを変更するには、CSS リンク内の white を black、league、beige、night、serif、simple、solarized、moon、dracula、sky、blood のいずれかに置き換えます。注:暗いベーステーマでは、CSS 変数 --r-heading-color やその他の色も更新してください。
スライドのパターン
基本スライド
<section>
<h2>Title</h2>
<p>Content here</p>
</section>
フラグメント付き箇条書き(1 項目ずつ表示)
<section>
<h2>Key Points</h2>
<ul>
<li class="fragment">First point</li>
<li class="fragment">Second point</li>
<li class="fragment">Third point</li>
</ul>
</section>
構文ハイライト付きコード
<section>
<h2>Code</h2>
<pre><code class="language-python" data-trim data-line-numbers>
def hello():
print("Hello, world!")
</code></pre>
</section>
data-line-numbers="1-2|3-4" を使うと、行のハイライトを順番に表示できます。
画像スライド
<section>
<h2>Architecture</h2>
<img src="diagram.png" alt="Architecture" style="max-height: 500px;">
</section>
発表者ノート
<section>
<h2>Topic</h2>
<p>Audience content</p>
<aside class="notes">Speaker-only notes here. Press 's' to open speaker view.</aside>
</section>
背景色/画像
<section data-background-color="#4d7e65">
<h2>Green Background</h2>
</section>
<section data-background-image="photo.jpg" data-background-size="cover">
<h2>Photo Background</h2>
</section>
引用
<section>
<blockquote>"Quote text here." — Author</blockquote>
</section>
2 カラムレイアウト
<section>
<h2>Comparison</h2>
<div style="display: flex; gap: 2em;">
<div style="flex: 1;"><h3>Left</h3><p>Content</p></div>
<div style="flex: 1;"><h3>Right</h3><p>Content</p></div>
</div>
</section>
数式(KaTeX)
<section>
<h2>Equation</h2>
<p>\[ E = mc^2 \]</p>
</section>
Markdown スライド
<section data-markdown>
<script type="text/template">
## Markdown Title
- Point **one**
- Point *two*
Notes:
Speaker notes in markdown.
</script>
</section>
図のパターン(Mermaid.js)
テンプレートには Mermaid プラグインが含まれています。スライド内で <div class="mermaid"> ブロックを使うと、図を表示できます。Mermaid が自動的に SVG に変換するため、画像は不要です。
フローチャート
<section>
<h2>User Flow</h2>
<div class="mermaid">
flowchart LR
A[Visit Site] --> B{Logged in?}
B -- Yes --> C[Dashboard]
B -- No --> D[Login Page]
D --> E[Enter Credentials]
E --> C
</div>
</section>
シーケンス図
<section>
<h2>API Request Flow</h2>
<div class="mermaid">
sequenceDiagram
participant Client
participant API
participant DB
Client->>API: POST /users
API->>DB: INSERT user
DB-->>API: user record
API-->>Client: 201 Created
</div>
</section>
クラス図
<section>
<h2>Domain Model</h2>
<div class="mermaid">
classDiagram
class Animal {
+String name
+int age
+makeSound()
}
class Dog {
+fetch()
}
class Cat {
+purr()
}
Animal <|-- Dog
Animal <|-- Cat
</div>
</section>
ER 図
<section>
<h2>Database Schema</h2>
<div class="mermaid">
erDiagram
USER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
PRODUCT ||--o{ LINE_ITEM : "ordered in"
</div>
</section>
状態遷移図
<section>
<h2>Order Lifecycle</h2>
<div class="mermaid">
stateDiagram-v2
[*] --> Pending
Pending --> Processing : payment received
Processing --> Shipped : packed
Shipped --> Delivered : arrived
Delivered --> [*]
Processing --> Cancelled : refund
</div>
</section>
マインドマップ
<section>
<h2>Project Overview</h2>
<div class="mermaid">
mindmap
root((Project))
Frontend
React
Tailwind
Backend
Node.js
PostgreSQL
DevOps
Docker
CI/CD
</div>
</section>
タイムライン
<section>
<h2>Project Milestones</h2>
<div class="mermaid">
timeline
title Release Timeline
Q1 2025 : Alpha release
: Core features
Q2 2025 : Beta release
: API launch
Q3 2025 : GA release
</div>
</section>
ガントチャート
<section>
<h2>Sprint Plan</h2>
<div class="mermaid">
gantt
title Sprint 12
dateFormat YYYY-MM-DD
section Backend
API endpoints :a1, 2025-01-06, 5d
Database migration :a2, after a1, 3d
section Frontend
UI components :b1, 2025-01-06, 7d
Integration :b2, after b1, 3d
</div>
</section>
円グラフ
<section>
<h2>Traffic Sources</h2>
<div class="mermaid">
pie title Traffic Sources
"Organic Search" : 45
"Direct" : 25
"Social Media" : 20
"Referral" : 10
</div>
</section>
Git グラフ
<section>
<h2>Branching Strategy</h2>
<div class="mermaid">
gitGraph
commit
branch feature
checkout feature
commit
commit
checkout main
merge feature
commit
</div>
</section>
カスタムテーマの図(暗いプレゼンテーション)
暗いテーマ(black、night、dracula、league)では、テーマディレクティブを追加します。
<div class="mermaid">
%%{init: {'theme': 'dark'}}%%
flowchart LR
A --> B --> C
</div>
Mermaid で利用可能なテーマ:default、dark、forest、neutral、base。
タイトルと説明を並べた図
<section>
<h2>Architecture</h2>
<div class="columns">
<div>
<div class="mermaid">
flowchart TD
LB[Load Balancer] --> S1[Server 1]
LB --> S2[Server 2]
S1 --> DB[(Database)]
S2 --> DB
</div>
</div>
<div>
<ul>
<li>Horizontally scalable</li>
<li>Single database with replicas</li>
<li>Health-check based routing</li>
</ul>
</div>
</div>
</section>
図のデザインガイドライン
- スライドごとに図は1つ — 図を読みやすく保ち、詰め込みすぎないでください
- ノード数は15~20未満に抑える — 複雑なシステムは複数のスライドに分けてください
- 意味のあるラベルを使う —
A、B、Cではなく、User、Databaseを使ってください - テーマに合わせる — ダークなプレゼンテーションテーマでは、
%%{init: {'theme': 'dark'}}%%を使ってください - フローチャートの向き — 横長のスライドでは
LR(左から右)、縦長の図ではTD(上から下)を使ってください - テキストを添える — 2列レイアウトを使って、図の横に背景情報を追加してください
- 次の用途にはフローチャートを推奨:プロセス、意思決定ツリー、アーキテクチャ
- 次の用途にはシーケンス図を推奨:API フロー、リクエスト/レスポンス、プロトコルのやり取り
- 次の用途にはクラス図/ER図を推奨:データモデル、データベーススキーマ、OOP の階層構造
- 次の用途にはマインドマップを推奨:ブレインストーミング、トピックの概要、プロジェクト構成
- 次の用途にはタイムライン/ガントチャートを推奨:ロードマップ、プロジェクト計画、スプリントのスケジュール
スライドデザインガイドライン
- タイトルスライド:必ず最初に配置し、h1、サブタイトル、作成者を含む
class="title-slide"を使ってください - 締めくくりのスライド:中央揃えの「ご質問はありますか?」または「ありがとうございます」スライドには
class="title-slide"を使ってください - コンテンツスライド:スライドタイトルにはh2を使ってください(下部の区切り線が自動的に表示されます)
- スライドごとにアイデアは約1つ:内容の焦点を絞ってください
- 箇条書きにはフラグメントを推奨し、内容が段階的に表示されるようにしてください
- コードブロック:空白を除去するには
data-trimを使い、language-*クラスを設定してください - テキストを制限する:段落よりも、ビジュアル、短いフレーズ、キーワードを優先してください
- 強調には太字を使う:
<strong>のテキストは自動的にネイビーのアクセントカラーで表示されます .columnsヘルパーを使う:インラインのflexスタイルの代わりに、横並びのレイアウトに使用してください- 縦方向のスライドは使わないでください:
<section>の中に<section>をネストしないでください。すべてのスライドをフラットな横方向の構成にしてください
設定のカスタマイズ
HTML の末尾にあるReveal.initialize({...})ブロックを変更してください。
| オプション | デフォルト | 目的 |
|---|---|---|
transition | 'slide' | none、fade、slide、convex、concave、zoom |
slideNumber | true | スライド番号を表示します |
center | false | コンテンツを上部から表示します(title-slideクラスがこれを上書きします) |
hash | true | URL のハッシュによるナビゲーション |
progress | true | 進行状況バーを表示します |
controls | true | ナビゲーション矢印を表示します |
width | 1280 | スライドの幅(ピクセル単位、16:9) |
height | 720 | スライドの高さ(ピクセル単位、16:9) |
margin | 0 | 外側の余白はありません(パディングはCSSで設定します) |
PDF エクスポート
URL に?print-pdfを追加し、ブラウザーの印刷機能(Cmd/Ctrl+P)を使ってPDFとして保存してください。