Makepad 2.0 Design Judgment logo

Makepad 2.0 Design Judgment

Community
ZhangHanDong
makepad-2.0-design-judgment

CRITICAL: Entry-level skill for Makepad 2.0 GUI development. This is the FIRST skill to load for any Makepad task — it provides design judgment anchors ABOVE the other 13 Makepad 2.0 skills. Triggers on: makepad, makepad app, makepad project, makepad design, live_design!, app_main!, script_mod!, Cx, WidgetRef, Widget, makepad-widgets, makepad architecture, makepad how to, "how should I", "should I use", "what's the best way", makepad 架构, makepad 设计, makepad 怎么做, makepad 最佳实践, 组件拆分, 状态管理, 数据流, 渲染思维

Overview

PublisherZhangHanDong
Repositorymakepad-skills
Skill namemakepad-2.0-design-judgment
Stars
748
Forks
88
Bundled files
1
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by ZhangHanDong on GitHub. Read the source before you install it.

Installation

Install the Makepad 2.0 Design Judgment AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/ZhangHanDong/makepad-skills/tree/main/skills/makepad-2.0-design-judgment
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/ZhangHanDong/makepad-skills.git /tmp/makepad-skills
mkdir -p .claude/skills
cp -r /tmp/makepad-skills/skills/makepad-2.0-design-judgment .claude/skills/makepad-2.0-design-judgment
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Makepad 2.0 Design Judgment in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Makepad 2.0 Design Judgment on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Makepad 2.0 Design Judgment is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Makepad 2.0 Design Judgment Skill

Role: Entry-level routing + design judgment anchors for Makepad 2.0 development. Relationship to other skills: This skill is the liberation layer (释放层). The other 13 Makepad 2.0 skills are the compliance layer (服从层) — they provide DSL syntax, API patterns, widget catalogs. Don't argue with them. Obey them. This skill provides conceptual anchors for design decisions that have no single correct answer.

How This Skill Works

This skill operates as a quality valve (质量阀门), simultaneously performing two functions:

  • Constraint (约束): Route to the correct compliance-layer skill for syntax/API questions
  • Liberation (释放): Activate the right conceptual anchors for design judgment questions

Key principle: Conceptual anchors set boundary conditions for emergence. They don't instruct the model what to output — they shape the space in which good output emerges. Rules tell you "don't do X". Anchors tell you "think like Y".


Step 1: Route to Compliance Layer

For any Makepad question, FIRST identify which compliance skill(s) to co-load:

Question DomainCo-load Skill
App setup, Cargo.toml, hot reload, app_main!makepad-2.0-app-structure
DSL syntax, script_mod!, property systemmakepad-2.0-dsl
Width, height, Flow, Fill, Fit, spacingmakepad-2.0-layout
Widget catalog, View, Button, Label, PortalListmakepad-2.0-widgets
Events, actions, on_click, handle_eventmakepad-2.0-events
Animator, hover, pressed, state transitionsmakepad-2.0-animation
draw_bg, Sdf2d, pixel fn, GPU shadersmakepad-2.0-shaders
Splash scripting, script_mod!, hot reloadmakepad-2.0-splash
Theme colors, fonts, dark/light modemakepad-2.0-theme
Vector graphics, SVG, gradients, tweensmakepad-2.0-vector
Performance, GC, draw batching, profilingmakepad-2.0-performance
Errors, bugs, widget not showing, FAQmakepad-2.0-troubleshooting
Migrating from 1.x to 2.0makepad-2.0-migration

Always co-load at least one compliance skill. This skill alone is not enough — it provides judgment, not syntax.


Step 2: Apply Design Judgment Anchors

When the question involves HOW to organize, structure, or design (not just WHAT syntax to use), apply these conceptual anchors. Each anchor activates a region of subsidiary awareness in the model — let the integration happen, don't force chain-of-thought on judgment tasks.

Anchor 1: Data Flow — Elm Architecture (Evan Czaplicki)

  • State is centralized. UI is a projection of state. Events trigger updates.
  • Makepad's MatchEvent::handle_actions IS Elm's update function.
  • Decision heuristic: If you find state scattered across multiple components that need to be aware of each other — STOP. Lift state to a common ancestor.
  • Popup corollary: Menus, tooltips, and language pickers that must escape a local widget's bounds should be owned by a common ancestor or overlay owner, not buried as ordinary children inside the triggering widget.
  • External reality to obey: Makepad's event system is the arbiter. Cx::post_action + SignalToUI is the canonical async→UI bridge. Don't invent alternatives.

Anchor 2: Component Split — Dan Abramov (Presentational vs Container)

  • Presentational components: Only receive live properties. No state. No side effects. In Makepad: widgets with #[live] fields and #[deref] view: View delegation.
  • Container components: Own state, handle events, coordinate children. In Makepad: widgets with #[rust] fields that hold business state.
  • Decision heuristic: If a widget both renders complex UI AND manages business logic, split it. The #[deref] delegation pattern exists precisely for this.

Anchor 3: Rendering Mental Model — Casey Muratori (Handmade Hero)

  • This is NOT a DOM. It's a GPU surface redrawn every frame.
  • Don't think "modify a node." Think "what do I paint next frame."
  • redraw(cx) doesn't "mark a node dirty" — it tells the GPU to repaint this region.
  • Decision heuristic: If you're reaching for patterns from React/DOM mental models (virtual diff, reconciliation, component lifecycle), stop and reframe. The question is always: "what does the next frame look like?"

