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

widget-based-design

Faz seu agente usar blocos modulares como mini-apps. É útil para um visual como o iOS, com blocos personalizáveis e fáceis de usar.

O que ela faz

Este guia ensina a criar 'widgets', que são como mini-aplicativos. Eles são blocos funcionais que podem ser organizados em telas, lembrando a aparência das telas iniciais do iOS.

Quando usar

  • ✓Quando você quer criar blocos de informação que podem ser reorganizados.
  • ✓Ao se inspirar na estética das telas iniciais do iOS.
  • ✓Para projetar mini-aplicativos personalizáveis.

Exemplo do que pedir para a IA

“Como posso criar um design de tela inicial com blocos que parecem widgets do iOS?”

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

O design se baseia em blocos com tamanhos fixos (quadrados ou retangulares) e foco em mostrar a informação principal rapidamente. Os cantos arredondados e cores vibrantes são características comuns.

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 widget-based-design

Ou baixe só o arquivo:

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

Design Baseado em Widgets

"Miniaplicativos. Pequenos blocos de UI altamente funcionais, projetados para serem reorganizados."

Quando Usar

Use este subestilo quando a solicitação do usuário corresponder à estética descrita acima. Esta é uma referência filha da habilidade design-it e não deve ser acionada diretamente.

Princípios Fundamentais

  1. Proporções Estritas: Widgets geralmente seguem tamanhos estritos (quadrado 1x1, retângulo 2x1, quadrado grande 2x2).
  2. Visibilidade Rápida: Widgets mostram a informação mais importante instantaneamente. Interações profundas geralmente exigem a abertura do aplicativo completo.
  3. Correspondência do Raio do Canto: O raio da borda do conteúdo interno deve se encaixar perfeitamente no raio da borda externa do widget.

DNA Visual

  • Cores: Widgets frequentemente usam fundos de cores sólidas brilhantes ou fotos em tela cheia para se diferenciarem.
  • Tipografia: Números grandes e em negrito (como um relógio ou temperatura do tempo) combinados com rótulos secundários minúsculos.
  • Layout: Semelhante ao Bento UI, mas focado especificamente em miniaplicativos funcionais em vez de apenas layout de conteúdo.

Implementação Web

  • Exemplo de CSS:
.widget-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  grid-auto-rows: 160px; /* Force squares */
  gap: 16px;
  padding: 32px;
}

.widget {
  background-color: #ffffff;
  border-radius: 24px; /* Classic iOS widget radius */
  box-shadow: 0 8px 24px rgba(0,0,0,0.08);
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  position: relative;
}

/* Specific Sizes */
.widget-small { grid-column: span 1; grid-row: span 1; }
.widget-medium { grid-column: span 2; grid-row: span 1; }
.widget-large { grid-column: span 2; grid-row: span 2; }

/* Weather Widget Example */
.widget.weather {
  background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
  color: white;
}
.weather-temp { font-size: 3rem; font-weight: 300; }
.weather-icon { position: absolute; top: 16px; right: 16px; font-size: 2rem; }

Implementação de Aplicativo

SwiftUI

struct WidgetDesignView: View {
    let columns = [GridItem(.flexible(), spacing: 16), GridItem(.flexible(), spacing: 16)]
    
    var body: some View {
        ScrollView {
            LazyVGrid(columns: columns, spacing: 16) {
                // 2x1 Widget
                WeatherWidget()
                    .frame(height: 160) // Base unit height
                
                // 1x1 Widget
                FitnessWidget()
                    .frame(height: 160)
                
                // 1x1 Widget
                MusicWidget()
                    .frame(height: 160)
            }
            .padding(24)
        }
        .background(Color(white: 0.95))
    }
}

struct WeatherWidget: View {
    var body: some View {
        ZStack(alignment: .topTrailing) {
            LinearGradient(colors: [Color(hex: "4facfe"), Color(hex: "00f2fe")], startPoint: .topLeading, endPoint: .bottomTrailing)
            
            Image(systemName: "cloud.sun.fill")
                .foregroundColor(.white)
                .font(.system(size: 40))
                .padding()
            
            VStack(alignment: .leading) {
                Spacer()
                Text("72°")
                    .font(.system(size: 48, weight: .thin))
                    .foregroundColor(.white)
                Text("San Francisco")
                    .font(.subheadline)
                    .foregroundColor(.white.opacity(0.8))
            }
            .frame(maxWidth: .infinity, alignment: .leading)
            .padding()
        }
        .cornerRadius(24) // Classic iOS widget radius
        .shadow(color: .black.opacity(0.1), radius: 10, y: 5)
    }
}
  • SwiftUI é perfeito para isso. O LazyVGrid cuida do layout, e cornerRadius(24) combina perfeitamente com a estilização padrão de widgets da Apple.
  • Use ZStack como a raiz do widget para sobrepor facilmente conteúdo sobre gradientes ou imagens complexas.

Flutter

class WidgetDesignScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: const Color(0xFFF2F2F2),
      body: GridView.count(
        crossAxisCount: 2, // 2 colunas para um telefone típico
        padding: const EdgeInsets.all(24),
        mainAxisSpacing: 16,
        crossAxisSpacing: 16,
        childAspectRatio: 1.0, // Quadrados 1x1
        children: [
          // Nota: Flutter GridView não se estende facilmente por linhas/colunas nativamente.

…
Perguntas frequentes

O que são 'aspect ratios'?

É a proporção entre a largura e a altura de um elemento. Widgets geralmente usam proporções fixas como 1x1 (quadrado) ou 2x1 (retângulo).

O que significa 'glanceability'?

Significa que a informação mais importante é visível e compreensível rapidamente, sem precisar interagir muito com o widget.

Por que os cantos arredondados são importantes?

Para que o conteúdo dentro do widget se encaixe perfeitamente com o contorno arredondado do próprio widget, criando uma aparência coesa, como nos widgets do iOS.

Detalhes

Descrição original do autor

Web and App implementation guide for Widget-Based Design. Trigger when user wants modular blocks, iOS Home Screen aesthetics, and customizable mini-apps.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas