From antigravity-awesome-skills
Generates Makepad DSL code for widgets and explains syntax, inheritance, prototypes, property overrides in Rust makepad-widgets crate.
npx claudepluginhub sickn33/antigravity-awesome-skillsThis skill uses the workspace's default tool permissions.
> **Version:** makepad-widgets (dev branch) | **Last Updated:** 2026-01-19
Generates Makepad DSL code for widgets and explains syntax, inheritance, prototypes, property overrides in Rust makepad-widgets crate.
References Makepad 2.0 DSL syntax for script_mod!: colon properties, := named instances, +: merge operator, dot-path overrides, let bindings, widget registration.
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:
live_design! syntax, object definitions, or inheritance patterns.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