makepad-2.0-troubleshooting

Diagnose and fix common Makepad 2.0 and Splash scripting errors and rendering pitfalls.

747|87|Updated Jan 10, 2026
One-click install
npx skills add https://github.com/ZhangHanDong/makepad-skills --skill makepad-2-0-troubleshooting
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: makepad-2.0-troubleshooting
Source: https://github.com/ZhangHanDong/makepad-skills/tree/main/skills/makepad-2.0-troubleshooting
Command: npx skills add https://github.com/ZhangHanDong/makepad-skills --skill makepad-2-0-troubleshooting

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Building UIs with Makepad 2.0 and the Splash scripting language involves many silent failure modes—invisible text, zero-height containers, ignored property overrides, and cryptic compile errors—that are hard to debug without deep framework knowledge. This Skill maps each symptom to its root cause and provides the exact corrected code.

Core Features & Use Cases

  • 25+ Documented Pitfalls: Covers layout failures (height: Fit vs Fill), GPU draw batching issues (new_batch), named child overrides (:= vs :), hex color parsing (#x prefix), animator limitations, and Modal/MapView quirks.
  • Error-to-Solution Reference: Maps compile errors (missing Live derive, live_design! macro, DefaultNone) and runtime failures (widget registration order, match_event not called) to concrete fixes, including a full Makepad 1.x to 2.0 migration checklist.
  • Visual Debugging Flowcharts: Decision trees for symptoms like "nothing renders" or "text not visible", plus diagnostic techniques such as temporary debug borders and the ~ script logging operator.
  • Use Case: Your Makepad app shows a colored card but the label text is invisible. The Skill identifies the missing new_batch: true on the background container and provides the corrected Splash code.

Quick Start

Ask the assistant to diagnose why your Makepad 2.0 UI text is invisible or why a widget click handler never fires, and apply the recommended fix.

Frequently Asked Questions about makepad-2.0-troubleshooting

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why is my Makepad UI invisible or rendering with zero height?

View containers default to height: Fill, which resolves to 0px inside a Fit parent due to circular dependency. Add height: Fit to every container that should shrink-wrap its children, unless it sits inside a fixed-height ancestor.

How do I fix invisible text on a colored background in Makepad?

Add new_batch: true to any container with show_bg: true (or SolidView/RoundedView) that contains text. Without it, GPU draw batching can render the text behind the opaque background. Also verify draw_text.color contrasts with the background.

How do I migrate Makepad 1.x live_design code to 2.0?

Replace live_design! with script_mod!, #[derive(Live, LiveHook)] with #[derive(Script, ScriptHook)], live! with script_apply_eval!, and (THEME_COLOR_X) with theme.color_x. The Skill includes a complete 20-step migration checklist with before/after code.

Why does my Makepad hex color like #2ecc71 cause a parse error?

The Rust tokenizer reads the digit followed by 'e' as scientific notation, producing an 'expected digit in exponent' error. Use the #x prefix for any hex color containing the letter e, such as #x2ecc71.

Why is my Makepad button click handler never called?

The MatchEvent trait's handle_actions only fires if you call self.match_event(cx, event) inside AppMain::handle_event. Add that call before or after self.ui.handle_event(cx, event, &mut Scope::empty()).

Why is my Makepad widget property override silently ignored?

Overrides fail when the child was declared with : instead of :=, since only := creates an addressable named child. Every container in the path from root to the child must also be named for dot-path overrides to work.