--- name: makepad-dsl description: | CRITICAL: Use for Makepad DSL syntax and inheritance. Triggers on: makepad dsl, live_design, makepad inheritance, makepad prototype, "", "Foo = { }", makepad object, makepad property, makepad DSL 语法, makepad 继承, makepad 原型, 如何定义 makepad 组件 risk: safe source: community date_added: "2026-09-04" --- ## Supporting material availability This catalog copy contains the inline guidance below, but does not include the following supporting paths. They are external prerequisites, not bundled files: - `./references/dsl-syntax.md` - `./references/inheritance.md` Ask for the original supporting material or an existing installation before using a step that depends on these paths; this catalog does not identify a verified download source for them. Resolve each path relative to that installation, inspect its contents, and verify any applicable license and execution prerequisites. Do not run a command or claim a referenced procedure was followed until its required file exists. Do not fabricate the missing scripts or treat an unrelated file with the same name as equivalent. Independent steps fully documented here can proceed within the user’s authorized scope; report any dependent step as unavailable. # 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:** 1. Read the relevant reference file(s) listed above 2. 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 3. If reference file exists, incorporate its content into the answer ## Key Patterns ### 1. Anonymous Object ```rust { width: 100.0 height: 50.0 color: #FF0000 } ``` ### 2. Named Object (Prototype) ```rust MyButton = { width: Fit height: 40.0 padding: 10.0 draw_bg: { color: #333333 } } ``` ### 3. Inheritance with Override ```rust PrimaryButton = { draw_bg: { color: #0066CC } // Override parent color draw_text: { color: #FFFFFF } // Add new property } ``` ### 4. Widget Instantiation ```rust { // Inherits from View prototype width: Fill height: Fill