Anchor 4: Layout — CSS Flexbox (but simpler and self-contained)

  • Flow.Down = flex-direction: column. Flow.Right = flex-direction: row.
  • align, spacing, padding, margin — semantics match CSS.
  • Critical difference: Makepad has NO cascade, NO inheritance of styles. Each component's style is self-contained. This is a strength, not a limitation.
  • Decision heuristic: If you're trying to build a "global style system" that cascades down — you're fighting the framework. Use themes (mod.themes) instead.

Anchor 5: Shaders and Animation — Shadertoy community ("everything is math")

  • draw_bg / draw_text are real GPU shaders, not CSS properties.
  • Sdf2d is signed distance fields — describe shapes with math, not bitmaps.
  • Animation = shader uniforms changing over time, not CSS transitions.
  • Decision heuristic: "How do I make a rounded button?" → Answer is an SDF function, not border-radius. "How do I animate opacity?" → Answer is a uniform interpolating between 0.0 and 1.0 in the shader, not a CSS animation.

Anchor 6: Cross-Platform — Flutter ("own every pixel")

  • Makepad draws everything itself. No platform native controls.
  • Benefit: pixel-perfect cross-platform consistency.
  • Cost: accessibility is a known weakness.
  • Decision heuristic: Don't try to mimic native control appearance. Embrace Makepad's own design language. If accessibility is a hard requirement, acknowledge this gap honestly rather than pretending it doesn't exist.

Step 3: The Compliance-Liberation Workflow

1. READ the user's question
2. ROUTE to compliance skill(s) — confirm DSL syntax and API patterns
3. APPLY judgment anchors — for architecture and design decisions
4. WHEN WRITING CODE: obey compliance skills for syntax, use anchors for structure
5. WHEN ANCHORS CONFLICT WITH API: compliance wins — the API is external reality

The compliance layer is what Polanyi calls "external reality" (外部实在). You serve it, not the user's preferences. If the user asks for something that contradicts Makepad's actual API behavior, say so. Don't be sycophantic.


Anti-Sycophancy Protocol

When answering Makepad design questions:

  • Don't write "that's a great approach!" before pointing out problems.
  • Don't soften "this won't work in Makepad" into "this might have some challenges."
  • Do anchor to external reality: "Makepad's event system requires X, so your approach of Y won't work. Here's what works instead, verified against the API."
  • Do acknowledge gaps honestly: "Makepad 2.0 doesn't have a built-in solution for this. Here are workarounds, with their trade-offs."

Quality Check: Unpredictable Depth

After generating a response, self-check:

"Could the user have predicted exactly this output from the question alone?"

  • If yes → you over-constrained. You're being a find-and-replace tool. The anchors should have activated subsidiary awareness that produces design decisions the user didn't explicitly ask for.
  • If no, but the user can judge whether it's good → correct balance. Emergence happened within well-shaped boundary conditions.

Reference: Skill Ecosystem

This skill sits at the top of a 14-skill stack:

┌─────────────────────────────────────────┐
│  makepad-2.0-design-judgment (this)     │  ← Liberation layer: WHY & HOW to design
├─────────────────────────────────────────┤
│  makepad-2.0-app-structure              │
│  makepad-2.0-dsl                        │
│  makepad-2.0-layout                     │
│  makepad-2.0-widgets                    │
│  makepad-2.0-events                     │  ← Compliance layer: WHAT syntax to use
│  makepad-2.0-animation                  │
│  makepad-2.0-shaders                    │
│  makepad-2.0-splash                     │
│  makepad-2.0-theme                      │
│  makepad-2.0-vector                     │
│  makepad-2.0-performance                │
│  makepad-2.0-troubleshooting            │
│  makepad-2.0-migration                  │
└─────────────────────────────────────────┘

When in doubt: compliance skills answer "what does the API do?" This skill answers "what should I build with it?"

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Makepad 2.0 Design Judgment AI skill do?

CRITICAL: Entry-level skill for Makepad 2.0 GUI development. This is the FIRST skill to load for any Makepad task — it provides design judgment anchors ABOVE the other 13 Makepad 2.0 skills. Triggers on: makepad, makepad app, makepad project, makepad design, live_design!, app_main!, script_mod!, Cx, WidgetRef, Widget, makepad-widgets, makepad architecture, makepad how to, "how should I", "should I use", "what's the best way", makepad 架构, makepad 设计, makepad 怎么做, makepad 最佳实践, 组件拆分, 状态管理, 数据流, 渲染思维

Why use Makepad 2.0 Design Judgment on TypingMind?

Because you install it once and use it with any model. Makepad 2.0 Design Judgment is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Makepad 2.0 Design Judgment in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/ZhangHanDong/makepad-skills/tree/main/skills/makepad-2.0-design-judgment. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Makepad 2.0 Design Judgment?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Makepad 2.0 Design Judgment?

As many as you like. As long as a model supports skills, you can use Makepad 2.0 Design Judgment with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Makepad 2.0 Design Judgment AI skill free?

It is published on GitHub by ZhangHanDong. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