makepad-2.0-dsl
makepad dsl, script_mod!, makepad syntax, makepad property, makepad 2.0 syntax, colon syntax, merge operator, named instance, let binding, mod.widgets, register_widget, script_component, type_default, widgets_internal
npx skills add ZhangHanDong/makepad-skills --skill makepad-2.0-dsl --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Makepad 2.0 DSL Syntax Skill ## Overview Makepad 2.0 replaced the compile-time `live_design!` macro with the runtime `script_mod!` macro, powered by the Splash scripting language. This skill covers the complete DSL syntax, property system, registration patterns, and common pitfalls. ## Key Syntax Rules ### Property Assignment: Colon, NOT Equals ``` key: value // CORRECT - colon syntax key = value // WRONG - old 1.x syntax, no longer works ``` Properties are whitespace/newline separated. No commas between siblings. ``` View{ width: Fill height: Fit flow: Down spacing: 10 padding: 15 } ``` ### Named Instances: `:=` Operator Use `:=` to create addressable, named widget instances: ``` my_button := Button{ text: "Click me" } title := Label{ text: "Hello" } ``` Named instances are: - Addressable from Rust code via `id!(my_button)` or `ids!(my_button)` - Overridable via dot-path syntax: `MyTemplate{ title.text: "New text" }` - Stored in the script object's `vec` (not `map`) Regular properties use `:` and go into `map`: ``` width: Fill // regular property -> map label := Label{} // named child -> vec ``` ### Merge Operator: `+:` The `+:` operator extends/merges with the parent instead of
- Overview
- Key Syntax Rules
- Property Assignment: Colon, NOT Equals
- Named Instances: := Operator
- Merge Operator: +:
- Dot-Path Shorthand
- Let Bindings: Local Templates
- Spread Operator: ..
- Script Module Structure
- Basic App Structure
- Widget Definition Module
- Registration Patterns
- Widget Registration
- Component Registration
What does the makepad-2.0-dsl skill do?
makepad dsl, script_mod!, makepad syntax, makepad property, makepad 2.0 syntax, colon syntax, merge operator, named instance, let binding, mod.widgets, register_widget, script_component, type_default, widgets_internal
How do I install it?
Run `npx skills add ZhangHanDong/makepad-skills --skill makepad-2.0-dsl --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From ZhangHanDong/makepad-skills, a repository with 745 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
