From antigravity-awesome-skills
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 组件
npx claudepluginhub mit-network/antigravity-awesome-skillsThis skill uses the workspace's default tool permissions.
> **Version:** makepad-widgets (dev branch) | **Last Updated:** 2026-01-19
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
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:
Refer to the local files for detailed documentation:
./references/dsl-syntax.md - Complete DSL syntax reference./references/inheritance.md - Inheritance patterns and examplesBefore answering questions, Claude MUST:
/sync-crate-skills makepad --force 更新文档"{
width: 100.0
height: 50.0
color: #FF0000
}
MyButton = {
width: Fit
height: 40.0
padding: 10.0
draw_bg: { color: #333333 }
}
PrimaryButton = <MyButton> {
draw_bg: { color: #0066CC } // Override parent color
draw_text: { color: #FFFFFF } // Add new property
}
<View> {
// Inherits from View prototype
width: Fill
height: Fill
<Button> { text: "Click Me" } // Child widget
<Label> { text: "Hello" } // Another child
}
// 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,
}
| 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") |
| 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 |
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
}
<Widget> syntax to inherit from built-in widgets{{RustType}} to link DSL to Rust structslive_design! macro