shadcn-first

Prioriza o uso de blocos, componentes e temas shadcn/ui sobre UI customizada para garantir consistência, acessibilidade e manutenibilidade em projetos React.

O que é shadcn-first?

O shadcn-first é uma skill prática para agentes de IA que atuam em desenvolvimento front-end com React e shadcn/ui. Ela estabelece uma hierarquia clara de implementação: primeiro tente blocos prontos (ui.shadcn.com/blocks), depois componentes do registro oficial, depois composições simples, e por último escreva algo manualmente — sempre com uma justificativa documentada. A skill suporta agentes com acesso a dois MCP servers: `shadcn-official` (projeto-aware, para trabalho real) e `shadcn` (registro-wide, para blocos e temas). Antes de declarar uma tarefa como concluída, o agente deve executar `get_audit_checklist` e reportar métricas como linhas de UI customizada removidas, componentes instalados, ocorrências de `style={{}}`, e prova visual (screenshot). A abordagem reduz drift técnico, garante focus rings, navegação por teclado, estados vazios e ARIA sem esforço extra, e força consistência visual através de variáveis de tema, evitando CSS por tela. A skill também lista componentes frequentemente reinventados (sidebar, command, table, form, etc.) e proíbe emojis em UI, círculos com texto para logos, múltiplas cores de destaque e forking de componentes para mudar cor — em vez disso, alterar a variável de tema.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/getedgehq/skills/tree/main/shadcn-first

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

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

Documentação

O que shadcn-first faz?

Alguém mantém esse código depois de você. Cada div escrita manualmente com classes personalizadas e cada style={{}} é algo que eles precisam manter vivo – e ele se degrada. UI feita à mão também descarta silenciosamente a qualidade que vem de fábrica com a biblioteca: focus rings, estados hover e active, navegação por teclado, skeletons, estados vazios, ARIA.

A ordem. Nunca pule uma etapa.

  1. Bloco. ui.shadcn.com/blocks tem sidebars, dashboards, logins, tabelas de dados completos. Instale o bloco.
  2. Componente. Se nenhum bloco servir, use um componente do registro.
  3. Componha dois ou três componentes.
  4. Escreva você mesmo. Só aqui, e a mensagem do commit deve nomear qual bloco ou componente você avaliou e por que não serviu.

Adapte o design ao componente, não o componente ao design. A marca e a linguagem visual são alcançadas por variáveis de tema em um único tema, nunca por CSS por tela junto ao componente.

Ferramentas, e qual usar

Dois servidores MCP estão configurados. Eles fazem trabalhos diferentes.

shadcn-official (npx shadcn@latest mcp) é ciente do projeto: ele lê o components.json do repositório. Use-o para o trabalho real.

FerramentaUse para
get_project_registriesconfirmar se o projeto foi inicializado
search_items_in_registriesencontrar o componente ideal, busca difusa
list_items_in_registriesver tudo disponível
view_items_in_registriesler o código-fonte real e as dependências de um componente antes de usá-lo
get_item_examples_from_registriescopiar um exemplo real de uso em vez de adivinhar a API
get_add_command_for_itemsobter a linha exata npx shadcn add … e depois executá-la
get_audit_checklistexecutar depois de escrever código. Este é o portão de validação.

shadcn (@jpisnice/shadcn-ui-mcp-server) opera no registro inteiro e conhece blocos e temas: list_blocks, get_block, list_themes, get_theme, get_component_demo. Use-o para a etapa 1 e para temas.

Se um projeto não tiver components.json, as ferramentas oficiais dão erro. Execute npx shadcn@latest init primeiro, depois continue.

Para interfaces de chat com IA, use prompt-kit (prompt-kit.com, compatível com shadcn): chat-container, message, prompt-input, scroll-button, markdown, code-block, loader. Mesma regra: instale em vez de recriar.

Componentes que as pessoas reinventam em vez de instalar

sidebar (colapsável, com menu do usuário no rodapé), command (paleta Cmd+K), table + bloco de tabela de dados TanStack, tabs, sheet, dialog, alert-dialog, popover, tooltip, skeleton, sonner (toasts), form (react-hook-form + zod), breadcrumb, resizable, scroll-area, avatar, badge, separator, dropdown-menu, select, collapsible, chart.

Se você se pegar construindo qualquer um desses manualmente, pare e instale.

Atalhos de teclado

Use Cmd+K para a paleta de comandos; essa é a convenção do cmdk que o componente command já entrega. Cmd+L é reservado pelo navegador para a barra de endereços e não pode ser interceptado de forma confiável no Chrome. Se alguém pedir Cmd+L, vincule Cmd+K, adicione Cmd+L oportunisticamente e explique o motivo.

Pronto significa medido, não apenas afirmado

Antes de reportar como concluído, execute get_audit_checklist e reporte os números:

  • linhas de UI customizada removidas
  • blocos e componentes instalados
  • ocorrências restantes de style={{}} (grep -rc 'style={{' src/)
  • por tela: elementos de components/ui/ versus escritos manualmente

Qualquer coisa ainda escrita manualmente deve estar lá com um motivo declarado, não ser ignorada. Uma captura de tela é a prova de que a tela renderiza; as contagens são a prova de que a regra foi seguida. Ambos, senão não está pronto.

