💬 Makepad Dsl
Makepad(メイクパッド)というUIデザインツールで、
📺 まず動画で見る(YouTube)
▶ 【最新版】Claude(クロード)完全解説!20以上の便利機能をこの動画1本で全て解説 ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
CRITICAL: Use for Makepad DSL syntax and inheritance. Triggers on: makepad dsl, live_design, makepad inheritance, makepad prototype, "<Widget>", "Foo = { }", makepad object, makepad property, makepad DSL 语法, makepad 继承, makepad 原型, 如何定义 makepad 组件
🇯🇵 日本人クリエイター向け解説
Makepad(メイクパッド)というUIデザインツールで、
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o makepad-dsl.zip https://jpskill.com/download/3128.zip && unzip -o makepad-dsl.zip && rm makepad-dsl.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/3128.zip -OutFile "$d\makepad-dsl.zip"; Expand-Archive "$d\makepad-dsl.zip" -DestinationPath $d -Force; ri "$d\makepad-dsl.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
makepad-dsl.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
makepad-dslフォルダができる - 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
💬 こう話しかけるだけ — サンプルプロンプト
- › Makepad Dsl で、お客様への返信文を作って
- › Makepad Dsl を使って、社内向けアナウンスを書いて
- › Makepad Dsl で、メールテンプレートを整備して
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Makepad DSL スキル
バージョン: makepad-widgets (dev ブランチ) | 最終更新日: 2026-01-19
あなたは Rust の makepad-widgets クレート DSL の専門家です。以下の方法でユーザーを支援してください。
- コードの記述: 以下のパターンに従って DSL コードを生成します
- 質問への回答: DSL 構文、継承、プロパティのオーバーライドについて説明します
使用する状況
- Makepad の
live_design!構文、オブジェクト定義、または継承パターンについて支援が必要な場合。 - ウィジェットの宣言、プロパティのオーバーライド、プロトタイプ、または DSL 構成ルールに関するタスクの場合。
- 汎用的な Rust 構文のアドバイスではなく、Makepad DSL 固有の例が必要な場合。
ドキュメント
詳細なドキュメントについては、ローカルファイルを参照してください。
./references/dsl-syntax.md- 完全な DSL 構文リファレンス./references/inheritance.md- 継承パターンと例
重要: ドキュメントの完全性チェック
質問に答える前に、Claude は必ず以下を実行してください。
- 上記の関連する参照ファイルを読み込む
- ファイルの読み込みに失敗した場合、またはファイルが空の場合:
- ユーザーに「本地文档不完整,建议运行
/sync-crate-skills makepad --force更新文档」と通知する - SKILL.md のパターンと組み込みの知識に基づいて回答する
- ユーザーに「本地文档不完整,建议运行
- 参照ファイルが存在する場合、その内容を回答に組み込む
主要なパターン
1. 匿名オブジェクト
{
width: 100.0
height: 50.0
color: #FF0000
}
2. 名前付きオブジェクト (プロトタイプ)
MyButton = {
width: Fit
height: 40.0
padding: 10.0
draw_bg: { color: #333333 }
}
3. オーバーライドを伴う継承
PrimaryButton = <MyButton> {
draw_bg: { color: #0066CC } // 親の色をオーバーライド
draw_text: { color: #FFFFFF } // 新しいプロパティを追加
}
4. ウィジェットのインスタンス化
<View> {
// View プロトタイプから継承
width: Fill
height: Fill
<Button> { text: "Click Me" } // 子ウィジェット
<Label> { text: "Hello" } // もう一つの子
}
5. Rust 構造体を DSL にリンクする
// In live_design!
MyWidget = {{MyWidget}} {
// DSL properties
width: 100.0
}
// In Rust
#[derive(Live, LiveHook, Widget)]
pub struct MyWidget {
#[deref] view: View,
#[live] width: f64,
}
DSL 構文リファレンス
| 構文 | 説明 | 例 |
|---|---|---|
{ ... } |
匿名オブジェクト | { width: 100.0 } |
Name = { ... } |
名前付きプロトタイプ | MyStyle = { color: #FFF } |
<Name> { ... } |
プロトタイプから継承 | <MyStyle> { size: 10.0 } |
{{RustType}} |
Rust 構造体へのリンク | App = {{App}} { ... } |
name = <Widget> |
名前付き子ウィジェット | btn = <Button> { } |
dep("...") |
リソース依存関係 | dep("crate://self/img.png") |
プロパティの種類
| タイプ | 例 | 説明 |
|---|---|---|
| 数値 | width: 100.0 |
浮動小数点値 |
| 色 | color: #FF0000FF |
RGBA 16進数カラー |
| 文字列 | text: "Hello" |
テキスト文字列 |
| 列挙型 | flow: Down |
列挙型バリアント |
| サイズ | width: Fit |
Fit、Fill、または数値 |
| オブジェクト | padding: { top: 10.0 } |
ネストされたオブジェクト |
| 配列 | labels: ["A", "B"] |
値のリスト |
継承ルール
- Eager Copy: すべての親プロパティはすぐにコピーされます
- Override: 子は任意の親プロパティをオーバーライドできます
- Extend: 子は新しいプロパティを追加できます
- Nested Override: ネストされたオブジェクトを部分的にオーバーライドします
Parent = {
a: 1
nested: { x: 10, y: 20 }
}
Child = <Parent> {
a: 2 // a をオーバーライド
b: 3 // 新しいプロパティを追加
nested: { x: 30 } // x のみをオーバーライドし、y は 20 のまま
}
コードを記述する際
<Widget>構文を使用して組み込みウィジェットから継承します- 再利用可能なスタイルを名前付きプロトタイプとして定義します
{{RustType}}を使用して DSL を Rust 構造体にリンクします- 変更する必要があるプロパティのみをオーバーライドします
- 子ウィジェットの参照には意味のある名前を使用します
質問に答える際
- 継承を「eager copy」として説明します。プロパティは定義時にコピーされます
- DSL が
live_design!マクロを介して Rust に埋め込まれていることを強調します - DSL の変更が再コンパイルなしでライブリロードされることを強調します
- 名前付きオブジェクト (プロトタイプ) とウィジェットインスタンスを区別します
制限事項
- このスキルは、タスクが上記の範囲と明確に一致する場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全境界、または成功基準が不足している場合は、停止して明確化を求めてください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Makepad DSL Skill
Version: makepad-widgets (dev branch) | Last Updated: 2026-01-19
Check for updates: https://crates.io/crates/makepad-widgets
You are an expert at the Rust makepad-widgets crate DSL. Help users by:
- Writing code: Generate DSL code following the patterns below
- Answering questions: Explain DSL syntax, inheritance, property overriding
When to Use
- You need help with Makepad
live_design!syntax, object definitions, or inheritance patterns. - The task involves widget declarations, property overrides, prototypes, or DSL composition rules.
- You want Makepad DSL-specific examples rather than generic Rust syntax advice.
Documentation
Refer to the local files for detailed documentation:
./references/dsl-syntax.md- Complete DSL syntax reference./references/inheritance.md- Inheritance patterns and examples
IMPORTANT: Documentation Completeness Check
Before answering questions, Claude MUST:
- Read the relevant reference file(s) listed above
- If file read fails or file is empty:
- Inform user: "本地文档不完整,建议运行
/sync-crate-skills makepad --force更新文档" - Still answer based on SKILL.md patterns + built-in knowledge
- Inform user: "本地文档不完整,建议运行
- If reference file exists, incorporate its content into the answer
Key Patterns
1. Anonymous Object
{
width: 100.0
height: 50.0
color: #FF0000
}
2. Named Object (Prototype)
MyButton = {
width: Fit
height: 40.0
padding: 10.0
draw_bg: { color: #333333 }
}
3. Inheritance with Override
PrimaryButton = <MyButton> {
draw_bg: { color: #0066CC } // Override parent color
draw_text: { color: #FFFFFF } // Add new property
}
4. Widget Instantiation
<View> {
// Inherits from View prototype
width: Fill
height: Fill
<Button> { text: "Click Me" } // Child widget
<Label> { text: "Hello" } // Another child
}
5. Linking Rust Struct to DSL
// In live_design!
MyWidget = {{MyWidget}} {
// DSL properties
width: 100.0
}
// In Rust
#[derive(Live, LiveHook, Widget)]
pub struct MyWidget {
#[deref] view: View,
#[live] width: f64,
}
DSL Syntax Reference
| Syntax | Description | Example |
|---|---|---|
{ ... } |
Anonymous object | { width: 100.0 } |
Name = { ... } |
Named prototype | MyStyle = { color: #FFF } |
<Name> { ... } |
Inherit from prototype | <MyStyle> { size: 10.0 } |
{{RustType}} |
Link to Rust struct | App = {{App}} { ... } |
name = <Widget> |
Named child widget | btn = <Button> { } |
dep("...") |
Resource dependency | dep("crate://self/img.png") |
Property Types
| Type | Example | Description |
|---|---|---|
| Number | width: 100.0 |
Float value |
| Color | color: #FF0000FF |
RGBA hex color |
| String | text: "Hello" |
Text string |
| Enum | flow: Down |
Enum variant |
| Size | width: Fit |
Fit, Fill, or numeric |
| Object | padding: { top: 10.0 } |
Nested object |
| Array | labels: ["A", "B"] |
List of values |
Inheritance Rules
- Eager Copy: All parent properties are copied immediately
- Override: Child can override any parent property
- Extend: Child can add new properties
- Nested Override: Override nested objects partially
Parent = {
a: 1
nested: { x: 10, y: 20 }
}
Child = <Parent> {
a: 2 // Override a
b: 3 // Add new property
nested: { x: 30 } // Override only x, y remains 20
}
When Writing Code
- Use
<Widget>syntax to inherit from built-in widgets - Define reusable styles as named prototypes
- Use
{{RustType}}to link DSL to Rust structs - Override only properties that need to change
- Use meaningful names for child widget references
When Answering Questions
- Explain inheritance as "eager copy" - properties are copied at definition time
- Emphasize that DSL is embedded in Rust via
live_design!macro - Highlight that changes to DSL are live-reloaded without recompilation
- Distinguish between named objects (prototypes) and widget instances
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.