Mestre em UI: criando interfaces que não parecem feitas por IA
Convenção de caminhos: Este arquivo está no diretório
ui/do repositório. Os diretórioscatalog/eprompts/estão no mesmo nível e acompanham o Skill.
- Em um repositório completo (ou instalado via
setup.sh --link-skillscom link simbólico): primeiro userealpathpara encontrar a raiz do repositório e então utilizepython3 <raiz-do-repositorio>/scripts/find.py <palavra-chave>para pesquisar em todos os módulos.- Instalação isolada (
npx skills add Horace-Maxwell/ai-master-prompt, contendo apenas a pastaui/): não há script de busca; usegrep catalog/*.mddiretamente. Para outros módulos (scaffolds, Skills, ferramentas) consulte https://github.com/Horace-Maxwell/ai-master-prompt.
A UI feita por IA fica feia, geralmente não por falta de capacidade, mas porque ① não se usa uma biblioteca de componentes pronta adequadamente e ② não se sabe como chamar o efeito desejado. Este Skill resolve esses dois problemas.
Fluxo de trabalho
1. Primeiro, esclareça quatro pontos
- Plataforma e stack tecnológico: Web (React/Next? Vue? HTML puro?) ou React Native/Expo? Projeto existente ou novo?
- Tipo de página: Landing page / Dashboard / Aplicação SaaS / Produto de chat com IA / Aplicativo mobile / Portfólio…
- Estilo: O usuário especificou algum estilo ou site de referência?
- Intensidade de animação: Discreto / Moderado / Chamativo
Quando perguntar e quando executar diretamente: Pergunte apenas se a plataforma e o tipo de página não estiverem claros (no máximo uma rodada de perguntas). Para o restante, use os valores padrão e explique na resposta o que você escolheu:
| Não informado | Padrão |
|---|---|
| Stack tecnológico | Em projeto existente, siga o projeto; para novo projeto Web, use Next.js + Tailwind + shadcn/ui |
| Estilo | Ofereça 2–3 direções para o usuário escolher (consulte prompts/style-recipes.md); se o usuário disser 'você decide', escolha o estilo mais adequado ao tipo de página |
| Intensidade de animação | Produto: discreto; landing page: moderado; portfólio/página de evento: pode ser chamativo |
Quando o usuário não souber descrever o efeito, use os nomes em prompts/effect-vocabulary.md para confirmar (ex.: 'Você quer dizer Text Scramble, onde as letras saltam aleatoriamente e depois se fixam no texto correto?').
2. Escolha a base conforme a tabela de decisão
Quando o usuário especificar um estilo, a linha do estilo tem prioridade: landing page com estilo à mão livre use biblioteca à mão livre; não adicione componentes chamativos de estilo escuro como Aceternity.
| Situação | Base | O que adicionar |
|---|---|---|
| Projeto React/Next novo (padrão) | npx create-next-app@latest e depois npx shadcn@latest init | Conforme necessário, adicione componentes do registry de namespaces |
| Com estilo definido (mão livre/retrô/brutalista/vidro/terminal) | Biblioteca de estilo correspondente (consulte style-recipes) | A maioria é registry shadcn; instale e substitua diretamente os componentes de mesmo nome |
| Landing page / Hero / Página de marketing (sem estilo definido) | shadcn + Magic UI / Aceternity / React Bits | Rolagem suave com Lenis; animação de rolagem com GSAP ScrollTrigger ou Motion |
| Dashboard / Painel administrativo | shadcn + Tremor ou shadcn charts | Kibo UI para componentes avançados |
| Chat com IA / Produto de agente | shadcn + AI Elements ou assistant-ui | affectUI para painéis de observabilidade do agente; dados do Langfuse / Phoenix; backend Python usa o protocolo AG-UI para conectar ao frontend |
| React Native / Expo | npx create-expo-app@latest + React Native Reusables ou ExpoKit | Vidro líquido com expo-glass-effect, vidro fosco com expo-blur; beUI para animações |
| Vue / Nuxt | Nuxt UI ou shadcn-vue | Inspira UI para efeitos; goopUI (efeitos líquidos, pré-alpha) |
| HTML puro / sem framework | daisyUI ou Tailwind + CSS nativo | Animate.css, Hover.css, GSAP |
Lista completa de candidatos:
- Bibliotecas de componentes: catalog/02 Básico, 03 Animações, 04 Estilizados, 05 Mobile, 06 Efeitos/3D, 07 Produtos de IA
- Para o que não encontrar, vá aos agregadores: catalog/01 (21st.dev, diretório oficial do shadcn, registry.directory)
3. Instalação de componentes: uso de namespaces no shadcn
Namespaces incluídos no índice oficial (548 itens) não exigem nenhuma configuração:
npx shadcn@latest add @magicui/marquee
npx shadcn@latest add @aceternity/spotlight
npx shadcn@latest search @aceternity --query "card" # Se não souber o nome do item: pesquise primeiro
npx shadcn@latest list @magicui # Ou liste todos os itens do namespace
npx shadcn@latest view @magicui/border-beam # Veja o código antes de instalar
Três armadilhas comuns:
- Não adivinhe o nome do item. O
<item>no diretório é um placeholder; cada biblioteca tem nomes diferentes. Usesearchoulistprimeiro. - Os itens do React Bits têm sufixos de variante:
<nome-do-componente>-<TS|JS>-<TW|CSS>, por exemplonpx shadcn@latest add @react-bits/DecryptedText-TS-TW. Sem o sufixo, retorna 404. - Bibliotecas não incluídas no índice oficial (Looseleaf, Rare UI, etc.) têm duas formas de instalação:
-
Forneça diretamente a URL completa ou o caminho do GitHub, sem configuração:
npx shadcn@latest add https://kevintngo.github.io/looseleaf/r/button.json,npx shadcn@latest add swamimalode07/rare-ui/fluid-orb -
Ou registre uma vez em
components.jsone depois use@looseleaf/button:{ "registries": { "@looseleaf": "https://kevintngo.github.io/looseleaf/r/{name}.json" } }
-
Namespaces comuns de consulta rápida (todos no índice oficial): @magicui @aceternity @react-bits @animate-ui @motion-primitives @cult-ui @kokonutui @coss @shadcnblocks @tailark @kibo-ui @8bitcn @neobrutalism @retroui @glasscn @glassyui @ai-elements @assistant-ui @prompt-kit @affectui @beui @shaderscn @threecn @lucide-animated @svgl
4. Instale ferramentas para o Agente (após obter consentimento do usuário)
Combinação mínima (usando Claude Code como exemplo; para outros Agentes, coloque o mesmo comando npx … após -- na configuração MCP deles – a tabela de correspondência está em AGENTS.md na raiz do repositório):
npx shadcn@latest mcp init --client claude # Navegar/instalar componentes de centenas de registries (também suporta --client cursor / vscode)
claude mcp add context7 -- npx -y @upstash/context7-mcp # Documentação mais recente de qualquer biblioteca
npx skills add anthropics/skills --skill frontend-design # Linha de base estética, removendo o 'cheiro de IA'
Adicione conforme necessário: Magic UI MCP, 21st MCP, Figma MCP (quando houver design), Motion AI Kit (npx motion-ai), skills GSAP, MCPs para capturas de referência como Mobbin / Refero / Lazyweb (todos requerem conta). Lista completa em catalog/12.
5. Defina o sistema de design primeiro, depois escreva as páginas
- Defina os tokens de estilo: paleta de cores (gere com Realtime Colors / tweakcn), fontes (não use Inter como padrão: escolha um par com personalidade no Fontshare ou Google Fonts), cantos arredondados, sombras, espaçamento. Se o usuário forneceu uma marca de referência, procure o DESIGN.md correspondente em awesome-design-md e coloque na raiz do projeto.
- Estrutura da página: Consulte a ordem dos blocos em páginas similares nos sites de inspiração (catalog/10).
- Reutilize componentes primeiro: Não escreva manualmente o que puder ser instalado com
npx shadcn@latest add. - Animações com propósito: Animação de entrada uma vez, feedback ao hover, narrativa de rolagem. Respeite
prefers-reduced-motion.
6. Auto-verificação (não pule)
- Abra a página em um navegador (Playwright / Chrome DevTools MCP / navegador embutido) e compare com a lista abaixo de características 'comuns de IA'
- Verifique a largura mobile (375px)
- Console sem erros; animações sem travamentos (mexa apenas transform/opacity)
Características comuns de IA (evitar): Gradiente roxo-azulado + Inter + título centralizado grande; todos os cards com o mesmo canto arredondado e a mesma sombra; emoji como ícone; glassmorphism em toda a tela; texto cinza sem hierarquia; cada bloco com 'fade in e move up'.
Quando precisar de vocabulário de efeitos/estilos
- Tabela de consulta rápida: prompts/effect-vocabulary.md (com nomes de itens prontos para instalação)
- Receitas de estilo: prompts/style-recipes.md
- Modelo para descrever requisitos (para usuário ou outra IA): prompts/request-template.md
- Galerias com demonstrações: motion-prompt (192 efeitos,
npx skills add showheyohtaki/motion-prompt), Motion Library (510 efeitos), aimotions (195 efeitos de texto), consulte catalog/09