MR
Mayur Rathi
@sickn33
⭐ 47.3k GitHub stars

makepad-2-0-layout

makepad-2-0-layout is an code AI skill with a core value of Makepad 2. It helps developers solve real-world problems in the code domain, boosting efficiency, automating repetitive tasks, and optimizing workflows.

Makepad 2.0 guidance for layout; use when building or debugging Makepad UI code.

Last verified on: 2026-10-06

Quick Facts

Category code
Works With Claude
Source sickn33/antigravity-awesome-skills
Stars ⭐ 47.3k
Last Verified 2026-10-06
Risk Level Low
mkdir -p ./skills/makepad-2-0-layout && curl -sfL https://raw.githubusercontent.com/sickn33/antigravity-awesome-skills/main/skills/makepad-2-0-layout/SKILL.md -o ./skills/makepad-2-0-layout/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

Limitations


- Verify against current Makepad 2.0 docs; upstream APIs change frequently.

- Do not run bundled scripts without explicit user approval.


When to Use

- Use when this upstream workflow matches the user's stated goal.

- Use when the task requires the procedures documented in this skill.


# Makepad 2.0 Layout System


Makepad uses a **layout turtle** system -- not CSS flexbox, not CSS grid. The turtle walks

through children one by one, placing each widget according to two core concepts:


- **Walk** -- how a widget sizes itself (width, height, margin)

- **Layout** -- how a container arranges its children (flow, spacing, padding, align)


Every container widget (View, SolidView, RoundedView, ScrollYView, etc.) has both Walk

properties (its own size) and Layout properties (how it lays out children).


---


Walk System (Widget Sizing)


Walk controls how an individual widget claims space inside its parent.


width / height


| Syntax | Meaning |

|--------|---------|

| `width: Fill` | Fill all remaining horizontal space (default) |

| `width: Fit` | Shrink to fit content |

| `width: 200` | Fixed 200 pixels |

| `width: Fill{min: 100 max: 500}` | Fill with constraints |

| `width: Fit{max: Abs(300)}` | Fit content, capped at 300px |

| `height: Fill` | Fill all remaining vertical space (default) |

| `height: Fit` | Shrink to fit content |

| `height: 100` | Fixed 100 pixels |


text
use mod.prelude.widgets.*

// Fill: takes all available width
View{
    width: Fill height: Fit
    flow: Down
    Label{text: "I stretch to fill the width"}
}

// Fit: shrinks to content
View{
    width: Fit height: Fit
    padding: 10
    Label{text: "I am only as wide as this text"}
}

// Fixed: exact pixel size
View{
    width: 300 height: 200
    Label{text: "I am exactly 300x200 pixels"}
}

// Constrained Fill: fills but within bounds
View{
    width: Fill{min: 200 max: 600} height: Fit
    flow: Down padding: 16
    Label{text: "I fill available space but stay between 200-600px"}
}

CRITICAL: height: Fit on Containers


**This is the number one layout bug in Makepad.**


The default height is `Fill`. When your output renders inside a `Fit` container,

`Fill` inside `Fit` creates a circular dependency and resolves to **0 pixels**.

Your entire UI becomes invisible.


**Rule: ALWAYS set `height: Fit` on every View, SolidView, RoundedView, and similar

container unless the parent has a fixed or Fill height.**


text
// CORRECT -- height: Fit makes the container visible
View{
    width: Fill height: Fit
    flow: Down padding: 10
    Label{text: "I am visible"}
}

// WRONG -- defaults to height: Fill, resolves to 0px, invisible
View{
    width: Fill
    flow: Down padding: 10
    Label{text: "I am invisible (0px tall)"}
}

**Exceptions where height: Fill is acceptable:**

1. Inside a fixed-height parent:

text
View{
    height: 400
    View{
        height: Fill
        Label{text: "I fill the 400px parent"}
    }
}

2. Inside a `height: Fill` chain that ultimately reaches a known size (e.g., Window body).

3. ScrollYView always uses `height: Fill` because it must fill its parent to scroll.


margin


Margin adds space around the outside of a widget.


text
// Uniform margin on all sides
Label{text: "Hello" margin: 10}

// Selective margin with Inset
Label{
    text: "Indented"
    margin: Inset{top: 5 bottom: 5 left: 20 right: 20}
}

// Zero margin (note the trailing dot for float literal)
Label{text: "Flush" margin: 0.}

---


Layout System (Child Arrangement)


Layout controls how a container positions its children.


flow (Direction)


| Syntax | Meaning | CSS Equivalent |

|--------|---------|----------------|

| `flow: Right` | Left-to-right, single line (default) | `flex-direction: row` |

| `flow: Down` | Top-to-bottom, single column | `flex-direction: column` |

| `flow: Overlay` | Stack children on top of each other | `position: absolute` stacking |

| `flow: Flow.Right{wrap: true}` | Left-to-right with wrapping | `flex-wrap:

🎯 Best For

  • Debugging engineers
  • QA teams
  • UI designers
  • Product designers
  • Claude users

💡 Use Cases

  • Tracing runtime errors in production logs
  • Identifying memory leaks
  • Generating component mockups
  • Creating design system tokens

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply makepad-2-0-layout to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Can this debug production issues?

Yes, but always ensure you have proper logging and monitoring in place first.

Does this work with Figma?

Some design skills integrate with Figma plugins. Check the Works With section for supported tools.

Is makepad-2-0-layout compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for makepad-2-0-layout?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

How do I install makepad-2-0-layout?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/makepad-2-0-layout/SKILL.md, ready to use.

⚠️ Common Mistakes to Avoid

Debugging without context

Always provide the full error stack and surrounding code context for accurate debugging.

Skipping usability testing

AI-generated designs should be validated with real users before development.

Skipping validation

Always test AI-generated code changes, even for simple refactors.

Missing dependency updates

Check if the skill requires updated dependencies or new packages.

🔗 Related Skills