create-remotion-geist について
create-remotion-geistは、VercelのGeistスタイルでRemotion動画を作るためのスキルで、動画やモーショングラフィックスの制作者向けです。デザイントークン、アニメーションやシーンのパターン、プロジェクト設定に加え、アイコン、ブランド素材、コード表示のルールをまとめています。
主な機能
- 01Geistのダークテーマ設計ガイド
- 02色、タイポグラフィ、間隔のトークン
- 03スプリングベースのアニメーション例
- 04シーン構成とプロジェクトテンプレート
- 05アイコンとコード表示の規則
活用シーン
- 01VercelスタイルのRemotion動画制作
- 02Geistの雰囲気を使ったモーショングラフィックス
- 03コードをアニメーションで紹介する動画制作
- 04Geistの規則に沿った動画プロジェクトの設定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ vercel-labs/ skill-remotion-geist --skill create-remotion-geistインストール後、Claude Code で/create-remotion-geistを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/code-blocks.mdgeist-colors.mdgeist-components.mdgeist-icons.mdgeist-typography.mdproject-setup.mdscene-patterns.mdstoryboard-template.md詳細
Remotion Geist 動画を作成する
Vercel の Geist デザインシステムに沿った Remotion 動画を作成します。暗い背景、スプリングアニメーション、Geist フォント、10 段階のカラースケールを使用します。
使用する場面
- Vercel のような見た目にしたい Remotion 動画を作成するとき
- Geist のダークテーマの美しさを取り入れたモーショングラフィックスを作成するとき
- Geist のタイポグラフィとカラーを使ったアニメーションコンテンツを作成するとき
- 洗練された Vercel のビジュアルスタイルが必要な動画を制作するとき
重要なルール
- 絵文字は絶対に使用しないでください —
@geist-ui/iconsパッケージの適切な Geist アイコンを使用します - 公式のブランドアセットを使用してください — 公式ソースからダウンロードし、SVG を自作しないでください
- エントリーポイントは .tsx にしてください —
.tsではなく、registerRoot()を使用するsrc/index.tsxを使います - コードには prism-react-renderer を使用してください — 正規表現ベースのシンタックスハイライトは使用しないでください
クイックスタート
-
プロジェクトをスキャフォールドします:
mkdir -p src/{scenes,components,utils} out npm init -y npm install remotion @remotion/cli @remotion/tailwind react react-dom npm install -D tailwindcss typescript @types/react npm install @geist-ui/icons # For proper icons -
コアファイルを作成します(テンプレートは
references/project-setup.mdを参照):remotion.config.ts— Tailwind を有効化tailwind.config.js— Geist のカラーとフォントsrc/styles.css— CDN からフォントを読み込みsrc/index.tsx—registerRoot()を使用するルートコンポジションsrc/Root.tsx— コンポジションの定義src/utils/animations.ts— スプリングアニメーション
-
references/scene-patterns.mdのパターンに従ってシーンを作成します -
レンダリングします:
npx remotion studio # Preview at localhost:3000 npx remotion render MyComp out/video.mp4
Geist デザイントークン(クイックリファレンス)
カラー(ダークテーマ)
| トークン | CSS 変数 | 値 | 用途 |
|---|---|---|---|
| background-100 | --ds-background-100 | #0a0a0a | プライマリ背景 |
| background-200 | --ds-background-200 | #171717 | セカンダリ/浮き上がった要素 |
| gray-400 | --ds-gray-400 | #737373 | デフォルトのボーダー |
| green-700 | --ds-green-700 | #46A758 | 成功 |
| red-700 | --ds-red-700 | #E5484D | エラー |
| amber-700 | --ds-amber-700 | #FFB224 | 警告 |
| blue-700 | --ds-blue-700 | #0070F3 | 情報/アクセント |
タイポグラフィクラス
- 見出し:
text-heading-{72|64|56|48|40|32|24|20|16|14}(セミボールド、文字間隔は狭め) - ラベル:
text-label-{20|18|16|14|13|12}[-mono](標準の太さ) - 本文:
text-copy-{24|20|18|16|14|13}[-mono](標準の太さ)
スペーシング(4px 基準)
space-2:8px |space-4:16px |space-6:24px |space-8:32px
アニメーションユーティリティ
Geist の滑らかな美しさを表現するため、スプリングベースのアニメーションを使用します。
import { spring, interpolate } from 'remotion';
// Fade in with delay
export function fadeIn(frame: number, fps: number, delay = 0, duration = 0.4) {
const delayFrames = delay * fps;
const durationFrames = duration * fps;
return interpolate(frame, [delayFrames, delayFrames + durationFrames], [0, 1],
{ extrapolateLeft: 'clamp', extrapolateRight: 'clamp' });
}
// Spring scale
export function springIn(frame: number, fps: number, delay = 0) {
return spring({ frame: frame - delay * fps, fps, config: { damping: 200 } });
}
シーン構成パターン
export function MyScene() {
const frame = useCurrentFrame();
const { fps } = useVideoConfig();
const titleOpacity = fadeIn(frame, fps, 0, 0.4);
const titleScale = springIn(frame, fps, 0);
return (
<AbsoluteFill className="bg-background-100 flex flex-col items-center justify-center">
<h2 style={{ opacity: titleOpacity, transform: `scale(${titleScale})` }}>
Title
</h2>
</AbsoluteFill>
);
}
重要な原則
- 絵文字は絶対に使用しないでください —
@geist-ui/iconsからアイコンをインポートします(例:import { Code, Folder, Check } from '@geist-ui/icons') - 成功 = 緑 — Geist では成功状態に緑(--ds-green-700)を使用します
- ボーダー = gray-400 — デフォルトのボーダーカラー(--ds-gray-400)
- 入力欄には bg-100 を使用 — セカンダリではなくプライマリ背景を使います
- スプリングアニメーション — 滑らかで減衰する動き(damping: 200)
- 文字間隔は狭めに — 見出しでは負のトラッキングを使用します
- 公式のブランドアセットを使用してください — ロゴは公式ソースからダウンロードします(
references/geist-icons.mdを参照)
リファレンス
references/project-setup.md— ファイルテンプレート一式references/geist-icons.md— アイコンとブランドアセット(必読)references/code-blocks.md— シンタックスハイライト付きコードブロック(prism-react-renderer を使用)references/geist-colors.md— 10 段階のカラースケール全体references/geist-typography.md— 仕様付きタイポグラフィクラス一覧references/geist-components.md— コンポーネントの props とパターンreferences/scene-patterns.md— 一般的なコンテンツ向けのシーンテンプレートreferences/storyboard-template.md— 動画構成の計画
フォントの読み込み(jsDelivr CDN)
@font-face {
font-family: 'Geist';
src: url('https://cdn.jsdelivr.net/npm/[email protected]/dist/fonts/geist-sans/Geist-Regular.woff2') format('woff2');
font-weight: 400;
}
/* Add Medium (500), SemiBold (600), Bold (700) weights */
コメント
Markdown 対応