frontend-ui-engineering
Ajuda seu agente a criar interfaces de usuário bonitas e fáceis de usar. Faz com que o resultado pareça profissional e funcione bem em diferentes dispositivos.
O que ela faz
Esta ferramenta ajuda a criar interfaces de usuário (telas e componentes) para sites e aplicativos que parecem ter sido feitos por engenheiros experientes. Ela garante que tudo seja acessível para todos, funcione bem em diferentes tamanhos de tela e tenha uma aparência profissional.
Quando usar
- ✓Ao criar novas telas ou botões.
- ✓Ao ajustar o visual de uma página existente.
- ✓Quando você precisa que o site funcione bem em celulares e computadores.
Exemplo do que pedir para a IA
“Crie um botão de 'salvar' para o formulário de cadastro, garantindo que ele seja fácil de clicar em celulares.”
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
A ferramenta organiza o código de forma lógica, separando a aparência da lógica. Ela também usa padrões de design estabelecidos e segue regras de acessibilidade para garantir qualidade.
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 addyosmani/agent-skills --skill frontend-ui-engineeringOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/addyosmani/agent-skills/main/skills/frontend-ui-engineering/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.
Engenharia de UI Frontend
Visão Geral
Construa interfaces de usuário de qualidade de produção que sejam acessíveis, performáticas e visualmente polidas. O objetivo é uma UI que pareça ter sido construída por um engenheiro com consciência de design em uma empresa de ponta — não como se tivesse sido gerada por uma IA. Isso significa adesão real ao sistema de design, acessibilidade adequada, padrões de interação pensados e nenhuma "estética de IA" genérica.
Quando Usar
- Construindo novos componentes ou páginas de UI
- Modificando interfaces existentes voltadas para o usuário
- Implementando layouts responsivos
- Adicionando interatividade ou gerenciamento de estado
- Corrigindo problemas visuais ou de UX
Arquitetura de Componentes
Estrutura de Arquivos
Coloque tudo relacionado a um componente junto:
src/components/
TaskList/
TaskList.tsx # Component implementation
TaskList.test.tsx # Tests
TaskList.stories.tsx # Storybook stories (if using)
use-task-list.ts # Custom hook (if complex state)
types.ts # Component-specific types (if needed)
Padrões de Componentes
Prefira composição em vez de configuração:
// Good: Composable
<Card>
<CardHeader>
<CardTitle>Tasks</CardTitle>
</CardHeader>
<CardBody>
<TaskList tasks={tasks} />
</CardBody>
</Card>
// Avoid: Over-configured
<Card
title="Tasks"
headerVariant="large"
bodyPadding="md"
content={<TaskList tasks={tasks} />}
/>
Mantenha os componentes focados:
// Good: Does one thing
export function TaskItem({ task, onToggle, onDelete }: TaskItemProps) {
return (
<li className="flex items-center gap-3 p-3">
<Checkbox checked={task.done} onChange={() => onToggle(task.id)} />
<span className={task.done ? 'line-through text-muted' : ''}>{task.title}</span>
<Button variant="ghost" size="sm" onClick={() => onDelete(task.id)}>
<TrashIcon />
</Button>
</li>
);
}
Separe a busca de dados da apresentação:
// Container: handles data
export function TaskListContainer() {
const { tasks, isLoading, error, refetch } = useTasks();
if (isLoading) return <TaskListSkeleton />;
if (error) return <ErrorState message="Failed to load tasks" retry={refetch} />;
if (tasks.length === 0) return <EmptyState message="No tasks yet" />;
return <TaskList tasks={tasks} />;
}
// Presentation: handles rendering
export function TaskList({ tasks }: { tasks: Task[] }) {
return (
<ul role="list" className="divide-y">
{tasks.map(task => <TaskItem key={task.id} task={task} />)}
</ul>
);
}
Gerenciamento de Estado
Escolha a abordagem mais simples que funcione:
Local state (useState) → Component-specific UI state
Lifted state → Shared between 2-3 sibling components
Context → Theme, auth, locale (read-heavy, write-rare)
URL state (searchParams) → Filters, pagination, shareable UI state
Server state (React Query, SWR) → Remote data with caching
Global store (Zustand, Redux) → Complex client state shared app-wide
Evite "prop drilling" mais profundo que 3 níveis. Se você está passando props por componentes que não as utilizam, introduza contexto ou reestruture a árvore de componentes.
Adesão ao Sistema de Design
Qualidade de UI guiada por referências
Quando o produto precisa de uma direção visual distinta, colete evidências antes de escolher um layout:
- Pesquise em um catálogo de referências confiável ou use referências fornecidas pela equipe do produto.
- Estude duas ou três telas relevantes. Registre decisões sobre hierarquia, densidade, navegação, controles, comportamento responsivo e estados de interação.
- Transforme essas decisões em um pequeno contrato de design antes da implementação. Nomeie a tarefa da tela, a ação principal, os estados necessários, as regras responsivas e os padrões a serem rejeitados.
- Reconstrua a estrutura útil usando os próprios componentes, tokens, conteúdo e linguagem visual do produto. Nunca copie a marca, o texto proprietário, as imagens ou o layout exato de outro produto.
Use referências como evidência, não como modelos. Se as referências não estiverem disponíveis, documente as suposições e verifique o resultado em relação ao sistema de design existente do produto.
Evite a Estética de IA
UI gerada por IA possui padrões reconhecíveis. Evite todos eles:
| Padrão da IA | Por que é um Problema | Qualidade de Produção |
|---|---|---|
| Roxo/índigo em tudo | Modelos usam paletas visualmente "seguras" por padrão, fazendo com que todos os aplicativos pareçam idênticos | Use a paleta de cores real do projeto |
…
Perguntas frequentes
O que é 'acessível'?
Significa que a interface pode ser usada por todas as pessoas, incluindo aquelas com deficiências visuais ou motoras, usando leitores de tela ou outras tecnologias assistivas.
O que é 'responsivo'?
É quando a interface se adapta automaticamente a diferentes tamanhos de tela, como celulares, tablets e computadores, para que tudo fique legível e utilizável.
Por que evitar a 'estética de IA'?
Interfaces geradas por IA muitas vezes usam cores, formas e espaçamentos genéricos que não se encaixam em um design profissional. Esta ferramenta foca em criar algo com aparência de alta qualidade e alinhado com o projeto.
Detalhes
Descrição original do autor
Builds production-quality, accessible, responsive user-facing UIs. Use when building or modifying interfaces and pages, creating components, implementing layouts, meeting WCAG accessibility requirements, managing state, or when the output needs to look and feel production-quality rather than AI-generated.
repo: addyosmani/agent-skills
Popularidade
- Estrelas no GitHub
- 107 mil
- Posição no ranking
- #351
- Licença
- MIT
- Atualizada em
- 13/10/2026
Comentários
- …
Mais skills deste repositório
api-and-interface-design
Ajuda a criar APIs e interfaces bem definidas. É útil ao projetar como diferentes partes de um software vão se comunicar.
addyosmani/agent-skills
browser-testing-with-devtools
Ajuda seu agente a testar código diretamente em navegadores reais. É útil para verificar como algo funciona no ambiente onde será usado, encontrando erros e problemas de performance.
addyosmani/agent-skills
ci-cd-and-automation
Ensina seu agente de IA a automatizar tarefas repetitivas e colocar projetos no ar e cuidar da infraestrutura.
addyosmani/agent-skills
code-review-and-quality
Realiza revisões de código detalhadas em várias frentes. É útil antes de juntar novas mudanças para garantir a qualidade e evitar problemas futuros.
addyosmani/agent-skills
Skills parecidas
angular-developer
Ajuda seu agente a criar código Angular e a dar conselhos sobre a estrutura do projeto. É útil para iniciar novos projetos, criar partes do código ou melhorar a performance e acessibilidade.
affaan-m/ECC
frontend-a11y
Ajuda seu agente a tornar interfaces web acessíveis para todos. Ele garante que sites e apps funcionem bem com leitores de tela e navegação por teclado.
affaan-m/ECC
frontend-patterns
Faz seu agente aplicar padrões modernos no desenvolvimento frontend. Ele otimiza performance, gerencia estado e segue boas práticas em React e Next.js.
affaan-m/ECC