Protocolo padrão de implementação para garantir qualidade e consistência
Para Quem é Este Guia?
Este documento serve como protocolo padrão para:
👥 Time Easy Builder: Ao criar e subir templates
🎨 Usuários: Ao personalizar e criar páginas
Objetivo: Garantir que todos os projetos sigam os mesmos padrões de qualidade, performance e manutenibilidade. Use como checklist e referência rápida!
1. Nomenclatura de Elementos
Por Que Nomear Elementos?
Quando você (ou outra pessoa) voltar para editar a página daqui 3 meses, nomes claros economizam horas de trabalho tentando entender onde está cada coisa.
**Vantagens:**
- Escalável infinitamente (não perde qualidade)
- Arquivo MUITO pequeno
- Pode alterar cores via CSS
**Quando usar:**
- Logos da empresa
- Ícones (ícones do Font Awesome já são SVG internamente)
- Ilustrações vetoriais
- Formas geométricas
**Onde criar:**
- Figma (exportar como SVG)
- Illustrator (salvar como SVG)
- Canva Pro (baixar como SVG)
Não use SVG para fotos! Só funciona com elementos vetoriais.
REM é relativo ao tamanho base do navegador (16px), então:
✅ Respeita preferências do usuário (acessibilidade)
✅ Escala proporcionalmente
✅ Mais fácil de ajustar globalmente
PX é fixo:
❌ Não respeita preferências do usuário
❌ Difícil de manter consistência
❌ Não escala bem
Conversão rápida: 1rem = 16px (padrão dos navegadores)
Tabela Completa de Tamanhos
Use esta tabela como referência ao ajustar textos:
Elemento
Desktop (px)
Tablet (px)
Mobile (px)
Desktop (rem)
Tablet (rem)
Mobile (rem)
H1
48-60px
36-48px
28-36px
3-3.75rem
2.25-3rem
1.75-2.25rem
H2
36-42px
28-36px
24-28px
2.25-2.625rem
1.75-2.25rem
1.5-1.75rem
H3
28-32px
24-28px
20-24px
1.75-2rem
1.5-1.75rem
1.25-1.5rem
H4
22-26px
20-24px
18-22px
1.375-1.625rem
1.25-1.5rem
1.125-1.375rem
Texto Base
16-18px
15-17px
14-16px
1-1.125rem
0.9375-1.0625rem
0.875-1rem
Texto Pequeno
14-15px
13-14px
12-13px
0.875-0.9375rem
0.8125-0.875rem
0.75-0.8125rem
Quando Usar Cada Tamanho
H1 - Título Principal (apenas 1 por página!)
Onde usar:
- Título do Hero (primeira seção)
- Único H1 da página inteira!
**Exemplo:**
> "Crie Sites Profissionais em Horas, Não Dias"
**Desktop:** 3rem (48px)
**Mobile:** 1.75rem (28px)
SEO importante: Use APENAS UM H1 por página! Google penaliza múltiplos H1s.
H2 - Títulos de Seção
Onde usar:
Início de cada seção principal
"Sobre Nós", "Nossos Serviços", "Depoimentos"
Exemplo:
"O Que Nossos Clientes Dizem"
Desktop: 2.25rem (36px)
Mobile: 1.5rem (24px)
H3 - Subtítulos e Cards
Onde usar:
Títulos de cards
Subseções dentro de seções
Nomes de serviços/produtos
Exemplo:
"Consultoria Estratégica"
Desktop: 1.75rem (28px)
Mobile: 1.25rem (20px)
Texto Base - Parágrafos
Onde usar:
Todo texto corrido
Descrições
Conteúdo principal
Desktop: 1rem (16px)
Mobile: 0.875rem (14px)
Line-height: 1.6-1.8 (espaço entre linhas)
Tipografia Fluida com clamp()
O que é clamp(): Faz o texto crescer/diminuir automaticamente conforme o tamanho da tela, SEM media queries!
Sintaxe:clamp(mínimo, ideal, máximo)
Exemplo prático:
/* H1 que escala automaticamente */font-size: clamp(1.75rem, 5vw, 3.75rem);
/* Mobile: 1.75rem → Desktop: 3.75rem → Entre eles: 5% da largura da tela */
Como usar: copie a linha acima e cole no campo "CSS Personalizado" da página (ou no CSS do título). O texto vai encolher sozinho no celular e crescer no computador, sem você fazer nada. Se quiser, troque o 1.75rem pelo menor tamanho que o texto pode ter e o 3.75rem pelo maior; o 5vw no meio controla a velocidade dessa mudança (pode deixar como está).
Por que usar:
✅ Menos código (não precisa media query)
✅ Transição suave entre tamanhos
✅ Mais fluido e profissional
Use clamp() para H1 e H2! Para textos menores, valores fixos são mais previsíveis.
4. Espaçamentos (Padding e Margin)
Por Que Usar Sistema de Múltiplos?
Consistência visual! Usar sempre múltiplos de 8px (0.5rem) cria ritmo visual harmonioso.
**Como usar:** copie o código acima e cole no campo "CSS Personalizado" do botão. Ele deixa o botão com um espaço interno confortável, texto de tamanho normal e cantos levemente arredondados. Quer cantos mais arredondados? Aumente o `0.5rem`. Quer cantos retos? Use `0`.
Botão Grande (CTA Forte)
Quando usar: CTA PRINCIPAL da página (ex: "Comprar Agora", "Começar Grátis")
Breakpoint
Padding
Font Size
Desktop
1.25rem 2.5rem
1.125-1.25rem
Tablet
1.125rem 2.25rem
1.0625-1.1875rem
Mobile
1rem 2rem
1-1.125rem
Quando usar:
Hero (botão principal)
Final da página de vendas
Ações de alta prioridade
Botão Pequeno (Secundário)
Quando usar: Ações secundárias ("Saiba Mais", "Ver Detalhes")
Breakpoint
Padding
Font Size
Desktop
0.75rem 1.5rem
0.875-1rem
Tablet
0.625rem 1.25rem
0.8125-0.9375rem
Mobile
0.625rem 1.25rem
0.8125-0.9375rem
Botão Full Width no Mobile
Por quê fazer: Botões largos no mobile são MUITO mais fáceis de clicar!
/* Desktop e Tablet */width: auto;
/* Mobile */width: 100%; /* Ocupa tela toda */
Como usar: o jeito mais simples é fazer pelo Elementor (veja a dica abaixo). Se preferir colar código, ponha width: 100% no CSS do botão na visão mobile — assim ele estica e ocupa a tela toda no celular, ficando bem mais fácil de tocar. Não precisa mudar nada no código.
Como usar: copie o código acima e cole no campo "CSS Personalizado" da página. Ele deixa o botão com fundo colorido em degradê que sobe levemente quando o mouse passa, e faz os cards crescerem um pouco ao passar o mouse. Para funcionar, o botão precisa ter a classe btn-cta-hero e os cards a classe card-servico (você coloca isso na aba "Avançado" do elemento). Quer outras cores no fundo? Troque os dois códigos de cor #667eea e #764ba2.
Boas Práticas de CSS
1. Use Classes, Não IDs para Estilos
Por quê:
IDs são únicos (só podem ser usados 1x)
Classes são reutilizáveis
Errado:css #botao-1 { color: blue; } /* ID - não reutilizável */
Como usar: este é um modelo de organização. Quando você escrever CSS de um elemento, agrupe na ordem mostrada (posição, tamanho/espaço, texto, aparência, animação) e use os comentários /* ... */ como divisórias. Não precisa copiar tudo: aproveite só as linhas que fizer sentido para o seu caso.
Como usar: copie o código acima e cole no campo "CSS Personalizado" da página. Troque os códigos de cor (#667eea, #764ba2, etc.) pelas cores da sua marca. A partir daí, sempre que precisar de uma cor, use o apelido (por exemplo var(--cor-primaria)) em vez do código. A vantagem: se um dia quiser mudar a cor do site inteiro, basta trocar em um lugar só, aqui no topo.
Vantagem: Troca cores do site inteiro mudando só as variáveis!
4. Prefira Flexbox/Grid a Position Absolute
Por quê: Position absolute quebra responsividade!
Errado (quebra no mobile):css .elemento { position: absolute; top: 100px; left: 200px; /* Vai ficar torto no mobile! */ }
Certo (responsivo):css .container { display: flex; justify-content: center; align-items: center; gap: 1rem; /* Funciona em qualquer tela */ }
Como usar: o foco aqui é o hábito de deixar um comentário (o texto entre /* */) explicando truques que não são óbvios, para você lembrar depois. Se for usar o primeiro trecho, copie e cole no CSS do elemento que estiver com problema de sobreposição no navegador Safari. Não precisa mudar nada.
7. Padrões de JavaScript
Quando Usar JavaScript no Elementor
Use JS para:
✅ Interações (clique, scroll, hover complexo)
✅ Animações programáticas
✅ Validação de formulários customizada
✅ Integração com APIs
NÃO use JS para:
❌ Coisas que CSS faz melhor (animações simples, hover, transições)
Como usar: copie este código e cole num bloco/widget de HTML da página (dentro de uma tag de script) ou no campo de código personalizado. A primeira parte faz a página rolar suavemente até a seção quando alguém clica num link de menu. A segunda parte abre e fecha uma janela de vídeo. Para o vídeo funcionar, o botão precisa chamar abrirModal com o código do vídeo do YouTube. Se não for usar vídeo, pode apagar a segunda parte.
Boas Práticas de JavaScript
Use const e let, não var
// ❌ Errado (antigo)var nome = "João";
// ✅ Certo (moderno)const nome = "João"; // Não mudalet idade = 25; // Pode mudar```
**Por quê:** Mais seguro e previsível
Comente o QUE e POR QUÊ
// Aguarda 300ms antes de executar// para evitar múltiplos cliquessetTimeout(() => {
enviarFormulario();
}, 300);
```
**Como usar:** o ponto aqui é o hábito de escrever um comentário curto explicando o porquê do código. Se for usar este trecho, ele espera um instantinho (0,3 segundo) antes de enviar o formulário, evitando envio duplicado por clique repetido. Quer mais ou menos espera? Troque o número `300` (são milésimos de segundo; 1000 = 1 segundo).
**Por quê:** Você vai esquecer daqui 1 semana!
Use addEventListener
// ❌ Evite inline
<button onclick="clicar()">
// ✅ Use addEventListener
button.addEventListener('click', () => {
// código aqui
});
```
**Por quê:** Mais organizado e manutenível
Valide Antes de Usar
const elemento = document.querySelector('.botao');
if (elemento) {
elemento.addEventListener('click', () => {
// Código seguro
});
}
```
**Como usar:** copie este modelo quando for mexer com algum elemento via código. Ele primeiro confere se o elemento existe na página antes de tentar usá-lo, evitando que o resto do código pare de funcionar por causa de um erro. Troque `.botao` pela classe do elemento que você quer usar.
**Por quê:** Evita erros se elemento não existir
8. Estrutura de Headings (SEO)
Por Que Hierarquia Importa?
Google usa headings para entender seu site!
✅ Hierarquia correta = Melhor SEO
❌ Hierarquia errada = Google confuso = Menos visitantes
Regras Fundamentais
1 H1 por página (OBRIGATÓRIO!)
Por quê: Google espera 1 H1 = tópico principal
Onde: Título principal do Hero
Exemplo: "Crie Sites Profissionais com Easy Builder"
Não pule níveis
Errado: H1 → H3 (pulou o H2)
Certo: H1 → H2 → H3 → H4
Por quê: Google entende como estrutura lógica de documento
Cada seção principal = H2
Seções do site:
H2: Sobre Nós
H2: Nossos Serviços
H2: Depoimentos
H2: Contato
Por quê: Google indexa melhor e usuário escaneia rápido
Configure via Widget Heading
No Elementor:
Use widget "Heading"
Não use widget "Text Editor" estilizado como título
Como usar: copie e cole no campo "CSS Personalizado" do botão. Ele faz o botão subir levemente quando o mouse passa por cima — um efeito leve, que não deixa a página pesada. Para funcionar, o botão precisa ter a classe btn-cta (aba "Avançado" do elemento). Quer que ele suba mais? Aumente o 3px.
4. CSS e JS Limpos
Impacto: Código desnecessário = site mais lento!
Checklist:
✅ Remova CSS não usado
✅ Desabilite widgets não usados
✅ Regenere CSS regularmente
✅ Minifique código em produção
Como regenerar CSS:
Elementor → Ferramentas → Regenerate CSS & Data
11. Responsividade: Como Pensar Mobile-First
Por Que Mobile-First?
70% dos acessos vêm de celular! Se o site não funciona bem no mobile, você perde 70% das conversões.
Breakpoints: O Que São e Como Usar
Breakpoints = Pontos onde layout muda
Breakpoint
Largura
Dispositivos
Quando Ajustar
Mobile
até 767px
Celulares
SEMPRE configure!
Tablet
768-1024px
iPads, tablets
Configure se layout quebrar
Desktop
1025px+
Notebooks, PCs
Configuração padrão
Como Configurar no Elementor
1. Ative modo responsivo
Clique no ícone de dispositivo (desktop/tablet/mobile) embaixo no Elementor
2. Mude para Mobile
Clique em "Mobile" para ver preview mobile
3. Ajuste elemento por elemento
Tamanhos de fonte (reduza)
Padding (reduza)
Margin (reduza)
Altura de seções (ajuste)
Oculte elementos desnecessários (Hide on Mobile)
4. Teste em dispositivo real
IMPORTANTE: Preview do Elementor nem sempre é exato!
Teste no celular de verdade ou use DevTools do navegador (F12)
Técnicas Responsivas Essenciais
Ocultar Elementos no Mobile
Quando usar: Elementos decorativos, textos longos, imagens grandes
Como fazer:
Selecione elemento
Avançado → Responsivo
Marque: "Hide On Mobile"
Exemplo: Imagem decorativa gigante que polui mobile
Reverse Columns (Inverter Ordem)
Quando usar: Quando imagem está à esquerda no desktop mas deve ficar ABAIXO do texto no mobile
Como fazer:
Selecione container
Layout → Responsivo
Mobile: "Reverse Columns"
Antes (desktop): [Imagem] [Texto]
Depois (mobile): [Texto] [Imagem]
Por quê: Usuário lê texto antes de ver imagem (ordem lógica!)
Full Width no Mobile
Quando usar: Botões, formulários, imagens
Por quê: Aproveita espaço pequeno do mobile!
Como fazer:
Avançado → Width
Desktop: Auto ou Custom
Mobile: 100%
Stack Vertical no Mobile
Quando usar: Grid de 3-4 colunas no desktop
Desktop: [Card 1] [Card 2] [Card 3]
Mobile: [Card 1] [Card 2] [Card 3]
Como fazer: Elementor faz automaticamente, mas ajuste gaps!
CRÍTICO Mobile: Font size mínimo 16px (1rem)! Se menor, iOS dá zoom automático e quebra layout!
Labels e Placeholders
Labels (texto acima do campo):
<label>Nome Completo</label><inputtype="text"placeholder="Digite seu nome">
Como usar: no Elementor você normalmente cria o campo pelo próprio widget de formulário, sem digitar esse código. Mas é assim que ele funciona por baixo: o "Nome Completo" é o rótulo que fica acima do campo (importante para acessibilidade) e o "Digite seu nome" é o texto-exemplo cinza que some quando a pessoa começa a digitar. Troque esses dois textos pelo que fizer sentido no seu campo.
Quando usar:
✅ Sempre use labels (acessibilidade!)
✅ Placeholder como exemplo adicional
❌ Não use APENAS placeholder sem label
Font size labels:
Desktop: 0.875-1rem
Mobile: 0.875-1rem (não menor!)
Textarea (Campo de Mensagem)
Altura mínima:
Desktop: 9rem (≈6 linhas de texto)
Mobile: 7rem (≈5 linhas)
Por quê: Usuário precisa ver o que está escrevendo!
Tabela Completa - Formulários (Detalhada)
Propriedade
Desktop
Tablet
Mobile
Observação
Input Height
3.125rem - 3.5rem (50-56px)
3rem - 3.25rem (48-52px)
2.75rem - 3rem (44-48px)
Mínimo 44px mobile (area de toque)
Input Padding
0.75rem 1.25rem
0.75rem 1.125rem
0.625rem 1rem
Conforto visual
Input Font Size
1rem (16px)
0.9375rem (15px)
1rem (16px)
CRÍTICO: 16px mobile evita zoom iOS
Border Radius
0.25rem - 0.5rem
0.25rem - 0.5rem
0.25rem - 0.5rem
Consistente em todos
Gap entre campos
1.25rem - 1.5rem
1.125rem - 1.25rem
1rem - 1.125rem
Separação clara
Label Font Size
0.875rem - 1rem
0.8125rem - 0.9375rem
0.875rem - 1rem
Legível mas menor que input
Label Margin Bottom
0.5rem
0.375rem
0.375rem
Espaço entre label e campo
Textarea Min-Height
9rem (144px ≈6 linhas)
8rem (128px)
7rem (112px)
Usuário vê o que digita
Largura de Campos (Width)
Tipo de Campo
Largura Recomendada
Por Quê?
Full width
width: 100%
Nome, Email, Mensagem
50% (2 colunas)
width: calc(50% - 0.75rem)
Nome + Sobrenome lado a lado
Email/Telefone
max-width: 25rem (400px)
Não precisa ser gigante
12.1. Ícones - Tamanhos Detalhados
Por Que Tamanho de Ícone Importa?
Ícones muito pequenos: Invisíveis, perdem impacto
Ícones muito grandes: Desproporcionais, amadores
Tabela Completa - Todos os Tipos de Ícones
Tipo de Ícone
Desktop
Tablet
Mobile
Quando Usar
Decorativos/Features
3rem - 4rem (48-64px)
2.5rem - 3.5rem (40-56px)
2.25rem - 3rem (36-48px)
Cards de serviços, benefícios
Em Botões
1.25rem - 1.5rem (20-24px)
1.125rem - 1.375rem (18-22px)
1rem - 1.25rem (16-20px)
Ícone ao lado de texto do botão
Inline (no texto)
1.125rem - 1.25rem (18-20px)
1rem - 1.125rem (16-18px)
1rem - 1.125rem (16-18px)
Ícone dentro de parágrafo
Redes Sociais
1.5rem - 2rem (24-32px)
1.375rem - 1.75rem (22-28px)
1.25rem - 1.5rem (20-24px)
Rodapé, links sociais
Logo
2.5rem - 4rem (40-64px)
2.25rem - 3.5rem (36-56px)
2rem - 3rem (32-48px)
Header, cabeçalho
Dica: Ícones Inline com EM
Por quê usar em para ícones inline:
/* ❌ Com rem (tamanho fixo) */.icone-inline {
font-size: 1.125rem; /* Sempre 18px */
}
/* ✅ Com em (escala com texto ao redor) */.icone-inline {
font-size: 1.2em; /* 120% do tamanho do texto pai */
}
Como usar: para um ícone que fica no meio de um texto, copie a segunda opção (font-size: 1.2em) e cole no CSS do ícone. Assim ele acompanha o tamanho do texto ao redor automaticamente. O 1.2 quer dizer "20% maior que o texto"; aumente para um ícone maior, diminua para um menor.
Vantagem: Ícone cresce/diminui junto com o texto automaticamente!
12.2. Cards em Grid - Dimensões Completas
Por Que Padronizar Cards?
Consistência visual = Profissionalismo
Cards do mesmo tamanho = Layout harmonioso e organizado
Como usar: copie e cole no campo "CSS Personalizado" da página. Ele organiza os cards em 3 colunas iguais lado a lado, com um espaço entre eles. Para funcionar, o bloco que contém os cards precisa ter a classe grid-cards (aba "Avançado"). Quer 4 colunas? Troque o 3 por 4. Quer mais espaço entre os cards? Aumente o 1.875rem.
Como usar: cole este trecho logo abaixo do anterior, no mesmo campo de CSS. Ele faz os cards passarem para 2 colunas quando a tela for de tablet (até 1024px de largura). Não precisa mudar nada; se quiser, ajuste o número de colunas no repeat(2, ...).
Como usar: cole este trecho junto dos anteriores, no mesmo campo de CSS. Ele faz os cards ficarem um embaixo do outro (uma coluna só) no celular, que é o ideal em telas pequenas. Não precisa mudar nada.
Como usar: copie e cole no campo "CSS Personalizado" da página (o bloco dos cards precisa ter a classe grid-auto). A grande vantagem deste aqui é que ele ajusta o número de colunas sozinho conforme a tela, sem você precisar configurar tablet e celular separadamente. Quer cards mais largos? Aumente o 18rem. Pode deixar o resto como está.
Use auto-fit para grid que se adapta sozinho! Menos código, mais inteligente.
Aspect Ratio para Imagens em Cards
Por quê usar: Mantém proporção perfeita em qualquer tamanho!
Como usar: escolha o trecho da proporção que você quer (16/9 para imagens deitadas tipo vídeo, 1/1 para quadradas, 4/5 para em pé estilo Instagram), copie e cole no CSS da imagem do card (que precisa ter a classe card-imagem). Isso garante que todas as imagens fiquem na mesma proporção e bem cortadas, sem ficarem esticadas. Use só uma das três versões.
12.3. Tabelas de Referência Técnica Completa
Ícones - Valores Exatos por Breakpoint
Tipo
Desktop (rem)
Desktop (px)
Tablet (rem)
Tablet (px)
Mobile (rem)
Mobile (px)
Decorativos
3 - 4
48 - 64
2.5 - 3.5
40 - 56
2.25 - 3
36 - 48
Em Botões
1.25 - 1.5
20 - 24
1.125 - 1.375
18 - 22
1 - 1.25
16 - 20
Redes Sociais
1.5 - 2
24 - 32
1.375 - 1.75
22 - 28
1.25 - 1.5
20 - 24
Inline
1.2em
-
1.2em
-
1.2em
-
Formulários - Valores Exatos por Breakpoint
Propriedade
Desktop (rem)
Desktop (px)
Tablet (rem)
Tablet (px)
Mobile (rem)
Mobile (px)
Input Height
3.125 - 3.5
50 - 56
3 - 3.25
48 - 52
2.75 - 3
44 - 48
Input Padding
0.75 1.25
12 20
0.75 1.125
12 18
0.625 1
10 16
Input Font
1
16
0.9375
15
1
16
Gap entre campos
1.25 - 1.5
20 - 24
1.125 - 1.25
18 - 20
1 - 1.125
16 - 18
Label Font
0.875 - 1
14 - 16
0.8125 - 0.9375
13 - 15
0.875 - 1
14 - 16
Textarea Min-Height
9
144
8
128
7
112
Cards em Grid - Valores Exatos por Breakpoint
Elemento
Desktop (rem)
Desktop (px)
Tablet (rem)
Tablet (px)
Mobile (rem)
Mobile (px)
Imagem Altura
15.625 - 18.75
250 - 300
13.75 - 16.25
220 - 260
12.5 - 15
200 - 240
Card Padding
1.875
30
1.5
24
1.25
20
Gap
1.875
30
1.5
24
1.25
20
Título (H3)
1.5 - 1.75
24 - 28
1.375 - 1.5
22 - 24
1.25 - 1.375
20 - 22
Descrição
0.9375 - 1
15 - 16
0.875 - 0.9375
14 - 15
0.875 - 1
14 - 16
Botões - Valores Exatos Completos (REM e PX)
Tamanho
Breakpoint
Padding (rem)
Padding (px)
Font (rem)
Font (px)
Large
Desktop
1.25 2.5
20 40
1.125 - 1.25
18 - 20
Large
Tablet
1.125 2.25
18 36
1.0625 - 1.1875
17 - 19
Large
Mobile
1 2
16 32
1 - 1.125
16 - 18
Medium
Desktop
1 2
16 32
1 - 1.125
16 - 18
Medium
Tablet
0.875 1.75
14 28
0.9375 - 1.0625
15 - 17
Medium
Mobile
0.75 1.5
12 24
0.875 - 1
14 - 16
Small
Desktop
0.75 1.5
12 24
0.875 - 1
14 - 16
Small
Tablet
0.625 1.25
10 20
0.8125 - 0.9375
13 - 15
Small
Mobile
0.625 1.25
10 20
0.8125 - 0.9375
13 - 15
13. Padrões de HTML Semântico
Por Que HTML Semântico?
Google lê HTML para entender seu site!
✅ HTML semântico = Google entende = Melhor SEO
❌ Tudo div genérica = Google confuso = SEO ruim
Tags Semânticas e Quando Usar
<header>
Quando usar: Cabeçalho do site (logo, menu)
Não confunda com <head> (metadados)
Elementor usa automaticamente se você marca seção como "Header"
<nav>
Quando usar: Menu de navegação
Exemplo: Menu principal, menu rodapé
Indica para Google: "Isso é navegação"
<main>
Quando usar: Conteúdo principal (apenas 1 por página!)
Exemplo: Todo conteúdo entre header e footer
Google prioriza conteúdo dentro de <main>
<section>
Quando usar: Cada seção temática
Exemplo: Sobre, Serviços, Depoimentos
Elementor gera automaticamente
<article>
Quando usar: Conteúdo independente (posts de blog)
Exemplo: Card de blog, notícia, produto
Indica conteúdo reutilizável
<footer>
Quando usar: Rodapé do site
Links úteis, copyright, redes sociais
Elementor marca automaticamente
Elementor cuida disso automaticamente! Mas entender ajuda a organizar melhor suas páginas.
14. Acessibilidade (A11y)
Por Que Acessibilidade?
✅ Legal: Muitos países exigem por lei
✅ Ético: 15% da população tem alguma deficiência
✅ SEO: Google favorece sites acessíveis
✅ Conversão: Mais gente consegue usar = mais vendas!
Como usar: copie a parte que você quiser e cole no campo "CSS Personalizado" da página. São três efeitos prontos: um botão que sobe ao passar o mouse (classe btn-cta), um card que cresce um pouco ao passar o mouse (classe card-servico) e um fundo com cores que se movem sozinhas (classe hero-gradiente). Lembre de colocar a classe certa no elemento, na aba "Avançado". Quer outras cores? Troque os códigos de cor (#667eea, #764ba2 e os demais).
Efeitos Visuais Comuns
Sombras
Quando usar: Cards, botões elevados, modais
```css
/* Sombra sutil (cards) */
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
/* Sombra média (hover) */
box-shadow: 0 10px 25px rgba(0,0,0,0.15);
/* Sombra forte (modais) */
box-shadow: 0 25px 50px rgba(0,0,0,0.25);
```
Como usar: escolha uma das três linhas (sutil, média ou forte), copie e cole no CSS do elemento que você quer dar profundidade. Quanto maiores os números, mais "alta" e espalhada fica a sombra. O último valor (o 0.1, por exemplo) controla a transparência: quanto menor, mais suave a sombra.
Como usar: copie e cole no CSS do bloco que vai ficar por cima de uma imagem (ele precisa ter a classe texto-sobre-imagem). O resultado é aquele efeito de "vidro fosco": o fundo fica meio borrado e o texto por cima fica legível. Quer mais desfoque? Aumente o 10px.
Como usar: escolha o tipo de degradê que quiser (reto, diagonal, do centro para fora, ou aplicado dentro do texto), copie e cole no CSS do elemento. Troque os dois códigos de cor (#667eea e #764ba2) pelas cores que você quer misturar. No degradê reto, o número com deg muda a direção (90 = da esquerda para a direita).
Para Quem é Este Guia?
Este documento serve como protocolo padrão para:
Objetivo: Garantir que todos os projetos sigam os mesmos padrões de qualidade, performance e manutenibilidade. Use como checklist e referência rápida!
1. Nomenclatura de Elementos
Por Que Nomear Elementos?
Quando você (ou outra pessoa) voltar para editar a página daqui 3 meses, nomes claros economizam horas de trabalho tentando entender onde está cada coisa.
Problema: Elementos com nomes genéricos
Solução: Nomes descritivos e padronizados
Padrão Recomendado
Use:
tipo-funcao-identificadorContainers
Exemplos:
container-herocontainer-servicoscontainer-depoimentoscontainer-contatocontainer-rodapeQuando usar: Todo container principal de seção
Botões
Exemplos:
btn-cta-principal(botão de ação principal)btn-whatsapp(botão WhatsApp)btn-secundariobtn-fechar-modalQuando usar: Todos os botões importantes
Cards
Exemplos:
card-servico-01card-beneficio-velocidadecard-depoimento-mariacard-produto-plano-proQuando usar: Cards repetitivos ou importantes
Seções
Exemplos:
secao-sobresecao-contatosecao-portfoliosecao-precosQuando usar: Seções principais da página
Como Nomear no Elementor
Selecione o elemento
Clique no elemento (container, coluna, widget)
Abra configurações avançadas
Vá na aba "Avançado"
Adicione ID ou Class CSS
hero-principal)btn-cta)Dica do time: Nomeie ANTES de começar a personalizar. Fica mais fácil achar depois!
2. Otimização de Imagens
Por Que Otimizar Imagens?
80% da lentidão de sites vem de imagens pesadas!
Imagem de 5MB (direto da câmera) = Site lento = Cliente insatisfeito = Menos vendas
Nunca suba fotos direto da câmera ou celular! Sempre otimize antes.
Formatos: O Que Usar e Quando
AVIF (Melhor!)
1ª Escolha - Formato Mais Moderno
Vantagens:
Quando usar:
Como converter:
Configuração recomendada:
WebP (Ótimo!)
2ª Escolha - Amplamente Suportado
Vantagens:
Quando usar:
Como converter:
Configuração recomendada:
SVG (Vetores!)
Para Ícones, Logos e Ilustrações
Não use SVG para fotos! Só funciona com elementos vetoriais.
Tamanhos: O Que Usar Para Cada Caso
Lembre-se: Largura Desktop = 1920px / Mobile = 1080px (padrão Easy Builder)
Proporções: Quando Usar Cada Uma
16:9 (Landscape)
Uso: Banners, vídeos, hero sections
Exemplo: 1920x1080px
CSS:
aspect-ratio: 16/9;1:1 (Quadrado)
Uso: Fotos de perfil, produtos, Instagram
Exemplo: 800x800px
CSS:
aspect-ratio: 1/1;4:3 (Clássico)
Uso: Fotos tradicionais, galerias
Exemplo: 1200x900px
CSS:
aspect-ratio: 4/3;4:5 (Retrato)
Uso: Stories, fotos verticais
Exemplo: 1080x1350px
CSS:
aspect-ratio: 4/5;3. Tipografia Responsiva
Por Que Usar REM ao Invés de PX?
REM é relativo ao tamanho base do navegador (16px), então:
PX é fixo:
Conversão rápida: 1rem = 16px (padrão dos navegadores)
Tabela Completa de Tamanhos
Use esta tabela como referência ao ajustar textos:
Quando Usar Cada Tamanho
H1 - Título Principal (apenas 1 por página!)
Onde usar: - Título do Hero (primeira seção) - Único H1 da página inteira!
SEO importante: Use APENAS UM H1 por página! Google penaliza múltiplos H1s.
H2 - Títulos de Seção
Onde usar:
Exemplo:
Desktop: 2.25rem (36px) Mobile: 1.5rem (24px)
H3 - Subtítulos e Cards
Onde usar:
Exemplo:
Desktop: 1.75rem (28px) Mobile: 1.25rem (20px)
Texto Base - Parágrafos
Onde usar:
Desktop: 1rem (16px) Mobile: 0.875rem (14px)
Line-height: 1.6-1.8 (espaço entre linhas)
Tipografia Fluida com clamp()
O que é clamp(): Faz o texto crescer/diminuir automaticamente conforme o tamanho da tela, SEM media queries!
Sintaxe:
clamp(mínimo, ideal, máximo)Exemplo prático:
/* H1 que escala automaticamente */ font-size: clamp(1.75rem, 5vw, 3.75rem); /* Mobile: 1.75rem → Desktop: 3.75rem → Entre eles: 5% da largura da tela */Como usar: copie a linha acima e cole no campo "CSS Personalizado" da página (ou no CSS do título). O texto vai encolher sozinho no celular e crescer no computador, sem você fazer nada. Se quiser, troque o
1.75rempelo menor tamanho que o texto pode ter e o3.75rempelo maior; o5vwno meio controla a velocidade dessa mudança (pode deixar como está).Por que usar:
Use clamp() para H1 e H2! Para textos menores, valores fixos são mais previsíveis.
4. Espaçamentos (Padding e Margin)
Por Que Usar Sistema de Múltiplos?
Consistência visual! Usar sempre múltiplos de 8px (0.5rem) cria ritmo visual harmonioso.
Problema: Espaçamentos aleatórios
Solução: Sistema padronizado
Sistema de Espaçamento Base
Containers: Quando e Como
Container Principal (seção inteira):
Container Interno (nested):
Espaço Entre Seções
Por que importa: Separação visual clara = página organizada e profissional
Regra de ouro: Quanto MAIOR o elemento, MAIOR o espaço ao redor!
5. Botões Profissionais
Por Que Tamanho de Botão Importa?
Botões pequenos demais: Difícil de clicar (especialmente no mobile!) Botões grandes demais: Parecem amadores e poluem a página
Tamanhos Padrão
Botão Médio (Padrão)
Quando usar: 90% dos casos (CTAs principais, formulários)
Código exemplo:
css padding: 1rem 2rem; /* Desktop */ font-size: 1rem; border-radius: 0.5rem; /* Cantos arredondados */Botão Grande (CTA Forte)
Quando usar: CTA PRINCIPAL da página (ex: "Comprar Agora", "Começar Grátis")
Quando usar:
Botão Pequeno (Secundário)
Quando usar: Ações secundárias ("Saiba Mais", "Ver Detalhes")
Botão Full Width no Mobile
Por quê fazer: Botões largos no mobile são MUITO mais fáceis de clicar!
/* Desktop e Tablet */ width: auto; /* Mobile */ width: 100%; /* Ocupa tela toda */Como usar: o jeito mais simples é fazer pelo Elementor (veja a dica abaixo). Se preferir colar código, ponha
width: 100%no CSS do botão na visão mobile — assim ele estica e ocupa a tela toda no celular, ficando bem mais fácil de tocar. Não precisa mudar nada no código.Dica: Configure no Elementor → Avançado → Width → Mobile: 100%
6. Padrões de Código CSS
Estrutura e Organização
Como organizar CSS personalizado no Elementor:
/* ============================================ SEÇÃO: HERO PRINCIPAL ============================================ */ /* Botão CTA com efeito hover */ .btn-cta-hero { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); transition: all 0.3s ease; } .btn-cta-hero:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(0,0,0,0.2); } /* ============================================ SEÇÃO: CARDS DE SERVIÇOS ============================================ */ .card-servico { border-radius: 1rem; transition: transform 0.3s ease; } .card-servico:hover { transform: scale(1.05); }Como usar: copie o código acima e cole no campo "CSS Personalizado" da página. Ele deixa o botão com fundo colorido em degradê que sobe levemente quando o mouse passa, e faz os cards crescerem um pouco ao passar o mouse. Para funcionar, o botão precisa ter a classe
btn-cta-heroe os cards a classecard-servico(você coloca isso na aba "Avançado" do elemento). Quer outras cores no fundo? Troque os dois códigos de cor#667eeae#764ba2.Boas Práticas de CSS
1. Use Classes, Não IDs para Estilos
Por quê:
Errado:
css #botao-1 { color: blue; } /* ID - não reutilizável */Certo:
css .btn-primario { color: blue; } /* Classe - reutilizável */2. Agrupe Propriedades Relacionadas
Ordem recomendada:
Como usar: este é um modelo de organização. Quando você escrever CSS de um elemento, agrupe na ordem mostrada (posição, tamanho/espaço, texto, aparência, animação) e use os comentários
/* ... */como divisórias. Não precisa copiar tudo: aproveite só as linhas que fizer sentido para o seu caso.Por quê: Mais fácil de ler e manter!
3. Use Variáveis CSS para Cores
Por quê: Mudar cor em 1 lugar atualiza tudo!
Como usar: copie o código acima e cole no campo "CSS Personalizado" da página. Troque os códigos de cor (
#667eea,#764ba2, etc.) pelas cores da sua marca. A partir daí, sempre que precisar de uma cor, use o apelido (por exemplovar(--cor-primaria)) em vez do código. A vantagem: se um dia quiser mudar a cor do site inteiro, basta trocar em um lugar só, aqui no topo.Vantagem: Troca cores do site inteiro mudando só as variáveis!
4. Prefira Flexbox/Grid a Position Absolute
Por quê: Position absolute quebra responsividade!
Errado (quebra no mobile):
css .elemento { position: absolute; top: 100px; left: 200px; /* Vai ficar torto no mobile! */ }Certo (responsivo):
css .container { display: flex; justify-content: center; align-items: center; gap: 1rem; /* Funciona em qualquer tela */ }5. Comente Código Complexo
Quando comentar:
Código não óbvio
Hacks ou soluções específicas
Código que pode confundir depois
/* Corrige bug do Safari com z-index */ .elemento { transform: translateZ(0); -webkit-transform: translateZ(0); } /* Gradiente animado (muda cor constantemente) */ @keyframes gradient-shift { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }Como usar: o foco aqui é o hábito de deixar um comentário (o texto entre
/* */) explicando truques que não são óbvios, para você lembrar depois. Se for usar o primeiro trecho, copie e cole no CSS do elemento que estiver com problema de sobreposição no navegador Safari. Não precisa mudar nada.7. Padrões de JavaScript
Quando Usar JavaScript no Elementor
Use JS para:
NÃO use JS para:
Estrutura de Código JS
/* ============================================ SCROLL SUAVE PARA SEÇÕES ============================================ */ document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const targetId = this.getAttribute('href'); const targetElement = document.querySelector(targetId); if (targetElement) { targetElement.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }); }); /* ============================================ MODAL DE VÍDEO ============================================ */ function abrirModal(videoId) { const modal = document.getElementById('modal-video'); const iframe = document.getElementById('video-frame'); // Insere URL do YouTube iframe.src = `https://www.youtube.com/embed/${videoId}?autoplay=1`; // Mostra modal modal.classList.add('ativo'); } function fecharModal() { const modal = document.getElementById('modal-video'); const iframe = document.getElementById('video-frame'); // Para vídeo iframe.src = ''; // Esconde modal modal.classList.remove('ativo'); }Como usar: copie este código e cole num bloco/widget de HTML da página (dentro de uma tag de script) ou no campo de código personalizado. A primeira parte faz a página rolar suavemente até a seção quando alguém clica num link de menu. A segunda parte abre e fecha uma janela de vídeo. Para o vídeo funcionar, o botão precisa chamar
abrirModalcom o código do vídeo do YouTube. Se não for usar vídeo, pode apagar a segunda parte.Boas Práticas de JavaScript
Use const e let, não var
// ❌ Errado (antigo) var nome = "João"; // ✅ Certo (moderno) const nome = "João"; // Não muda let idade = 25; // Pode mudar ``` **Por quê:** Mais seguro e previsívelComente o QUE e POR QUÊ
// Aguarda 300ms antes de executar // para evitar múltiplos cliques setTimeout(() => { enviarFormulario(); }, 300); ``` **Como usar:** o ponto aqui é o hábito de escrever um comentário curto explicando o porquê do código. Se for usar este trecho, ele espera um instantinho (0,3 segundo) antes de enviar o formulário, evitando envio duplicado por clique repetido. Quer mais ou menos espera? Troque o número `300` (são milésimos de segundo; 1000 = 1 segundo). **Por quê:** Você vai esquecer daqui 1 semana!Use addEventListener
// ❌ Evite inline <button onclick="clicar()"> // ✅ Use addEventListener button.addEventListener('click', () => { // código aqui }); ``` **Por quê:** Mais organizado e manutenívelValide Antes de Usar
const elemento = document.querySelector('.botao'); if (elemento) { elemento.addEventListener('click', () => { // Código seguro }); } ``` **Como usar:** copie este modelo quando for mexer com algum elemento via código. Ele primeiro confere se o elemento existe na página antes de tentar usá-lo, evitando que o resto do código pare de funcionar por causa de um erro. Troque `.botao` pela classe do elemento que você quer usar. **Por quê:** Evita erros se elemento não existir8. Estrutura de Headings (SEO)
Por Que Hierarquia Importa?
Google usa headings para entender seu site!
✅ Hierarquia correta = Melhor SEO ❌ Hierarquia errada = Google confuso = Menos visitantes
Regras Fundamentais
1 H1 por página (OBRIGATÓRIO!)
Por quê: Google espera 1 H1 = tópico principal
Onde: Título principal do Hero
Exemplo: "Crie Sites Profissionais com Easy Builder"
Não pule níveis
Errado: H1 → H3 (pulou o H2)
Certo: H1 → H2 → H3 → H4
Por quê: Google entende como estrutura lógica de documento
Cada seção principal = H2
Seções do site:
Por quê: Google indexa melhor e usuário escaneia rápido
Configure via Widget Heading
No Elementor:
Por quê: Semântica HTML correta para SEO
Exemplo de Estrutura Completa
Esta estrutura é perfeita para SEO e acessibilidade!
9. Cores e Contraste (Acessibilidade)
Por Que Contraste Importa?
Contraste ruim = Texto ilegível = Usuário desiste = Cliente perde venda
Além disso, acessibilidade é LEI em muitos países!
Contraste Mínimo (WCAG)
Texto Normal
Mínimo: 4.5:1
Exemplo OK:
Exemplo RUIM:
Texto Grande (18px+)
Mínimo: 3:1
Pode ser um pouco mais claro que texto normal
Títulos grandes perdoam contraste menor
Botões e Links
Mínimo: 3:1
Importante: Botão precisa se destacar do fundo!
Teste Sempre!
Use WebAIM Contrast Checker
Cole cor do texto e cor do fundo = resultado instantâneo!
Combinações Seguras Prontas
Texto escuro em fundo claro:
#222222ou#333333#FFFFFFou#F5F5F5Texto claro em fundo escuro:
#FFFFFFou#F5F5F5#222222ou#1A1A1AEvite cinza claro em branco! (#CCCCCC em #FFFFFF = contraste 1.6:1 = ILEGÍVEL)
10. Performance: O Que Realmente Importa
4 Pilares da Performance
1. Imagens Otimizadas
Impacto: 80% da lentidão vem de imagens!
Checklist:
Como ativar lazy load: Elementor → Imagem → Avançado → Loading: Lazy
2. Fontes Otimizadas
Impacto: Cada fonte extra = +100-200kb!
Regras:
Exemplo ruim:
❌ Roboto: 100, 300, 400, 500, 700, 900 (6 pesos!)Exemplo bom:
✅ Roboto: 400, 700 (2 pesos)3. Animações com Moderação
Impacto: Animações demais = site pesado no mobile!
Regras:
will-changepara animações complexasscroll-triggeredem excessoExemplo: ```css .btn-cta { transition: transform 0.3s ease; /* Leve */ }
Como usar: copie e cole no campo "CSS Personalizado" do botão. Ele faz o botão subir levemente quando o mouse passa por cima — um efeito leve, que não deixa a página pesada. Para funcionar, o botão precisa ter a classe
btn-cta(aba "Avançado" do elemento). Quer que ele suba mais? Aumente o3px.4. CSS e JS Limpos
Impacto: Código desnecessário = site mais lento!
Checklist:
Como regenerar CSS: Elementor → Ferramentas → Regenerate CSS & Data
11. Responsividade: Como Pensar Mobile-First
Por Que Mobile-First?
70% dos acessos vêm de celular! Se o site não funciona bem no mobile, você perde 70% das conversões.
Breakpoints: O Que São e Como Usar
Breakpoints = Pontos onde layout muda
Como Configurar no Elementor
1. Ative modo responsivo
Clique no ícone de dispositivo (desktop/tablet/mobile) embaixo no Elementor
2. Mude para Mobile
Clique em "Mobile" para ver preview mobile
3. Ajuste elemento por elemento
4. Teste em dispositivo real
IMPORTANTE: Preview do Elementor nem sempre é exato!
Teste no celular de verdade ou use DevTools do navegador (F12)
Técnicas Responsivas Essenciais
Ocultar Elementos no Mobile
Quando usar: Elementos decorativos, textos longos, imagens grandes
Como fazer:
Exemplo: Imagem decorativa gigante que polui mobile
Reverse Columns (Inverter Ordem)
Quando usar: Quando imagem está à esquerda no desktop mas deve ficar ABAIXO do texto no mobile
Como fazer:
Antes (desktop):
[Imagem] [Texto]Depois (mobile):
[Texto] [Imagem]Por quê: Usuário lê texto antes de ver imagem (ordem lógica!)
Full Width no Mobile
Quando usar: Botões, formulários, imagens
Por quê: Aproveita espaço pequeno do mobile!
Como fazer:
Stack Vertical no Mobile
Quando usar: Grid de 3-4 colunas no desktop
Desktop:
[Card 1] [Card 2] [Card 3]Mobile:
[Card 1] [Card 2] [Card 3]Como fazer: Elementor faz automaticamente, mas ajuste gaps!
12. Formulários: UX e Acessibilidade
Por Que Formulários Importam?
Formulário ruim = Cliente desiste = Você perde lead/venda
Tamanhos Mínimos (Especialmente Mobile!)
CRÍTICO Mobile: Font size mínimo 16px (1rem)! Se menor, iOS dá zoom automático e quebra layout!
Labels e Placeholders
Labels (texto acima do campo):
<label>Nome Completo</label> <input type="text" placeholder="Digite seu nome">Como usar: no Elementor você normalmente cria o campo pelo próprio widget de formulário, sem digitar esse código. Mas é assim que ele funciona por baixo: o "Nome Completo" é o rótulo que fica acima do campo (importante para acessibilidade) e o "Digite seu nome" é o texto-exemplo cinza que some quando a pessoa começa a digitar. Troque esses dois textos pelo que fizer sentido no seu campo.
Quando usar:
Font size labels:
Textarea (Campo de Mensagem)
Altura mínima:
Por quê: Usuário precisa ver o que está escrevendo!
Tabela Completa - Formulários (Detalhada)
Largura de Campos (Width)
width: 100%width: calc(50% - 0.75rem)max-width: 25rem (400px)12.1. Ícones - Tamanhos Detalhados
Por Que Tamanho de Ícone Importa?
Ícones muito pequenos: Invisíveis, perdem impacto Ícones muito grandes: Desproporcionais, amadores
Tabela Completa - Todos os Tipos de Ícones
Dica: Ícones Inline com EM
Por quê usar
empara ícones inline:/* ❌ Com rem (tamanho fixo) */ .icone-inline { font-size: 1.125rem; /* Sempre 18px */ } /* ✅ Com em (escala com texto ao redor) */ .icone-inline { font-size: 1.2em; /* 120% do tamanho do texto pai */ }Como usar: para um ícone que fica no meio de um texto, copie a segunda opção (
font-size: 1.2em) e cole no CSS do ícone. Assim ele acompanha o tamanho do texto ao redor automaticamente. O1.2quer dizer "20% maior que o texto"; aumente para um ícone maior, diminua para um menor.Vantagem: Ícone cresce/diminui junto com o texto automaticamente!
12.2. Cards em Grid - Dimensões Completas
Por Que Padronizar Cards?
Consistência visual = Profissionalismo
Cards do mesmo tamanho = Layout harmonioso e organizado
Tabela Completa - Cards de Serviços/Produtos
Layout de Grid Responsivo
Desktop (3 colunas):
.grid-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.875rem; }Como usar: copie e cole no campo "CSS Personalizado" da página. Ele organiza os cards em 3 colunas iguais lado a lado, com um espaço entre eles. Para funcionar, o bloco que contém os cards precisa ter a classe
grid-cards(aba "Avançado"). Quer 4 colunas? Troque o3por4. Quer mais espaço entre os cards? Aumente o1.875rem.Tablet (2 colunas):
@media (max-width: 1024px) { .grid-cards { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } }Como usar: cole este trecho logo abaixo do anterior, no mesmo campo de CSS. Ele faz os cards passarem para 2 colunas quando a tela for de tablet (até 1024px de largura). Não precisa mudar nada; se quiser, ajuste o número de colunas no
repeat(2, ...).Mobile (1 coluna):
@media (max-width: 767px) { .grid-cards { grid-template-columns: 1fr; gap: 1.25rem; } }Como usar: cole este trecho junto dos anteriores, no mesmo campo de CSS. Ele faz os cards ficarem um embaixo do outro (uma coluna só) no celular, que é o ideal em telas pequenas. Não precisa mudar nada.
Grid Automático (Responsivo sem Media Queries!)
.grid-auto { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: clamp(1.25rem, 3vw, 1.875rem); } /* Colunas se ajustam automaticamente! */Como usar: copie e cole no campo "CSS Personalizado" da página (o bloco dos cards precisa ter a classe
grid-auto). A grande vantagem deste aqui é que ele ajusta o número de colunas sozinho conforme a tela, sem você precisar configurar tablet e celular separadamente. Quer cards mais largos? Aumente o18rem. Pode deixar o resto como está.Use
auto-fitpara grid que se adapta sozinho! Menos código, mais inteligente.Aspect Ratio para Imagens em Cards
Por quê usar: Mantém proporção perfeita em qualquer tamanho!
/* Landscape 16:9 (vídeos, banners) */ .card-imagem { aspect-ratio: 16/9; object-fit: cover; /* Imagem preenche sem distorcer */ } /* Quadrado 1:1 (produtos, perfis) */ .card-imagem { aspect-ratio: 1/1; object-fit: cover; } /* Retrato 4:5 (Instagram style) */ .card-imagem { aspect-ratio: 4/5; object-fit: cover; }Como usar: escolha o trecho da proporção que você quer (16/9 para imagens deitadas tipo vídeo, 1/1 para quadradas, 4/5 para em pé estilo Instagram), copie e cole no CSS da imagem do card (que precisa ter a classe
card-imagem). Isso garante que todas as imagens fiquem na mesma proporção e bem cortadas, sem ficarem esticadas. Use só uma das três versões.12.3. Tabelas de Referência Técnica Completa
Ícones - Valores Exatos por Breakpoint
Formulários - Valores Exatos por Breakpoint
Cards em Grid - Valores Exatos por Breakpoint
Botões - Valores Exatos Completos (REM e PX)
13. Padrões de HTML Semântico
Por Que HTML Semântico?
Google lê HTML para entender seu site!
✅ HTML semântico = Google entende = Melhor SEO ❌ Tudo div genérica = Google confuso = SEO ruim
Tags Semânticas e Quando Usar
<header>
Quando usar: Cabeçalho do site (logo, menu)
Não confunda com
<head>(metadados)Elementor usa automaticamente se você marca seção como "Header"
<nav>
Quando usar: Menu de navegação
Exemplo: Menu principal, menu rodapé
Indica para Google: "Isso é navegação"
<main>
Quando usar: Conteúdo principal (apenas 1 por página!)
Exemplo: Todo conteúdo entre header e footer
Google prioriza conteúdo dentro de
<main><section>
Quando usar: Cada seção temática
Exemplo: Sobre, Serviços, Depoimentos
Elementor gera automaticamente
<article>
Quando usar: Conteúdo independente (posts de blog)
Exemplo: Card de blog, notícia, produto
Indica conteúdo reutilizável
<footer>
Quando usar: Rodapé do site
Links úteis, copyright, redes sociais
Elementor marca automaticamente
Elementor cuida disso automaticamente! Mas entender ajuda a organizar melhor suas páginas.
14. Acessibilidade (A11y)
Por Que Acessibilidade?
Checklist de Acessibilidade
✅ Contraste mínimo 4.5:1
Teste em WebAIM
✅ Textos alternativos em imagens
Como fazer: Elementor → Imagem → "Alt Text"
Exemplo: "Logo Easy Builder" ou "Screenshot do painel"
Por quê: Leitores de tela descrevem imagem para cegos
✅ Links descritivos
Errado: "Clique aqui"
Certo: "Baixe o manual do Easy Builder"
Por quê: Leitor de tela lê links fora de contexto
✅ Formulários com labels
Sempre use
<label>associado ao campo!Por quê: Leitores de tela precisam saber o que é cada campo
✅ Hierarquia de headings correta
H1 → H2 → H3 (sem pular!)
Navegação por headings é essencial para cegos
✅ Botões clicáveis (44x44px mínimo)
Dedos precisam de área suficiente!
Mobile: Botões com pelo menos 44px de altura
15. Checklist Antes de Publicar
Use este checklist TODA VEZ antes de entregar site:
✅ 1. Nomenclatura
✅ 2. Responsividade Testada
✅ 3. Imagens Otimizadas
✅ 4. Tipografia Consistente
✅ 5. Espaçamentos Harmoniosos
✅ 6. Contraste Adequado
✅ 7. Links Funcionando
✅ 8. Formulários Testados
✅ 9. Performance Otimizada
✅ 10. SEO Básico
Se passou em todos 10 itens = Site profissional pronto para entregar!
16. Erros Comuns e Como Evitar
❌ Não testar em mobile real
Erro: Confiar só no preview do Elementor
Por quê é problema: Preview não mostra 100% real (especialmente animações, fontes, scroll)
Solução:
❌ Abusar de animações
Erro: Animar tudo (títulos, textos, imagens, botões)
Por quê é problema:
Solução:
❌ Não otimizar imagens
Erro: Subir fotos direto da câmera (5-10MB cada!)
Por quê é problema:
Solução:
❌ Não nomear elementos
Erro: Deixar tudo como "Container", "Coluna", "Section"
Por quê é problema:
Solução:
tipo-funcao-identificadorcontainer-hero,btn-cta-whatsapp❌ Usar position: absolute demais
Erro: Posicionar tudo com
position: absolutePor quê é problema:
Solução:
❌ Copiar CSS sem entender
Erro: Copiar código do Google e colar sem ler
Por quê é problema:
Solução:
❌ Múltiplas fontes do Google
Erro: Carregar 5-10 famílias de fontes diferentes
Por quê é problema:
Solução:
17. Padrões de Código CSS Avançado
Animações e Transições
Quando adicionar animações:
Código padrão de animação:
/* ============================================ BOTÃO COM HOVER SUAVE ============================================ */ .btn-cta { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border: none; color: white; padding: 1rem 2rem; border-radius: 0.5rem; /* Transição suave */ transition: all 0.3s ease; /* Otimização de performance */ will-change: transform; } .btn-cta:hover { /* Levanta botão */ transform: translateY(-3px); /* Adiciona sombra */ box-shadow: 0 10px 25px rgba(102, 126, 234, 0.3); } /* ============================================ CARD QUE CRESCE NO HOVER ============================================ */ .card-servico { background: white; padding: 2rem; border-radius: 1rem; border: 1px solid #e5e5e5; transition: transform 0.3s ease, box-shadow 0.3s ease; } .card-servico:hover { transform: scale(1.05); /* Cresce 5% */ box-shadow: 0 20px 40px rgba(0,0,0,0.1); } /* ============================================ GRADIENTE ANIMADO (FUNDO) ============================================ */ .hero-gradiente { background: linear-gradient( 270deg, #667eea, #764ba2, #f093fb, #4facfe ); background-size: 400% 400%; animation: gradient-shift 15s ease infinite; } @keyframes gradient-shift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }Como usar: copie a parte que você quiser e cole no campo "CSS Personalizado" da página. São três efeitos prontos: um botão que sobe ao passar o mouse (classe
btn-cta), um card que cresce um pouco ao passar o mouse (classecard-servico) e um fundo com cores que se movem sozinhas (classehero-gradiente). Lembre de colocar a classe certa no elemento, na aba "Avançado". Quer outras cores? Troque os códigos de cor (#667eea,#764ba2e os demais).Efeitos Visuais Comuns
Sombras
Quando usar: Cards, botões elevados, modais
Como usar: escolha uma das três linhas (sutil, média ou forte), copie e cole no CSS do elemento que você quer dar profundidade. Quanto maiores os números, mais "alta" e espalhada fica a sombra. O último valor (o
0.1, por exemplo) controla a transparência: quanto menor, mais suave a sombra.Dica: Use Box Shadow Generator
Blur (Desfoque)
Quando usar: Fundos de texto, glassmorphism
Como usar: copie e cole no CSS do bloco que vai ficar por cima de uma imagem (ele precisa ter a classe
texto-sobre-imagem). O resultado é aquele efeito de "vidro fosco": o fundo fica meio borrado e o texto por cima fica legível. Quer mais desfoque? Aumente o10px.Resultado: Efeito vidro fosco moderno!
Gradientes
Quando usar: Botões, fundos de hero, overlays
Como usar: escolha o tipo de degradê que quiser (reto, diagonal, do centro para fora, ou aplicado dentro do texto), copie e cole no CSS do elemento. Troque os dois códigos de cor (
#667eeae#764ba2) pelas cores que você quer misturar. No degradê reto, o número comdegmuda a direção (90 = da esquerda para a direita).Gerador: CSS Gradient
18. Meta Tags e SEO
O Que São Meta Tags?
Meta tags = informações SOBRE a página (invisíveis para visitantes, visíveis para Google)
Meta Tags Essenciais
Title Tag (Título da Página)
O que é: Título que aparece na aba do navegador e no Google
Como configurar:
Regras:
Exemplo BOM:
✅ "Easy Builder - Crie Sites Profissionais em Horas | WordPress"Exemplo RUIM:
❌ "Home" (genérico demais!) ❌ "Easy Builder é a melhor ferramenta do mundo para criar sites incríveis..." (longo demais!)Meta Description (Descrição)
O que é: Texto que aparece abaixo do título no Google
Como configurar:
Regras:
Exemplo BOM:
✅ "Crie landing pages e sites profissionais com Easy Builder. Templates prontos, IA integrada e suporte 24/7. Comece grátis hoje!"Exemplo RUIM:
❌ "Página inicial do Easy Builder." (sem benefício!)Open Graph (Redes Sociais)
O que é: Como página aparece ao compartilhar no Facebook, LinkedIn, WhatsApp
Como configurar:
Imagem OG recomendada:
Por quê importante: Compartilhamento bonito = mais cliques!
19. Conversão Rápida: REM ↔ PX
Tabela de Conversão
Pequenos
Médios
Grandes
Quando Usar Cada Unidade
font-size: 1remicon-size: 1.2emwidth: 50%font-size: 5vwmin-height: 100vhborder: 1px solidEvite px para textos e espaçamentos! Use rem para melhor responsividade.
20. Ferramentas Essenciais
Squoosh
Converter imagens
JPEG/PNG → AVIF/WebP
Grátis e rápido!
Contrast Checker
Testar contraste
Garante legibilidade
WCAG compliance
Google Fonts
Biblioteca de fontes
900+ fontes gratuitas
Já integrado no Elementor
CSS Gradient
Gerar gradientes
Visual e código pronto
Copy/paste fácil
Box Shadow Generator
Gerar sombras
Preview em tempo real
Código CSS pronto
Grid Generator
CSS Grid visual
Cria grid responsivo
Código automático
Can I Use
Compatibilidade
Verifica suporte CSS/JS
Em navegadores
PageSpeed Insights
Testar performance
Google oficial
Dicas de otimização
Meta Tags Generator
Gerar Open Graph
Preview social media
Código pronto
Resumo Executivo: Referência Rápida
Imagens
Formatos:
Tamanhos:
Tipografia
Tamanhos (Desktop → Mobile):
Line-height:
Espaçamentos
Sistema:
Entre seções:
Botões
Médio (padrão):
Altura mínima mobile: 44px (dedos!)
Cores
Contraste mínimo:
Teste em: webaim.org/contrast
SEO
Essencial:
Aplicando no Easy Builder
Para o Time Easy Builder:
Ao criar templates, siga TODOS esses padrões. Templates que não seguem voltam para revisão!
Para Usuários:
Templates já vêm com esses padrões aplicados! Ao personalizar, mantenha os mesmos padrões para qualidade profissional.
Este guia é vivo! Será atualizado conforme novas práticas surgirem. Versão atual: 3.0 (Janeiro 2026)
Próximos Passos
Workflows Avançados
Técnicas profissionais de produção
Resolução de Problemas
Solucione erros comuns rapidamente
Iniciante WordPress
Trilha completa de aprendizado
Easy Coder IA
IA que escreve código CSS/JS para você