From antigravity-awesome-skills
Assists with Makepad Splash scripting language for dynamic UI generation, workflow automation, and runtime script evaluation using script!, cx.eval, and built-in objects like http and timer.
How this skill is triggered — by the user, by Claude, or both
Slash command
/antigravity-awesome-skills:makepad-splashThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Version:** makepad-widgets (dev branch) | **Last Updated:** 2026-01-19
Version: makepad-widgets (dev branch) | Last Updated: 2026-01-19
Check for updates: https://crates.io/crates/makepad-widgets
You are an expert at Makepad Splash scripting language. Help users by:
script!, cx.eval, runtime-generated UI, or workflow automation in Makepad.Refer to the local files for detailed documentation:
./references/splash-tutorial.md - Splash language tutorialBefore answering questions, Claude MUST:
/sync-crate-skills makepad --force 更新文档"Splash is Makepad's dynamic scripting language designed for:
// Embed Splash code in Rust
script!{
fn main() {
let x = 10;
console.log("Hello from Splash!");
}
}
// Evaluate Splash code at runtime
cx.eval(code_string);
// With context
cx.eval_with_context(code, context);
let x = 10;
let name = "Makepad";
let items = [1, 2, 3];
let config = { width: 100, height: 50 };
fn add(a, b) {
return a + b;
}
fn greet(name) {
console.log("Hello, " + name);
}
// If-else
if x > 10 {
console.log("big");
} else {
console.log("small");
}
// Loops
for i in 0..10 {
console.log(i);
}
while condition {
// ...
}
console.log("Message");
console.warn("Warning");
console.error("Error");
// GET request
let response = http.get("https://api.example.com/data");
// POST request
let response = http.post("https://api.example.com/data", {
body: { key: "value" }
});
// Set timeout
timer.set(1000, fn() {
console.log("1 second passed");
});
// Set interval
let id = timer.interval(500, fn() {
console.log("tick");
});
// Clear timer
timer.clear(id);
// Access widgets
let button = ui.widget("my_button");
button.set_text("Click Me");
button.set_visible(true);
// Listen to events
button.on_click(fn() {
console.log("Button clicked!");
});
// Async function
async fn fetch_data() {
let response = await http.get("https://api.example.com");
return response.json();
}
// Call async
fetch_data().then(fn(data) {
console.log(data);
});
Splash is designed for AI-assisted development:
// Dynamic UI generation
fn create_form(fields) {
let form = ui.create("View");
for field in fields {
let input = ui.create("TextInput");
input.set_label(field.label);
form.add_child(input);
}
return form;
}
// AI can generate this dynamically
create_form([
{ label: "Name" },
{ label: "Email" },
{ label: "Message" }
]);
npx claudepluginhub sickn33/antigravity-awesome-skills --plugin antigravity-bundle-aas-mobile-app-builderAssists with writing and understanding Makepad Splash scripts for dynamic UI generation, workflow automation, HTTP requests, timers, and runtime evaluation via script! and cx.eval.
Guides Makepad 2.0 Splash scripting in Rust UI apps with script_mod!, syntax rules, state management, event handling, hot reload, and streaming evaluation.
Generates Makepad Rust app boilerplate with live_design!, app_main!, Cargo.toml setup, and event handling. Use for project initialization, getting started, and basic structure.