webflow-designer-extension
Webflow Designer内で動作する拡張機能を、CLI操作からUIデザインまで網羅的に開発・デバッグ・修正するSkill。
📜 元の英語説明(参考)
Build Webflow Designer Extensions that run inside the Webflow Designer. Use when creating, debugging, or modifying Designer Extensions (iframes that interact with Webflow's Designer API). Covers CLI usage, element manipulation, styles, components, pages, variables, assets, error handling, and UI design patterns for Webflow's design system.
🇯🇵 日本人クリエイター向け解説
Webflow Designer内で動作する拡張機能を、CLI操作からUIデザインまで網羅的に開発・デバッグ・修正するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o webflow-designer-extension.zip https://jpskill.com/download/6546.zip && unzip -o webflow-designer-extension.zip && rm webflow-designer-extension.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6546.zip -OutFile "$d\webflow-designer-extension.zip"; Expand-Archive "$d\webflow-designer-extension.zip" -DestinationPath $d -Force; ri "$d\webflow-designer-extension.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
webflow-designer-extension.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
webflow-designer-extensionフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Webflow Designer 拡張機能の開発
Webflow の Designer 内で iframe として実行される拡張機能を構築し、Designer API と連携して要素、スタイル、ページなどを操作します。
クイックスタートワークフロー
前提条件: まず Webflow でアプリを登録してください — references/register-app.md を参照してください。管理者権限を持つワークスペースが必要です。
- スキャフォールド:
npx create-webflow-extension@latest(プロジェクト名、パッケージマネージャー、リンターの対話型プロンプト) - 開発:
cd <name> && pnpm dev(localhost:1337 で提供されます。npm/yarn/bun でも動作します) - テスト: ワークスペース設定 > アプリと連携 > 開発 からテストサイトにアプリをインストールします。
- 開く: Designer で「E」を押してアプリパネルを開き、拡張機能を起動します。
- ビルド: デプロイのために
pnpm buildを実行します。
CLI オプション
npx create-webflow-extension@latest [project-name] [options]
Options:
--pm <pnpm|npm|yarn|bun> Package manager to use (default: pnpm)
--linter <oxlint|biome|eslint> Linter to use
--skip-git Skip git initialization
--skip-install Skip dependency installation
--quiet Suppress output
コア API パターン
要素の取得と設定
// Get selected element
const el = await webflow.getSelectedElement();
// Get all elements
const elements = await webflow.getAllElements();
// Select element programmatically
await webflow.setSelectedElement(element);
要素の挿入
const selected = await webflow.getSelectedElement();
if (selected) {
// Insert siblings
await selected.after(webflow.elementPresets.DivBlock);
await selected.before(webflow.elementPresets.Paragraph);
// Insert children (if element supports children)
if (selected.children) {
await selected.append(webflow.elementPresets.Image);
await selected.prepend(webflow.elementPresets.Heading);
}
}
要素のスタイリング
// Create and apply style
const style = await webflow.createStyle("MyStyle");
await style.setProperty("background-color", "blue");
await style.setProperty("font-size", "16px");
await element.setStyles([style]);
// Responsive styling
await style.setProperties(
{ "font-size": "14px" },
{ breakpoint: "medium", pseudo: "hover" }
);
ユーザー通知
await webflow.notify({ type: 'Success', message: 'Element created!' });
await webflow.notify({ type: 'Error', message: 'Please select an element.' });
要素のプリセット
webflow.elementPresets を介した一般的なプリセット:
- レイアウト:
DivBlock,Section,Container,Grid,VFlex,HFlex - テキスト:
Paragraph,Heading,TextBlock,RichText - メディア:
Image,Video - フォーム:
FormForm,FormInput,FormButton - ナビゲーション:
Link,LinkBlock,NavBar - カスタム:
DOM(カスタム HTML タグ用)
プリセットのない要素には、DOM 要素を使用します:
const custom = webflow.elementBuilder(webflow.elementPresets.DOM);
custom.setTag("section");
custom.setAttribute("class", "custom-section");
ブレークポイントと擬似状態
ブレークポイント: "xxl" | "xl" | "large" | "main" | "medium" | "small" | "tiny"
擬似状態: "hover" | "active" | "pressed" | "visited" | "focus" | "focus-visible" | "placeholder" | "first-child" | "last-child" | "nth-child(odd)" | "nth-child(even)"
エラー処理
try {
const el = await webflow.getSelectedElement();
await el.remove();
} catch (err) {
switch (err.cause?.tag) {
case 'ResourceMissing':
await webflow.notify({ type: 'Error', message: 'Element not found' });
break;
case 'InvalidElementPlacement':
await webflow.notify({ type: 'Error', message: 'Cannot place element here' });
break;
default:
await webflow.notify({ type: 'Error', message: 'An error occurred' });
}
}
一般的なエラータグ: DuplicateValue, Forbidden, InternalError, InvalidElementPlacement, InvalidRequest, InvalidStyle, ResourceMissing, VariableInvalid
プロジェクト構造
create-webflow-extension (React 19 + TypeScript + Rspack) によって生成されます:
my-extension/
├── public/
│ └── index.html # エントリポイント
├── src/
│ ├── App.tsx # メインの React コンポーネント
│ ├── main.tsx # React のエントリポイント
│ └── index.css # スタイル
├── webflow.json # 拡張機能の設定
├── rspack.config.ts # Rspack バンドラーの設定
├── package.json
└── tsconfig.json
リファレンスドキュメント
各リファレンスファイルには、検索可能な name、description、tags を含む YAML フロントマターが含まれています。関連するリファレンスを素早く見つけるには、検索スクリプトを使用してください:
# メタデータ付きのすべてのリファレンスをリスト表示
python scripts/search_references.py --list
# タグで検索 (完全一致)
python scripts/search_references.py --tag <tag>
# キーワードで検索 (名前、説明、タグ、コンテンツ全体)
python scripts/search_references.py --search <query>
クイックルックアップ
- references/designer-apis-reference.md: すべての API とメソッドをまとめています (ここから始めてください)
詳細ガイド
- references/create-webflow-extension-reference.md:
create-webflow-extensionスキャフォールディング CLI - references/webflow-cli-reference.md: 拡張機能の提供、バンドル、リスト表示のための Webflow CLI
- references/elements-api.md: 要素の操作とプリセット
- references/styles-api.md: スタイリング、ブレークポイント、擬似状態
- references/components-api.md: コンポーネントの定義とインスタンス
- references/pages-api.md: ページとフォルダーの管理
- references/variables-api.md: デザイン変数とコレクション
- [references/assets-api.md](ref
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Webflow Designer Extension Development
Build extensions that run inside Webflow's Designer as iframes, interacting with the Designer API to manipulate elements, styles, pages, and more.
Quick Start Workflow
Prerequisite: Register your app in Webflow first — see references/register-app.md. You'll need a Workspace with Admin permissions.
- Scaffold:
npx create-webflow-extension@latest(interactive prompts for project name, package manager, linter) - Develop:
cd <name> && pnpm dev(serves at localhost:1337; also works with npm/yarn/bun) - Test: Install app on test site via Workspace Settings > Apps & Integrations > Develop
- Open: Press "E" in Designer to open app panel, launch extension
- Build:
pnpm buildfor deployment
CLI Options
npx create-webflow-extension@latest [project-name] [options]
Options:
--pm <pnpm|npm|yarn|bun> Package manager to use (default: pnpm)
--linter <oxlint|biome|eslint> Linter to use
--skip-git Skip git initialization
--skip-install Skip dependency installation
--quiet Suppress output
Core API Patterns
Getting and Setting Elements
// Get selected element
const el = await webflow.getSelectedElement();
// Get all elements
const elements = await webflow.getAllElements();
// Select element programmatically
await webflow.setSelectedElement(element);
Inserting Elements
const selected = await webflow.getSelectedElement();
if (selected) {
// Insert siblings
await selected.after(webflow.elementPresets.DivBlock);
await selected.before(webflow.elementPresets.Paragraph);
// Insert children (if element supports children)
if (selected.children) {
await selected.append(webflow.elementPresets.Image);
await selected.prepend(webflow.elementPresets.Heading);
}
}
Styling Elements
// Create and apply style
const style = await webflow.createStyle("MyStyle");
await style.setProperty("background-color", "blue");
await style.setProperty("font-size", "16px");
await element.setStyles([style]);
// Responsive styling
await style.setProperties(
{ "font-size": "14px" },
{ breakpoint: "medium", pseudo: "hover" }
);
User Notifications
await webflow.notify({ type: 'Success', message: 'Element created!' });
await webflow.notify({ type: 'Error', message: 'Please select an element.' });
Element Presets
Common presets via webflow.elementPresets:
- Layout:
DivBlock,Section,Container,Grid,VFlex,HFlex - Text:
Paragraph,Heading,TextBlock,RichText - Media:
Image,Video - Forms:
FormForm,FormInput,FormButton - Navigation:
Link,LinkBlock,NavBar - Custom:
DOM(for custom HTML tags)
For elements without presets, use DOM element:
const custom = webflow.elementBuilder(webflow.elementPresets.DOM);
custom.setTag("section");
custom.setAttribute("class", "custom-section");
Breakpoints and Pseudo-States
Breakpoints: "xxl" | "xl" | "large" | "main" | "medium" | "small" | "tiny"
Pseudo-states: "hover" | "active" | "pressed" | "visited" | "focus" | "focus-visible" | "placeholder" | "first-child" | "last-child" | "nth-child(odd)" | "nth-child(even)"
Error Handling
try {
const el = await webflow.getSelectedElement();
await el.remove();
} catch (err) {
switch (err.cause?.tag) {
case 'ResourceMissing':
await webflow.notify({ type: 'Error', message: 'Element not found' });
break;
case 'InvalidElementPlacement':
await webflow.notify({ type: 'Error', message: 'Cannot place element here' });
break;
default:
await webflow.notify({ type: 'Error', message: 'An error occurred' });
}
}
Common error tags: DuplicateValue, Forbidden, InternalError, InvalidElementPlacement, InvalidRequest, InvalidStyle, ResourceMissing, VariableInvalid
Project Structure
Generated by create-webflow-extension (React 19 + TypeScript + Rspack):
my-extension/
├── public/
│ └── index.html # Entry point
├── src/
│ ├── App.tsx # Main React component
│ ├── main.tsx # React entry point
│ └── index.css # Styles
├── webflow.json # Extension settings
├── rspack.config.ts # Rspack bundler configuration
├── package.json
└── tsconfig.json
Reference Documentation
Each reference file includes YAML frontmatter with name, description, and tags for searchability. Use the search script to find relevant references quickly:
# List all references with metadata
python scripts/search_references.py --list
# Search by tag (exact match)
python scripts/search_references.py --tag <tag>
# Search by keyword (across name, description, tags, and content)
python scripts/search_references.py --search <query>
Quick Lookup
- references/designer-apis-reference.md: All APIs and methods in one place (start here)
Detailed Guides
- references/create-webflow-extension-reference.md:
create-webflow-extensionscaffolding CLI - references/webflow-cli-reference.md: Webflow CLI for serving, bundling, and listing extensions
- references/elements-api.md: Element manipulation and presets
- references/styles-api.md: Styling, breakpoints, pseudo-states
- references/components-api.md: Component definitions and instances
- references/pages-api.md: Page and folder management
- references/variables-api.md: Design variables and collections
- references/assets-api.md: Asset upload and management
- references/extension-utilities.md: Site info, events, notifications, app discovery, authentication
- references/error-handling.md: Error codes and handling patterns
- references/design-guidelines.md: UI design for native Webflow look
- references/register-app.md: Registering a Webflow App and configuring capabilities
- references/marketplace-guidelines.md: Marketplace review criteria (safety, technical, design, branding)
- references/app-submission-and-listing.md: Submitting your app and creating an effective listing
- references/faq.md: FAQ and troubleshooting for extensions, marketplace, and common issues
Scripts
scripts/init-extension.sh: Quick project initialization wrapper aroundcreate-webflow-extensionscripts/validate-extension.py: Validate extension structure before bundlingscripts/search_references.py: Search reference files by tag, keyword, or list all with metadata
Assets
assets/webflow-variables.css: CSS variables for Webflow's design system colors, typography, and shadows
Best Practices
- Check element capabilities: Always verify
element.childrenbefore append/prepend,element.textContentbefore text operations - Handle errors gracefully: Use try/catch with
webflow.notify()for user feedback - Responsive design: Test on multiple breakpoints when setting styles
- Use variables: Leverage Webflow's CSS variables for consistent theming
- Subscribe to events: Use Designer events to keep extension state in sync
- Appropriate sizing: Use
webflow.resizeExtension()for proper panel dimensions