Pular para o conteúdo
Skillpedia
Interfaces (UI/UX)48 mil · #4031

robius-widget-patterns

Ajuda seu agente a criar e gerenciar padrões de widgets reutilizáveis. Facilita a construção de interfaces de usuário complexas e interativas.

O que ela faz

Este skill ajuda a criar componentes de interface (chamados 'widgets') que podem ser reutilizados em diferentes partes de um programa. Ele segue padrões específicos para garantir que esses componentes funcionem bem e sejam fáceis de usar.

Quando usar

  • ✓Ao criar um widget que você quer usar em vários lugares.
  • ✓Ao projetar como um widget vai interagir com outras partes do programa.
  • ✓Quando você precisa que um widget mostre texto ou uma imagem, dependendo da situação.

Exemplo do que pedir para a IA

“Como faço para criar um botão que pode ser expandido ou recolhido?”

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/robius-widget-patterns/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/robius-widget-patterns/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele usa um conjunto de exemplos e regras (padrões) para construir widgets. Esses padrões mostram como fazer coisas como pop-ups, listas dinâmicas ou elementos que podem ser arrastados.

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 robius-widget-patterns

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/robius-widget-patterns/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.

Disponibilidade de Material de Apoio

Este texto do catálogo contém as orientações inline abaixo, mas não inclui os seguintes caminhos de suporte. Eles são pré-requisitos externos, não arquivos incluídos:

  • <support-root>/references/widget-patterns.md
  • <support-root>/references/styling-patterns.md
  • <support-root>/references/moly-widget-patterns.md

Solicite o material de apoio original ou uma instalação existente antes de usar uma etapa que dependa desses caminhos; este catálogo não identifica uma fonte de download verificada para eles. Resolva cada caminho em relação a essa instalação, inspecione seu conteúdo e verifique quaisquer licenças e pré-requisitos de execução aplicáveis. Não execute um comando nem afirme que um procedimento referenciado foi seguido até que seu arquivo necessário exista. Não fabrique os scripts ausentes nem trate um arquivo não relacionado com o mesmo nome como equivalente. Etapas independentes totalmente documentadas aqui podem prosseguir dentro do escopo autorizado do usuário; relate qualquer etapa dependente como indisponível.

Habilidade de Padrões de Widgets Robius

Melhores práticas para projetar widgets Makepad reutilizáveis baseados em padrões de código Robrix e Moly.

Bases de código fonte:

  • Robrix: Cliente de chat Matrix - Widgets Avatar, RoomsList, RoomScreen
  • Moly: Aplicação de chat com IA - Widgets Slot, ChatLine, PromptInput, AdaptiveView

Quando Usar

Use esta habilidade quando:

  • Criar widgets Makepad reutilizáveis
  • Projetar APIs de componentes de widget
  • Implementar padrões de alternância de texto/imagem
  • Estilização dinâmica em Makepad
  • Palavras-chave: widget robrix, componente makepad, widget reutilizável, padrão de design de widget

Padrões de Produção

Para padrões de widgets prontos para produção, consulte o diretório _base/:

Padrão Descrição
01-widget-extension Adicionar métodos auxiliares a referências de widget
02-modal-overlay Pop-ups, diálogos usando sobreposição DrawList2d
03-collapsible Seções expansíveis/colapsáveis
04-list-template Listas dinâmicas com templates LivePtr
05-lru-view-cache Cache de visualização eficiente em memória
14-callout-tooltip Tooltips com posicionamento de seta
20-redraw-optimization Padrões de redesenho eficientes
15-dock-studio-layout Painéis redimensionáveis estilo IDE
16-hover-effect Efeitos de hover com variáveis de instância
17-row-based-grid-layout Layouts de grade dinâmicos
18-drag-drop-reorder Reordenação de widgets com arrastar e soltar
19-pageflip-optimization Otimização de PageFlip, modos de destruição/cache instantâneos
21-collapsible-row-portal-list Agrupamento automático de itens consecutivos em listas de portal com FoldHeader
22-dropdown-overlay Pop-ups de dropdown usando sobreposição DrawList2d (sem push de layout)

Estrutura Padrão de Widget

use makepad_widgets::*;

live_design! {
    use link::theme::*;
    use link::widgets::*;

    pub MyWidget = {{MyWidget}} {
        width: Fill, height: Fit,
        flow: Down,

        // Child widgets defined in DSL
        inner_view = <View> {
            // ...
        }
    }
}

#[derive(Live, LiveHook, Widget)]
pub struct MyWidget {
    #[deref] view: View,              // Delegate to inner View

    #[live] some_property: f64,       // DSL-configurable property
    #[live(100.0)] default_val: f64,  // With default value

    #[rust] internal_state: State,    // Rust-only state (not in DSL)

    #[animator] animator: Animator,   // For animations
}

impl Widget for MyWidget {
    fn handle_event(&mut self, cx: &mut Cx, event: &Event, scope: &mut Scope) {
        self.view.handle_event(cx, event, scope);
        // Custom event handling...
    }

    fn draw_walk(&mut self, cx: &mut Cx2d, scope: &mut Scope, walk: Walk) -> DrawStep {
        self.view.draw_walk(cx, scope, walk)
    }
}

Padrão de Alternância Texto/Imagem

Um padrão comum para widgets que exibem texto ou uma imagem (como avatares):

live_design! {
    pub Avatar = {{Avatar}} {
        width: 36.0, height: 36.0,
        align: { x: 0.5, y: 0.5 }
        flow: Overlay,  // Empilha visualizações umas sobre as outras

        text_view = <View> {
            visible: true,  // Visível por padrão
            show_bg: true,
            draw_bg: {
                uniform background_color: #888888
                fn pixel(self) -> vec4 {
                    let sdf = Sdf2d::viewport(self.pos * self.rect_size);
                    let c = self.rect_size * 0.5;
                    sdf.circle(c.x, c.x, c.x)
                    sdf.fill_keep(self.background_color);
                    return sdf.result
                }
            }
            text = <Label> {

…
Perguntas frequentes

O que são 'widgets'?

Widgets são como blocos de construção para interfaces de programas. Pense em botões, caixas de texto ou listas em um aplicativo; todos são tipos de widgets.

O que significa 'reutilizável'?

Algo reutilizável pode ser usado várias vezes sem precisar ser reescrito do zero. Em programação, isso economiza tempo e esforço.

O que são 'padrões de código'?

Padrões de código são como receitas ou modelos testados para resolver problemas comuns de programação. Eles ajudam a escrever código mais organizado e eficiente.

Detalhes

Descrição original do autor

CRITICAL: Use for Robius widget patterns. Triggers on: apply_over, TextOrImage, modal, 可复用, 模态, collapsible, drag drop, reusable widget, widget design, pageflip, 组件设计, 组件模式

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas