Communitygithub.com

91-5/opencode

Skill antirrobô para landing pages, portfólios e redesigns. O agente lê o briefing, infere a direção de design correta e entrega interfaces que não parecem modelos prontos. Sistemas de design reais quando aplicável, auditoria primeiro em redesigns, verificação pré-lançamento rigorosa.

O que é opencode?

O skill 'Anti-Slop Frontend' é projetado para desenvolvedores e agentes de IA que criam landing pages, portfólios e redesigns de frontend, evitando resultados genéricos e 'slop' gerados por modelos de linguagem. Ele funciona guiando o agente através de um processo estruturado: primeiro, o agente analisa o briefing para inferir o tipo de página, público, tom visual e restrições, produzindo uma 'Leitura de Design' de uma linha. Em seguida, configura três 'Dialos' principais (Variação de Design, Intensidade de Movimento e Densidade Visual) para controlar a estética geral, e mapeia o briefing para um sistema de design real ou uma implementação honesta de uma tendência estética. O skill impõe regras rigorosas para evitar defaults comuns de LLM (como gradientes roxos, Inter e slate-900), prioriza o uso de pacotes oficiais de sistemas de design (ex.: Fluent UI, Carbon, GOV.UK), e define uma arquitetura padrão (React/Next.js, Tailwind v4, Motion) com convenções para tipografia, ícones, estado e responsividade. É útil para qualquer desenvolvedor que queira usar um agente de IA para construir interfaces frontend com qualidade profissional, evitando o 'jeito preguiçoso' e garantindo que o resultado seja original, acessível e alinhado com o briefing, em vez de um template genérico.

Funciona com~Claude Code✓Codex CLI✓Cursor✓OpenCode
npx skills add https://github.com/91-5/opencode/tree/HEAD/skills/superpowers/design-taste-frontend

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

tasteskill: Skill Frontend Antirrobô

Landing pages, portfólios e redesigns. Não dashboards, tabelas de dados ou UI de produto com várias etapas. Toda regra abaixo é contextual. Nenhuma delas é acionada automaticamente. Primeiro leia o briefing, depois extraia apenas o que se encaixa.


0. INFERÊNCIA DO BRIEFING (Leia o Ambiente Antes de Qualquer Coisa)

Antes de tocar em código ou ajustar parâmetros, inferir o que o usuário realmente quer. A maioria do design gerado por LLM é ruim porque o modelo salta para uma estética padrão em vez de ler o ambiente.

0.A Leia estes sinais primeiro

  1. Tipo de página - landing (SaaS / consumidor / agência / evento), portfólio (dev / designer / estúdio criativo), redesign (preservar vs. reformular), editorial / blog.
  2. Palavras de vibe que o usuário usou - "minimalista", "calmo", "estilo Linear", "Awwwards", "brutalista", "consumidor premium", "Apple-y", "brincalhão", "B2B sério", "editorial", "agência-y", "glassy", "tech escuro".
  3. Sinais de referência - URLs que ele linkou, screenshots que colou, produtos que nomeou, marcas com as quais está concorrendo.
  4. Público - Painel de compras B2B vs. consumidor consciente de design vs. recrutador escaneando um portfólio. O público escolhe a estética, não seu gosto.
  5. Ativos de marca que já existem - logotipo, cor, tipo, fotografia. Para redesigns, estes são material de partida, não entrada opcional (veja Seção 11).
  6. Restrições silenciosas - públicos focados em acessibilidade, setor público, indústrias reguladas, comércio confiável, produtos infantis. Essas restrições SOBREPÕEM a preferência estética.

0.B Produza uma "Leitura de Design" de uma linha antes de gerar

Antes de qualquer código, declare em uma linha: "Lendo como: <tipo de página> para <público>, com uma linguagem , tendendo a <sistema de design ou família estética>."

Exemplos de leituras:

  • "Lendo como: landing B2B SaaS para compradores técnicos, com uma linguagem minimalista estilo Linear, tendendo a utilidades Tailwind + Geist + movimento contido."
  • "Lendo como: portfólio de designer solo para gerentes de contratação, com uma linguagem editorial / tipo cinético, tendendo a CSS nativo + animação orientada por scroll + tipografia personalizada."
  • "Lendo como: redesign de um site de serviço do setor público, com uma linguagem de confiança primeiro, tendendo a GOV.UK Frontend ou USWDS."

0.C Se o briefing for ambíguo, faça uma pergunta, não adivinhe

Faça exatamente uma pergunta esclarecedora - nunca um despejo de várias perguntas - e apenas quando a leitura de design genuinamente divergir. Exemplo: "Isso deve parecer mais com Linear-limpo ou Awwwards-experimental?"

Se você puder inferir com confiança a partir do contexto, não pergunte. Apenas declare a leitura de design e prossiga.

0.D Disciplina Anti-Padrão

Não use como padrão: gradientes roxos de IA, herói centralizado sobre mesh escuro, três cartões de recurso iguais, glassmorphism genérico em tudo, micro-animações em loop infinito em todo lugar, Inter + slate-900. Estes são os padrões de LLM. Alcance além deles deliberadamente com base na leitura de design.


1. OS TRÊS DIALOS (Configuração Principal)

Após a leitura de design, ajuste três dialos. Toda decisão de layout, movimento e densidade abaixo é controlada por estes.

  • DESIGN_VARIANCE: 8 - 1 = Simetria Perfeita, 10 = Caos Artístico
  • MOTION_INTENSITY: 6 - 1 = Estático, 10 = Cinemático / Física
  • VISUAL_DENSITY: 4 - 1 = Galeria de Arte / Arejado, 10 = Cockpit / Dados Densos

Linha de base: 8 / 6 / 4. Use estes a menos que a leitura de design os substitua. Não peça ao usuário para editar este arquivo - as substituições acontecem conversacionalmente.

1.A Inferência de Dial (leitura de design → valores de dial)

SinalVARIANCEMOTIONDENSITY
"minimalista / limpo / calmo / editorial / estilo Linear"5-63-42-3
"consumidor premium / Apple-y / luxo / marca"7-85-73-4
"brincalhão / selvagem / Dribbble / Awwwards / experimental / agência"9-108-103-4
"landing page / portfólio / site de marketing (padrão)"7-96-83-5
"confiança primeiro / setor público / regulamentado / acessibilidade crítica"3-42-34-5
"redesign - preservar"igual ao existente+1igual ao existente
"redesign - reformular"+2+2igual ao existente

1.B Predefinições por Caso de Uso

Caso de usoVARIANCEMOTIONDENSITY
Landing (SaaS, mainstream)764
Landing (Agência / criativo)983
Landing (Consumidor premium)763
Portfólio (Designer / estúdio)873
Portfólio (Desenvolvedor)654
Editorial / Blog643
Serviço do setor público325
Redesign - preservarigualigual+1igual
Redesign - reformular+2+2igual

1.C Como os Dialos Orientam a Saída

Use estes (ou valores substituídos pelo usuário) como variáveis globais. As referências cruzadas ao longo deste documento referem-se a esses nomes de variáveis exatos - nunca invente aliases como LAYOUT_VARIANCE ou ANIM_LEVEL.


2. MAPEAMENTO BRIEFING → SISTEMA DE DESIGN

Depois de ter a leitura de design (Seção 0) e os dialos (Seção 1), escolha a fundação certa. Não invente CSS para coisas que têm um pacote oficial. Não finja que uma tendência estética é um sistema oficial.

2.A Quando usar um sistema de design real (use pacotes oficiais)

Briefing parece…AlcancePorquê
Microsoft / SaaS empresarial / dashboards@fluentui/react-components ou @fluentui/web-componentsFluent UI oficial, tokens da Microsoft, acessibilidade resolvida
UI Google-ish, produto com sabor Material@material/web + tokens Material 3Oficial, tematizável via Material Theming
B2B / análises empresariais estilo IBM@carbon/react + @carbon/stylesCarbon oficial, padrões maduros de densidade de dados
Superfícies de aplicativo Shopifycomponentes web polaris.js / Polaris ReactObrigatório para UI admin do Shopify
Produto estilo Atlassian / Jira@atlaskit/* + @atlaskit/tokensDS oficial da Atlassian
Devtool / página comunitária estilo GitHub@primer/css ou @primer/react-brandPrimer oficial; variante Brand para marketing
Serviço do setor público do Reino Unidogovuk-frontendLegal / regulatório esperado
Setor público dos EUA / confiança primeirouswdsMesmo
MVP de agência / negócio local rápidoBootstrap 5.3Chato, rápido, funciona
Fundação React moderna acessível@radix-ui/themesPrimitivas + tema polido
SaaS moderno onde você possui os componentesshadcn/ui (npx shadcn@latest add ...)Você possui o código, fácil de personalizar; nunca envie estado padrão
SaaS moderno / marketing de IA baseado em TailwindUtilitários Tailwind v4 + variante dark:Padrão para builds de indie + pequenas equipes

Regra de honestidade: se o briefing parecer com um dos sistemas acima, instale e use o pacote oficial. Não recrie seu CSS manualmente. Não importe os tokens de um sistema mas depois substitua 90% deles.

Um sistema por projeto. Não misture Fluent React com Carbon na mesma árvore. Não importe componentes shadcn/ui em um aplicativo Material 3.

2.B Quando o briefing é uma estética, não um sistema

Para estas direções, não há um único pacote oficial. Construa com CSS nativo + Tailwind + uma biblioteca de componentes mantida. Seja honesto nos comentários do código sobre o que é inspiração emprestada vs. material oficial.

EstéticaImplementação honesta
Glassmorphism / "vidro fosco"backdrop-filter, bordas em camadas, sobreposições de destaque. Forneça fallback de preenchimento sólido para prefers-reduced-transparency.
Bento (grades de blocos estilo Apple)CSS Grid com tamanhos de célula mistos. Nenhuma biblioteca única possui isso.
BrutalismoCSS nativo, monoespaçado, bordas brutas. Nenhuma biblioteca.
Editorial / revistaTipo serifado, grade assimétrica, espaçamento generoso. Nenhuma biblioteca.
Tech escuro / hackerMono + neon de destaque, motivos de terminal. Nenhuma biblioteca.
Gradientes Aurora / meshSVG ou gradientes radiais em camadas. Nenhuma biblioteca.
Tipografia cinéticaAnimações CSS nativas, animações orientadas por scroll, GSAP para sequências. Nenhuma biblioteca.
Apple Liquid GlassA Apple documenta isso apenas para plataformas Apple. Não existe liquid-glass.css oficial. Implementações web são aproximações usando backdrop-filter + bordas em camadas + destaques. Rotule claramente como aproximação.

3. ARQUITETURA E CONVENÇÕES PADRÃO

A menos que a leitura de design escolha um sistema de design real (Seção 2.A), estes são os padrões:

3.A Stack

  • Framework: React ou Next.js. Padrão para Server Components (RSC).
    • SEGURANÇA RSC: Estado global funciona APENAS em Client Components. No Next.js, envolva provedores em um componente "use client".
    • ISOLAMENTO DE INTERATIVIDADE: Qualquer componente que use Motion, ouvintes de scroll ou física de ponteiro DEVE ser uma folha isolada com 'use client' no topo. Server Components renderizam apenas layouts estáticos.
  • Estilização: Tailwind v4 (padrão). Tailwind v3 apenas se o projeto existente exigir.
    • Para v4: NÃO use o plugin tailwindcss em postcss.config.js. Use @tailwindcss/postcss ou o plugin Vite.
  • Animação: Motion (a biblioteca anteriormente conhecida como Framer Motion). Importe de motion/react (import { motion } from "motion/react"). O pacote framer-motion ainda funciona como um alias legado - prefira motion/react em código novo.
  • Fontes: Sempre use next/font (Next.js) ou auto-hospedagem com @font-face + font-display: swap. Nunca linke Google Fonts via <link> em produção.

3.B Estado

  • useState / useReducer local para UI isolada.
  • Estado global APENAS para evitar prop-drilling profundo - Zustand, Jotai ou contexto React.
  • NUNCA use useState para rastrear valores contínuos impulsionados por entrada do usuário (posição do mouse, progresso de scroll, física de ponteiro, hover magnético). Use useMotionValue / useTransform / useScroll do Motion. O useState re-renderiza a árvore React a cada alteração e colapsa em dispositivos móveis.

3.C Ícones

  • Bibliotecas permitidas (ordem de prioridade): @phosphor-icons/react, hugeicons-react, @radix-ui/react-icons, @tabler/icons-react.
  • Desencorajado: lucide-react. Aceitável apenas quando o usuário explicitamente pedir ou o projeto já depender dele.
  • NUNCA crie ícones SVG manualmente. Se um glifo estiver faltando, instale uma segunda biblioteca ou componha a partir de primitivas - não desenhe caminhos de ícones do zero.
  • Uma família por projeto. Não misture Phosphor com Lucide na mesma árvore de componentes.
  • Padronize strokeWidth globalmente (ex.: 1.5 ou 2.0).

3.D Política de Emoji

Desencorajado por padrão em código, marcação e texto visível. Substitua símbolos por glifos de biblioteca de ícones. Substituição: permita emojis apenas quando o usuário explicitamente pedir uma vibe brincalhona / estilo chat / social-nativa - e mesmo assim use-os com moderação e intenção.

3.E Responsividade e Mecânicas de Layout

  • Padronize breakpoints (sm 640, md 768, lg 1024, xl 1280, 2xl 1536).
  • Contenha layouts de página usando max-w-[1400px] mx-auto ou max-w-7xl.
  • Estabilidade de Viewport: NUNCA use h-screen para seções Hero de altura total. SEMPRE use min-h-[100dvh] para evitar saltos de layout em dispositivos móveis (barra de endereço do Safari iOS).
  • Grid sobre Flex-Math: NUNCA use matemática complexa de porcentagem de flexbox (w-[calc(33%-1rem)]). SEMPRE use CSS Grid (grid grid-cols-1 md:grid-cols-3 gap-6).

3.F Verificação de Dependência (obrigatório)

Antes de importar QUALQUER biblioteca de terceiros, verifique package.json. Se o pacote estiver faltando, produza o comando de instalação primeiro. Nunca presuma que uma biblioteca existe.


4. DIRETIVAS DE ENGENHARIA DE DESIGN (Correção de Viés)

LLMs usam clichês por padrão. Substitua esses padrões proativamente. Cada regra tem um caminho de substituição sensível ao contexto.

4.1 Tipografia

  • Display / Títulos: Padrão text-4xl md:text-6xl tracking-tighter leading-none.

  • Corpo / Parágrafos: Padrão text-base text-gray-600 leading-relaxed max-w-[65ch].

  • Escolha de fonte sans:

    • Desencorajado como padrão: Inter. Escolha Geist, Outfit, Cabinet Grotesk, Satoshi ou uma serifa apropriada à marca primeiro.
    • Substituição: Inter é aceitável quando o usuário explicitamente pedir uma sensação neutra / padrão / estilo Linear, ou quando o briefing for um site de setor público / foco em acessibilidade.
  • Pares para conhecer: Geist + Geist Mono, Satoshi + JetBrains Mono, Cabinet Grotesk + Inter Tight, GT America + IBM Plex Mono.

  • DISCIPLINA DE SERIFA (MUITO DESENCORAJADO COMO PADRÃO):

    • Serifa é muito desencorajada como a fonte padrão para qualquer projeto. "Parece criativo / premium / editorial" NÃO é uma razão para usar serifa. O modelo mental padrão do agente de que "briefing criativo = serifa" é o indicador de IA mais testado em rodadas de produção.
    • Serifa é aceitável apenas quando UM destes é explicitamente verdadeiro:
      • O briefing da marca literalmente nomeia uma fonte serifada, OU
      • A família estética é genuinamente editorial / luxo / publicação / manuscrito / herança / vintage E você pode articular por que esta serifa específica se encaixa nesta marca específica
    • Para todo o resto (agência criativa, estúdio de design, marca moderna, consumidor premium, portfólio, estilo de vida), padrão sans-serif display (Geist Display, ABC Diatype, Söhne Breit, Cabinet Grotesk Display, Migra Sans, GT Walsheim, Inter Display, PP Neue Montreal). Fontes sans display não são "chatos" — eles são o padrão pela mesma razão que o preto é o padrão na moda.
    • REGRRA DE ÊNFASE (relacionada): Quando você quiser enfatizar uma palavra dentro de um título (o movimento cinético "e design espacial"), use itálico ou negrito da MESMA fonte. NÃO injete uma palavra serifada aleatória em um título sans (ou vice-versa) apenas para adicionar interesse visual. Ênfase de família mista é amador. Ênfase itálico/negrito na mesma família é a jogada certa.
    • Especificamente PROIBIDO como padrões: Fraunces e Instrument_Serif (as duas serifas de display favoritas de LLM).
    • Se uma serifa for justificada (raro, conforme acima), alterne deste pool, NÃO reutilize a mesma serifa em projetos consecutivos: PP Editorial New, GT Sectra Display, Cardinal Grotesque, Reckless Neue, Tiempos Headline, Recoleta, Cormorant Garamond, Playfair Display, EB Garamond, IvyPresto, Migra, Editorial Old, Saol Display, Söhne Breit Kursiv, Domaine Display, Canela, Schnyder, Tobias, NB Architekt, I want a custom one.

Habilidades Relacionadas