{"id":"92ee869b-2caa-45d3-8f90-f16c486e57e9","shortId":"G38KqA","kind":"skill","title":"makepad-splash","tagline":"CRITICAL: Use for Makepad Splash scripting language. Triggers on:\nsplash language, makepad script, makepad scripting, script!, cx.eval,\nmakepad dynamic, makepad AI, splash 语言, makepad 脚本","description":"# Makepad Splash Skill\n\n> **Version:** makepad-widgets (dev branch) | **Last Updated:** 2026-01-19\n>\n> Check for updates: https://crates.io/crates/makepad-widgets\n\nYou are an expert at Makepad Splash scripting language. Help users by:\n- **Writing Splash scripts**: Dynamic UI and workflow automation\n- **Understanding Splash**: Purpose, syntax, and capabilities\n\n## When to Use\n- You need dynamic scripting inside Makepad using Splash.\n- The task involves `script!`, `cx.eval`, runtime-generated UI, or workflow automation in Makepad.\n- You want guidance on Splash syntax and purpose rather than static Rust-only patterns.\n\n## Documentation\n\nRefer to the local files for detailed documentation:\n- `./references/splash-tutorial.md` - Splash language tutorial\n\n## IMPORTANT: Documentation Completeness Check\n\n**Before answering questions, Claude MUST:**\n\n1. Read the relevant reference file(s) listed above\n2. If file read fails or file is empty:\n   - Inform user: \"本地文档不完整，建议运行 `/sync-crate-skills makepad --force` 更新文档\"\n   - Still answer based on SKILL.md patterns + built-in knowledge\n3. If reference file exists, incorporate its content into the answer\n\n## What is Splash?\n\nSplash is Makepad's dynamic scripting language designed for:\n- AI-assisted workflows\n- Dynamic UI generation\n- Rapid prototyping\n- HTTP requests and async operations\n\n## Script Macro\n\n```rust\n// Embed Splash code in Rust\nscript!{\n    fn main() {\n        let x = 10;\n        console.log(\"Hello from Splash!\");\n    }\n}\n```\n\n## Execution\n\n```rust\n// Evaluate Splash code at runtime\ncx.eval(code_string);\n\n// With context\ncx.eval_with_context(code, context);\n```\n\n## Basic Syntax\n\n### Variables\n\n```splash\nlet x = 10;\nlet name = \"Makepad\";\nlet items = [1, 2, 3];\nlet config = { width: 100, height: 50 };\n```\n\n### Functions\n\n```splash\nfn add(a, b) {\n    return a + b;\n}\n\nfn greet(name) {\n    console.log(\"Hello, \" + name);\n}\n```\n\n### Control Flow\n\n```splash\n// If-else\nif x > 10 {\n    console.log(\"big\");\n} else {\n    console.log(\"small\");\n}\n\n// Loops\nfor i in 0..10 {\n    console.log(i);\n}\n\nwhile condition {\n    // ...\n}\n```\n\n## Built-in Objects\n\n### console\n\n```splash\nconsole.log(\"Message\");\nconsole.warn(\"Warning\");\nconsole.error(\"Error\");\n```\n\n### http\n\n```splash\n// GET request\nlet response = http.get(\"https://api.example.com/data\");\n\n// POST request\nlet response = http.post(\"https://api.example.com/data\", {\n    body: { key: \"value\" }\n});\n```\n\n### timer\n\n```splash\n// Set timeout\ntimer.set(1000, fn() {\n    console.log(\"1 second passed\");\n});\n\n// Set interval\nlet id = timer.interval(500, fn() {\n    console.log(\"tick\");\n});\n\n// Clear timer\ntimer.clear(id);\n```\n\n## Widget Interaction\n\n```splash\n// Access widgets\nlet button = ui.widget(\"my_button\");\nbutton.set_text(\"Click Me\");\nbutton.set_visible(true);\n\n// Listen to events\nbutton.on_click(fn() {\n    console.log(\"Button clicked!\");\n});\n```\n\n## Async Operations\n\n```splash\n// Async function\nasync fn fetch_data() {\n    let response = await http.get(\"https://api.example.com\");\n    return response.json();\n}\n\n// Call async\nfetch_data().then(fn(data) {\n    console.log(data);\n});\n```\n\n## AI Workflow Integration\n\nSplash is designed for AI-assisted development:\n\n```splash\n// Dynamic UI generation\nfn create_form(fields) {\n    let form = ui.create(\"View\");\n    for field in fields {\n        let input = ui.create(\"TextInput\");\n        input.set_label(field.label);\n        form.add_child(input);\n    }\n    return form;\n}\n\n// AI can generate this dynamically\ncreate_form([\n    { label: \"Name\" },\n    { label: \"Email\" },\n    { label: \"Message\" }\n]);\n```\n\n## Use Cases\n\n1. **Rapid Prototyping**: Quickly test UI layouts without recompilation\n2. **AI Agents**: Let AI generate and modify UI dynamically\n3. **Configuration**: Runtime configuration of app behavior\n4. **Scripted Workflows**: Automate repetitive tasks\n5. **Plugin System**: Extend app functionality with scripts\n\n## When Answering Questions\n\n1. Splash is for dynamic/runtime scripting, not core app logic\n2. Use Rust for performance-critical code, Splash for flexibility\n3. Splash syntax is similar to JavaScript/Rust hybrid\n4. Scripts run in a sandboxed environment\n5. HTTP and timer APIs enable async operations\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["makepad","splash","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-makepad-splash","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/makepad-splash","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34726 github stars · SKILL.md body (4,523 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T12:51:12.986Z","embedding":null,"createdAt":"2026-04-18T21:40:29.561Z","updatedAt":"2026-04-23T12:51:12.986Z","lastSeenAt":"2026-04-23T12:51:12.986Z","tsv":"'-01':41 '-19':42 '/crates/makepad-widgets':48 '/data':326,334 '/references/splash-tutorial.md':124 '/sync-crate-skills':159 '0':299 '1':137,257,346,467,510 '10':223,251,289,300 '100':263 '1000':343 '2':146,258,476,520 '2026':40 '3':173,259,486,531 '4':493,539 '5':499,546 '50':265 '500':354 'access':365 'add':269 'agent':478 'ai':24,197,413,421,452,477,480 'ai-assist':196,420 'answer':133,164,183,508 'api':550 'api.example.com':325,333,401 'api.example.com/data':324,332 'app':491,503,518 'ask':587 'assist':198,422 'async':208,388,391,393,405,552 'autom':68,97,496 'await':399 'b':271,274 'base':165 'basic':245 'behavior':492 'big':291 'bodi':335 'boundari':595 'branch':37 'built':170,306 'built-in':169,305 'button':368,371,386 'button.on':382 'button.set':372,376 'call':404 'capabl':74 'case':466 'check':43,131 'child':448 'clarif':589 'claud':135 'clear':358,562 'click':374,383,387 'code':215,232,236,243,527 'complet':130 'condit':304 'config':261 'configur':487,489 'consol':309 'console.error':315 'console.log':224,278,290,293,301,311,345,356,385,411 'console.warn':313 'content':180 'context':239,242,244 'control':281 'core':517 'crates.io':47 'crates.io/crates/makepad-widgets':46 'creat':429,457 'criteria':598 'critic':4,526 'cx.eval':20,90,235,240 'data':396,407,410,412 'describ':566 'design':194,418 'detail':122 'dev':36 'develop':423 'document':115,123,129 'dynam':22,64,80,191,200,425,456,485 'dynamic/runtime':514 'els':286,292 'email':462 'emb':213 'empti':154 'enabl':551 'environ':545,578 'environment-specif':577 'error':316 'evalu':230 'event':381 'execut':228 'exist':177 'expert':52,583 'extend':502 'fail':150 'fetch':395,406 'field':431,437,439 'field.label':446 'file':120,142,148,152,176 'flexibl':530 'flow':282 'fn':219,268,275,344,355,384,394,409,428 'forc':161 'form':430,433,451,458 'form.add':447 'function':266,392,504 'generat':93,202,427,454,481 'get':319 'greet':276 'guidanc':102 'height':264 'hello':225,279 'help':58 'http':205,317,547 'http.get':323,400 'http.post':331 'hybrid':538 'id':352,361 'if-els':284 'import':128 'incorpor':178 'inform':155 'input':441,449,592 'input.set':444 'insid':82 'integr':415 'interact':363 'interv':350 'involv':88 'item':256 'javascript/rust':537 'key':336 'knowledg':172 'label':445,459,461,463 'languag':10,14,57,126,193 'last':38 'layout':473 'let':221,249,252,255,260,321,329,351,367,397,432,440,479 'limit':554 'list':144 'listen':379 'local':119 'logic':519 'loop':295 'macro':211 'main':220 'makepad':2,7,15,17,21,23,27,29,34,54,83,99,160,189,254 'makepad-splash':1 'makepad-widget':33 'match':563 'messag':312,464 'miss':600 'modifi':483 'must':136 'name':253,277,280,460 'need':79 'object':308 'oper':209,389,553 'output':572 'pass':348 'pattern':114,168 'perform':525 'performance-crit':524 'permiss':593 'plugin':500 'post':327 'prototyp':204,469 'purpos':71,107 'question':134,509 'quick':470 'rapid':203,468 'rather':108 'read':138,149 'recompil':475 'refer':116,141,175 'relev':140 'repetit':497 'request':206,320,328 'requir':591 'respons':322,330,398 'response.json':403 'return':272,402,450 'review':584 'run':541 'runtim':92,234,488 'runtime-gener':91 'rust':112,212,217,229,522 'rust-on':111 'safeti':594 'sandbox':544 'scope':565 'script':9,16,18,19,56,63,81,89,192,210,218,494,506,515,540 'second':347 'set':340,349 'similar':535 'skill':31,557 'skill-makepad-splash' 'skill.md':167 'small':294 'source-sickn33' 'specif':579 'splash':3,8,13,25,30,55,62,70,85,104,125,186,187,214,227,231,248,267,283,310,318,339,364,390,416,424,511,528,532 'static':110 'still':163 'stop':585 'string':237 'substitut':575 'success':597 'syntax':72,105,246,533 'system':501 'task':87,498,561 'test':471,581 'text':373 'textinput':443 'tick':357 'timeout':341 'timer':338,359,549 'timer.clear':360 'timer.interval':353 'timer.set':342 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':570 'trigger':11 'true':378 'tutori':127 'ui':65,94,201,426,472,484 'ui.create':434,442 'ui.widget':369 'understand':69 'updat':39,45 'use':5,77,84,465,521,555 'user':59,156 'valid':580 'valu':337 'variabl':247 'version':32 'view':435 'visibl':377 'want':101 'warn':314 'widget':35,362,366 'width':262 'without':474 'workflow':67,96,199,414,495 'write':61 'x':222,250,288 '建议运行':158 '更新文档':162 '本地文档不完整':157 '脚本':28 '语言':26","prices":[{"id":"d9b07cd1-8337-4b16-9561-5ba0b70cd9b7","listingId":"92ee869b-2caa-45d3-8f90-f16c486e57e9","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:40:29.561Z"}],"sources":[{"listingId":"92ee869b-2caa-45d3-8f90-f16c486e57e9","source":"github","sourceId":"sickn33/antigravity-awesome-skills/makepad-splash","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/makepad-splash","isPrimary":false,"firstSeenAt":"2026-04-18T21:40:29.561Z","lastSeenAt":"2026-04-23T12:51:12.986Z"}],"details":{"listingId":"92ee869b-2caa-45d3-8f90-f16c486e57e9","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"makepad-splash","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34726,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"b92472a1e85d648d78a7e9980b644630d6bdd8d3","skill_md_path":"skills/makepad-splash/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/makepad-splash"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"makepad-splash","description":"CRITICAL: Use for Makepad Splash scripting language. Triggers on:\nsplash language, makepad script, makepad scripting, script!, cx.eval,\nmakepad dynamic, makepad AI, splash 语言, makepad 脚本"},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/makepad-splash"},"updatedAt":"2026-04-23T12:51:12.986Z"}}