Não faça

  • Sem emojis na UI. Ícones SVG reais (Lucide já vem com shadcn).
  • Sem texto dentro de círculos para logotipos de marca. Use caminhos SVG reais: SimpleIcons > svgl.app > gilbarbara/logos > favicon.
  • No máximo uma ou duas cores de destaque. Sem bordas esquerdas coloridas em cards. Sem gradiente em todo elemento.
  • Não faça fork de um componente para mudar uma cor. Altere a variável de tema.

Individual skills in this repo

This repo contains 18 individual skills — each has its own dedicated page.

getedgehq/agent-evals

Build evals for an AI agent that already does real work. Use when someone asks "how do I know my agent is right", wants to test an agent before trusting it, compare models on cost versus quality, or turn production failures into tests. Walks from first tasks and yes/no verifiers, to isolated environments, to a trace-driven improvement loop.

getedgehq/cli-ux-review

Audit a command-line tool for user-friendliness — clear situation / next-step / options in every output, colour-highlighted runnable commands, no raw jargon, no silent hangs. Invoke for "CLI UX audit", "review my CLI", "is this CLI intuitive", or before any CLI release.

getedgehq/generate-image

Generate images with OpenAI GPT Image 2 via the Codex CLI, billed through the user's ChatGPT Plus subscription (no OpenAI API key, no per-image API cost). Use when the user asks to create, generate, or make an image, picture, illustration, icon, hero graphic, or concept art from a text prompt.

getedgehq/harness-first

Diagnose and fix an unreliable, expensive, or unsafe LLM agent by auditing its harness (golden set, judge, cost caps, data layer, action approvals, tracing) before blaming or swapping the model. Use when someone says an agent is "burning tokens", "hallucinating", "brittle", gives inconsistent answers, asks whether to switch to a cheaper/better model, or wants to ship an agent or prompt change to customers.

getedgehq/http-error-triage

Run before concluding anything from an HTTP error on a third-party API. Separates a real credential/entitlement problem from a CDN or WAF block, a wrong endpoint, or a client-signature ban. Use whenever an API returns 401/403/402/429 and you are about to say "the key is dead", "credits are exhausted", "the plan lacks access", or "we are rate limited".

getedgehq/linkedin-media-prep

Convert, crop, resize, and compress images and videos for optimal LinkedIn upload quality and file size. Use when the user wants to prepare a photo, image, or video for LinkedIn (profile picture, cover photo, post image, article featured image, post video, or video ad), optimize file size for LinkedIn, crop and resize for LinkedIn dimensions, convert HEIC/RAW/PNG/MOV to LinkedIn-ready JPEG or MP4, or mentions LinkedIn media requirements, specs, or limits.

getedgehq/monid

>-

getedgehq/opendraft

An 18-agent pipeline that turns one topic line into a drafted

getedgehq/people-search

Find and rank professional people for recruiting, partnerships, sales, or research from user-provided data, public web sources, an authenticated search session, or a connected provider. Use for people discovery, LinkedIn or Sales Navigator search design, profile-list ranking, or provider filter translation.

getedgehq/rocketlist

Turn a CV into a shortlist of live startup roles from Rocketlist's public job board, including adjacent job titles the person would never have searched for, each with its published salary, the evidence for the fit, and a direct apply link. Use for "find roles I would be a strong fit for", career pivots, remote or VC-backed job hunts, and salary-visible role discovery.

getedgehq/security-audit-checklist

Run a comprehensive security audit across application code, cloud infrastructure, containers, CI/CD pipelines, and infrastructure-as-code. Covers privacy compliance, OWASP basics, secret leakage, API security, IAM misconfigurations, storage exposure, Kubernetes hardening, and network security. Use when the user asks to audit, review, or harden app or cloud security, check for secrets, scan for XSS/SQLi, verify security headers, review Terraform/CloudFormation, audit AWS/GCP/Azure configs, or perform any security-focused review.

getedgehq/skills

Develop or review a branded long-form YouTube channel using Simon Kaiser's public creator-led approach: audience fit, recurring formats, natural brand integration, Time with Brand, and an organic, paid, and Shorts strategy. Use for channel strategy, format briefs, and pilots.

getedgehq/skills

Build a YouTube strategy, evidence-backed idea slate, and title plus thumbnail package using Paddy Galloway's public method. Use when planning a channel, choosing concepts, or preparing a video before filming.

getedgehq/skills

Build or review a buyer-centered strategic narrative using Andy Raskin's public method. Use for sales or investor deck stories, homepage positioning, keynotes, launch narratives, and why-now messaging.

getedgehq/skills

Turn a product URL, launch brief, or approved script into a production-ready launch video. Use for product reveals, feature announcements, SaaS launches, and narrated product films; not for generic explainers or editing existing footage.

getedgehq/strip-image-ai-metadata

Strip C2PA and AI-generation metadata from images (PNG, JPEG, WebP) to remove "Generated by AI" / "ChatGPT" / "DALL-E" labels that platforms like LinkedIn, Instagram, and X display. Use when the user wants to clean AI-generated images before posting, remove AI attribution from photos, strip C2PA manifests, sanitize image metadata for professional use, or verify whether an image contains C2PA data.

getedgehq/top-down-comms

>-

getedgehq/workplan

Create, update, or close work plans for multi-step tasks. Use when starting refactors, bug lists, feature work, migrations, or any task with 2+ steps. Also use after auto-compaction to re-orient. Triggers: "workplan", "work plan", "create a plan", "what's the plan", "where was I", or when Claude detects

Habilidades Relacionadas