Pular para o conteúdo
Skillpedia
Sites e telas (frontend)48 mil · #3528

makepad-2-0-layout

Faz seu agente gerenciar o layout no Makepad 2.0. É útil para organizar elementos visuais ao construir ou corrigir interfaces de usuário.

O que ela faz

Este agente ajuda você a organizar elementos visuais (layout) em seus aplicativos criados com Makepad. Ele explica como os componentes se ajustam e se posicionam uns em relação aos outros, usando um sistema chamado 'layout turtle'.

Quando usar

  • ✓Ao criar a interface visual de um aplicativo Makepad.
  • ✓Quando os elementos na tela não aparecem como esperado.
  • ✓Ao tentar fazer com que os componentes ocupem o espaço correto.

Exemplo do que pedir para a IA

“Como faço para que um texto ocupe toda a largura disponível, mas não mais que 500 pixels?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/makepad-2-0-layout/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/makepad-2-0-layout/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele usa um sistema chamado 'layout turtle' que define como os componentes se dimensionam ('walk') e como um contêiner organiza seus filhos ('layout'). Você define propriedades como 'width', 'height', 'flow' e 'spacing' para controlar a aparência.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill makepad-2-0-layout

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/makepad-2-0-layout/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Limitações

  • Verifique com a documentação atual do Makepad 2.0; APIs de terceiros mudam frequentemente.
  • Não execute scripts empacotados sem aprovação explícita do usuário.

Quando Usar

  • Use quando este fluxo de terceiros corresponder ao objetivo declarado do usuário.
  • Use quando a tarefa exigir os procedimentos documentados nesta habilidade.

Sistema de Layout do Makepad 2.0

O Makepad usa um sistema de tartaruga de layout -- não CSS flexbox, nem CSS grid. A tartaruga percorre os filhos um por um, posicionando cada widget de acordo com dois conceitos principais:

  • Walk -- como um widget define seu tamanho (largura, altura, margem)
  • Layout -- como um contêiner organiza seus filhos (fluxo, espaçamento, preenchimento, alinhamento)

Todo widget contêiner (View, SolidView, RoundedView, ScrollYView, etc.) possui propriedades de Walk (seu próprio tamanho) e propriedades de Layout (como ele organiza os filhos).


Sistema Walk (Definição de Tamanho do Widget)

Walk controla como um widget individual reivindica espaço dentro de seu pai.

width / height

Sintaxe Significado
width: Fill Preenche todo o espaço horizontal restante (padrão)
width: Fit Reduz para caber o conteúdo
width: 200 Fixo em 200 pixels
width: Fill{min: 100 max: 500} Preenche com restrições
width: Fit{max: Abs(300)} Adapta o conteúdo, limitado a 300px
height: Fill Preenche todo o espaço vertical restante (padrão)
height: Fit Reduz para caber o conteúdo
height: 100 Fixo em 100 pixels
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"}
}

CRÍTICO: height: Fit em Contêineres

Este é o principal bug de layout no Makepad.

A altura padrão é Fill. Quando sua saída renderiza dentro de um contêiner Fit, Fill dentro de Fit cria uma dependência circular e se resolve para 0 pixels. Toda a sua UI se torna invisível.

Regra: SEMPRE defina height: Fit em toda View, SolidView, RoundedView e contêineres similares, a menos que o pai tenha uma altura fixa ou Fill.

// 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)"}
}

Exceções onde height: Fill é aceitável:

  1. Dentro de um pai com altura fixa:
View{
    height: 400
    View{
        height: Fill
        Label{text: "I fill the 400px parent"}
    }
}
  1. Dentro de uma cadeia height: Fill que finalmente atinge um tamanho conhecido (por exemplo, o corpo da Janela).
  2. ScrollYView sempre usa height: Fill porque precisa preencher seu pai para rolar.

margin

Margin adiciona espaço ao redor do exterior de um widget.

// 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.}

Sistema Layout (Arranjo de Filhos)

Layout controla como um contêiner posiciona seus filhos.

flow (Direção)

Sintaxe Significado Equivalente CSS
flow: Right Da esquerda para a direita, linha única (padrão) flex-direction: row
flow: Down De cima para baixo, coluna única flex-direction: column
flow: Overlay Empilha os filhos um sobre o outro position: absolute stacking
flow: Flow.Right{wrap: true} Da esquerda para a direita com quebra de linha flex-wrap: wrap
flow: Flow.Down{wrap: true} De cima para baixo com quebra de linha column wrap
use mod.prelude.widgets.*

// Pilha vertical (mais comum)
View{
    width: Fill height: Fit
    flow: Down spacing: 10
    Label{text: "Primeiro"}
    Label{text: "Segundo"}
    Label{text: "Terceiro"}
}

// Linha horizontal
View{
    width: Fill height: Fit
    flow: Right spacing: 10
    Label{text: "Esquerda"}
    Label{text: "Centro"}
    Label{text: "Direita"}
}

// Sobreposição -- filhos empilhados um sobre o outro

…
Perguntas frequentes

Por que minha interface desaparece?

Isso geralmente acontece quando você usa 'height: Fill' dentro de um contêiner que também tem 'height: Fit'. A regra é: use 'height: Fit' em contêineres a menos que o pai tenha uma altura definida.

Qual a diferença entre 'Walk' e 'Layout'?

'Walk' define o tamanho de um único componente (largura, altura). 'Layout' define como um contêiner organiza os componentes que estão dentro dele (direção, espaçamento, alinhamento).

Como coloco os elementos um embaixo do outro?

Use `flow: Down` dentro do contêiner onde os elementos estão. Você também pode ajustar o espaçamento entre eles com a propriedade `spacing`.

Detalhes

Descrição original do autor

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

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#3528
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas