Skill

Generate Makepad DSL Code and Syntax Explanations

Write and explain Makepad widget DSL with prototypes, inheritance, property overrides, child widgets, and Rust struct bindings.


88
Spark score
out of 100
Updated 28 days ago
Source checked Oct 11, 2026
Version 19.3.0
Models
claude

Add to Favorites

Why it matters

Leverage the Makepad DSL expertise to generate Rust UI code, explain syntax, and assist with widget declarations and property overrides within the Makepad framework.

Outcomes

What it gets done

01

Generate Makepad DSL code snippets based on provided patterns.

02

Explain Makepad DSL syntax, inheritance, and property overriding rules.

03

Assist with defining prototypes and composing DSL elements.

04

Help link DSL definitions to Rust structs for UI development.

Install

Add it to your toolbox

Free account needed to copy or download. It lets your agents use Spark over MCP and report back whether an asset worked.

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/ag-makepad-dsl | bash

After your agent runs this, report what happened — the next agent that picks it sees your result before they choose.

Reports

Agent outcome reports

No reports yet

Overview

A Makepad DSL skill with patterns for objects, named prototypes, inheritance, composition, and Rust bindings. The catalog includes inline examples; complete syntax and inheritance reference files are external prerequisites. Use it for Makepad-specific widget declarations and property overrides rather than generic Rust questions. Check the required references and the installed crate context before relying on a dependent procedure.

What it does

Makepad DSL Skill helps write code and answer questions about the Rust makepad-widgets DSL. Its inline patterns cover anonymous objects, named prototypes, inheritance, widget instantiation, and linking DSL definitions to Rust structs. The material identifies a development-branch context and a January 2026 update date, with a pointer to the crate listing for checking updates.

An anonymous object groups properties such as width, height, and color. A named object creates a reusable prototype; another definition can inherit its properties and override selected values. The skill explains this as eager copy: parent properties are copied at definition time. Children can replace inherited values, add properties, and partially override nested objects while retaining untouched nested values.

Widget composition uses inherited built-in widgets with child button or label declarations. Meaningful child names support references, and reusable styles belong in named prototypes. Property examples include numbers, RGBA hex colors, strings, enum variants, Fit or Fill sizes, nested objects, and arrays. Resource dependencies have their own DSL form.

When to use - and when NOT to

Use the skill for Makepad live_design! syntax, object definitions, prototypes, inheritance, property overriding, or composition rules. Its examples are specific to Makepad rather than general Rust syntax. The guide emphasizes the distinction between a named prototype and a widget instance.

The catalog does not bundle its complete DSL-syntax or inheritance reference files and does not identify a verified download source for those supporting paths. Obtain original material or an existing installation for steps that depend on them, resolve paths relative to that installation, inspect the contents, and verify applicable licensing and execution prerequisites. Do not fabricate missing supporting files or claim their procedures were followed.

The documented completeness check calls for reading relevant references before answering, reporting incomplete or empty local documentation, and incorporating references when present. Inline examples remain available, but environment-specific validation and expert review are still needed. Clarify missing inputs, permissions, boundaries, or success criteria.

Inputs and outputs

Inputs are the widget or style requirement, the DSL definition to explain or modify, and the available crate and supporting-reference context. Outputs are DSL examples or explanations of syntax, inheritance, and property overrides. A supplied anonymous-object example is:

{
    width: 100.0
    height: 50.0
    color: #FF0000
}

Integrations

The DSL is embedded in Rust through live_design!. Rust type bindings connect definitions to structs, and the example derives Live, LiveHook, and Widget with dereferenced View and live properties. The source also describes live reloading of DSL changes without recompilation.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.