salesforce-component-standards
Ajuda seu agente a criar componentes de interface para o Salesforce. Garante que eles sigam padrões de qualidade, acessibilidade e segurança.
O que ela faz
Este guia ajuda a criar componentes de interface para o Salesforce que são seguros, acessíveis e seguem as melhores práticas. Ele garante que os componentes funcionem bem com o design do Salesforce (SLDS) e sejam fáceis de usar.
Quando usar
- ✓Ao criar novas partes visuais (componentes) para o Salesforce.
- ✓Ao revisar componentes existentes para garantir que estão seguros e eficientes.
- ✓Quando quiser que seus componentes sigam os padrões de qualidade do Salesforce.
Exemplo do que pedir para a IA
“Como posso garantir que meu componente Lightning Web seja acessível para todos os usuários?”
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 guia detalha regras específicas para diferentes tipos de componentes (LWC, Aura, Visualforce). Ele explica como lidar com dados, segurança, estilo visual e testes, garantindo que tudo siga os padrões definidos.
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 github/awesome-copilot --skill salesforce-component-standardsOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/salesforce-component-standards/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.
Padrões de Qualidade de Componentes Salesforce
Aplique estas verificações a todos os LWCs, componentes Aura e páginas Visualforce que você escrever ou revisar.
Seção 1 — Padrões de Qualidade LWC
1.1 Seleção de Padrão de Acesso a Dados
Escolha o padrão de acesso a dados correto antes de escrever o código do controlador JavaScript:
| Caso de uso | Padrão | Por quê |
|---|---|---|
| Ler um único registro reativamente (segue a navegação) | @wire(getRecord, { recordId, fields }) |
Lightning Data Service — em cache, reativo |
| Formulário CRUD padrão para um único objeto | <lightning-record-form> ou <lightning-record-edit-form> |
FLS, CRUD e acessibilidade integrados |
| Consulta de servidor complexa ou lista filtrada | @wire(apexMethodName, { param }) em um método cacheable=true |
Permite cache; wire é reativado na mudança de parâmetro |
| Ação acionada pelo usuário, DML ou chamada de servidor não cacheável | apexMethodName(params).then(...).catch(...) imperativo |
Necessário para DML — métodos com wire não podem ser @AuraEnabled sem cacheable=true |
| Comunicação entre componentes (sem pai compartilhado) | Lightning Message Service (LMS) | Desacoplado, funciona entre limites do DOM |
| Relacionamentos de gráfico multi-objeto | GraphQL @wire(gql, { query, variables }) |
Uma única viagem de ida e volta para dados relacionados complexos |
1.2 Regras de Segurança
| Regra | Aplicação |
|---|---|
Nenhum dado bruto do usuário em innerHTML |
Use a ligação {expression} no template — o framework escapa automaticamente. Nunca use this.template.querySelector('.el').innerHTML = userValue |
Métodos Apex @AuraEnabled aplicam CRUD/FLS |
Use WITH USER_MODE em SOQL ou verificações explícitas de Schema.sObjectType |
| Nenhum ID específico da organização codificado no JavaScript do componente | Consulte ou passe como prop — nunca incorpore IDs de registro no código-fonte |
Propriedades @api do pai: valide antes de usar |
Um pai pode passar qualquer coisa — valide o tipo e o intervalo antes de usar como parâmetro de consulta |
1.3 Padrões de SLDS 2 e Estilização
- Nunca codifique cores:
color: #FF3366→ usecolor: var(--slds-c-button-brand-color-background)ou um token SLDS semântico. - Nunca substitua classes SLDS com
!important— componha com propriedades CSS personalizadas. - Use componentes base
<lightning-*>onde quer que existam:lightning-button,lightning-input,lightning-datatable,lightning-card, etc. - Componentes base incluem SLDS 2 integrado, modo escuro e acessibilidade — evite reimplementar seu comportamento.
- Se estiver usando CSS personalizado, teste em modo claro e modo escuro antes de declarar como concluído.
1.4 Requisitos de Acessibilidade (WCAG 2.1 AA)
Todo componente LWC deve passar em todos estes antes de ser considerado concluído:
- Todas as entradas de formulário têm
<label>ouaria-label— nunca use placeholder como o único rótulo - Todos os botões apenas com ícone têm
alternative-textouaria-labeldescrevendo a ação - Todos os elementos interativos são alcançáveis e operáveis por teclado (Tab, Enter, Espaço, Escape)
- A cor não é o único meio de transmitir status — combine com texto, ícone ou atributos
aria-* - Mensagens de erro são associadas à sua entrada via
aria-describedby - O gerenciamento de foco está correto em modais — o foco se move para dentro do modal ao abrir e volta ao fechar
1.5 Regras de Comunicação de Componentes
| Direção | Mecanismo |
|---|---|
| Pai → Filho | Propriedade @api ou chamada de um método @api |
| Filho → Pai | CustomEvent — this.dispatchEvent(new CustomEvent('eventname', { detail: data })) |
| Componentes irmãos / não relacionados | Lightning Message Service (LMS) |
| Nunca use | document.querySelector, window.* ou bibliotecas Pub/Sub |
Para componentes de tela do Flow:
- Eventos que precisam alcançar o tempo de execução do Flow devem definir
bubbles: trueecomposed: true. - Exponha
@api valuepara ligação bidirecional com a variável do Flow.
1.6 Regras de Desempenho JavaScript
- Sem efeitos colaterais em
connectedCallback: ele é executado em cada anexo do DOM — evite DML, computação pesada ou mutações de estado de renderização aqui. - Proteja
renderedCallback: sempre use uma proteção booleana para evitar loops de renderização infinitos. - Evite armadilhas de propriedade reativa: definir uma propriedade reativa dentro de
renderedCallbackcausa uma nova renderização — use-a apenas quando necessário e protegida. - Não armazene grandes conjuntos de dados no estado do componente — pagine ou transmita grandes resultados em vez disso.
1.7 Requisitos de Teste Jest
Todo componente que lida com interação do usuário ou recupera dados Apex deve ter um teste Jest:
// Expectativas mínimas de cobertura de teste
…
Perguntas frequentes
O que são LWC, Aura e Visualforce?
São diferentes tecnologias usadas para construir a interface do usuário dentro do Salesforce.
O que é SLDS 2?
É o sistema de design do Salesforce, que define a aparência e o comportamento dos componentes para manter a consistência visual.
O que significa 'acessibilidade' (WCAG 2.1 AA)?
Significa que os componentes devem ser utilizáveis por todas as pessoas, incluindo aquelas com deficiências visuais, auditivas ou motoras, seguindo um padrão internacional.
Detalhes
Descrição original do autor
Quality standards for Salesforce Lightning Web Components (LWC), Aura components, and Visualforce pages. Covers SLDS 2 compliance, accessibility (WCAG 2.1 AA), data access pattern selection, component communication rules, XSS prevention, CSRF enforcement, FLS/CRUD in AuraEnabled methods, view state management, and Jest test requirements. Use this skill when building or reviewing any Salesforce UI
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5356
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
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