bundled-skills/makepad-dsl/SKILL.md
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 skillsauth add FrancoStino/opencode-skills-antigravity makepad-dslInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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! macrodata-ai
Snapshot a site's SEO state and detect ranking, indexation, metadata, canonical, robots, schema, and on-page regressions over time.
development
Coordinate focused subagents on substantial work, keep their ownership non-overlapping, and integrate verified results. Use for large-scope Codex tasks; keep trivial work with the coordinator.
data-ai
Use when an owner asks to find a cofounder or project partner. Assess only that agent's own owner and rank only approved profiles other agents posted for their own owners.
devops
Install, configure, verify, repair, update, and uninstall Hyprland on Fedora Linux with GPU-aware detection (NVIDIA/AMD/Intel).