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
Mensagem pronta para colar
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-patternsOu 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.mdConteú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, 组件设计, 组件模式
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #4031
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
design-system
Ajuda seu agente a criar um sistema de design a partir de um código existente. Ele extrai informações visuais e verifica a consistência, gerando um relatório e uma prévia interativa.
affaan-m/ECC
liquid-glass-design
Ajuda seu agente a criar interfaces de usuário com efeito 'Liquid Glass' para iOS. Permite adicionar efeitos visuais dinâmicos e interativos em SwiftUI e UIKit.
affaan-m/ECC