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
Mensagem pronta para colar
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-designOu 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.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.
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
- Proporções Estritas: Widgets geralmente seguem tamanhos estritos (quadrado 1x1, retângulo 2x1, quadrado grande 2x2).
- Visibilidade Rápida: Widgets mostram a informação mais importante instantaneamente. Interações profundas geralmente exigem a abertura do aplicativo completo.
- 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
LazyVGridcuida do layout, ecornerRadius(24)combina perfeitamente com a estilização padrão de widgets da Apple. - Use
ZStackcomo 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.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2810
- 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