Um guia educativo passo a passo para iniciantes criarem seu próprio site profissional usando HTML, CSS e JavaScript puro.
- Introdução
- Pré-requisitos
- Estrutura do Projeto
- Passo a Passo Completo
- Explicação dos Arquivos
- Personalização
- Deploy e Publicação
- Processo Automatizado "PROSSIGA"
- Troubleshooting
- Recursos e Referências
Este guia foi criado para ajudar iniciantes a criar um site profissional completo do zero, sem precisar de frameworks ou bibliotecas complexas. Você aprenderá a criar um site moderno, responsivo e otimizado usando apenas HTML5, CSS3 e JavaScript vanilla.
- ✅ Estruturar um projeto web profissional
- ✅ Criar HTML semântico e acessível
- ✅ Estilizar com CSS moderno (Grid, Flexbox, Variáveis)
- ✅ Adicionar interatividade com JavaScript
- ✅ Otimizar para SEO e acessibilidade
- ✅ Fazer deploy no GitHub Pages
- ✅ Organizar código de forma profissional
Um site completo com:
- 🎨 Design moderno e responsivo
- 🌙 Modo escuro/claro
- 📱 Menu mobile
- 🔍 Filtros interativos
- 📊 Animações e transições
- 📧 Formulário de contato
- 🖼️ Galeria de imagens
- ⭐ Seção de depoimentos
- HTML básico: Saber criar tags e estrutura básica
- CSS básico: Saber aplicar estilos simples
- JavaScript básico: Conhecer variáveis, funções e eventos
- Git básico: Saber fazer commit e push (opcional, mas recomendado)
-
Editor de Código:
- Visual Studio Code (recomendado)
- Sublime Text
- Qualquer editor de texto
-
Navegador Web:
- Chrome, Firefox, Edge ou Safari
-
Git (opcional):
- Git para Windows
- Necessário apenas para versionamento e deploy
-
Conta no GitHub (opcional):
- Criar conta gratuita
- Necessário apenas para hospedar o site
Antes de começar, vamos entender a estrutura que vamos criar:
seu-site/
├── index.html # Página principal (HTML)
├── manifest.json # Configuração PWA
├── README.md # Este guia
├── .gitignore # Arquivos ignorados pelo Git
├── css/
│ └── style.css # Todos os estilos (CSS)
├── js/
│ └── main.js # Toda a lógica (JavaScript)
└── images/ # Pasta para suas imagens
├── favicon.png # Ícone do site
└── ... # Suas imagens aqui
- Organização: Cada tipo de arquivo em sua pasta
- Manutenção: Fácil de encontrar e editar
- Performance: Carregamento otimizado
- Profissional: Padrão da indústria
No Windows (PowerShell):
# Navegar para onde quer criar o projeto
cd Desktop
# Criar pasta do projeto
mkdir meu-site-profissional
cd meu-site-profissionalNo Mac/Linux (Terminal):
cd ~/Desktop
mkdir meu-site-profissional
cd meu-site-profissionalNo Windows (PowerShell):
mkdir css, js, imagesNo Mac/Linux (Terminal):
mkdir css js imagesgit initO HTML é a estrutura do seu site. Vamos criar a página principal:
Crie o arquivo index.html na raiz do projeto com este conteúdo:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Meu Site Profissional</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<!-- Seu conteúdo aqui -->
<script src="js/main.js"></script>
</body>
</html>Explicação:
<!DOCTYPE html>: Declara que é HTML5<html lang="pt-BR">: Idioma do site<meta charset="UTF-8">: Codificação de caracteres<meta name="viewport">: Responsividade mobile<link rel="stylesheet">: Conecta o CSS<script src="js/main.js">: Conecta o JavaScript
Adicione estas tags no <head> para melhorar o SEO:
<!-- Primary Meta Tags -->
<meta name="title" content="Título do Seu Site">
<meta name="description" content="Descrição do seu site para buscadores">
<meta name="keywords" content="palavras, chave, do, seu, site">
<meta name="author" content="Seu Nome">
<meta name="robots" content="index, follow">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://seu-usuario.github.io/seu-repositorio/">
<meta property="og:title" content="Título do Seu Site">
<meta property="og:description" content="Descrição para compartilhamento">
<meta property="og:image" content="https://seu-usuario.github.io/seu-repositorio/images/og-image.jpg">
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:title" content="Título do Seu Site">
<meta property="twitter:description" content="Descrição para Twitter">Agora vamos criar a estrutura completa com todas as seções. Veja o arquivo index.html completo neste repositório como referência.
Principais seções:
- Header (cabeçalho com navegação)
- Hero (seção principal de destaque)
- Sobre
- Receitas/Produtos/Serviços
- Galeria
- Depoimentos
- Contato
- Footer (rodapé)
O CSS é responsável pela aparência visual do site.
Comece com um reset básico e variáveis CSS:
/* Reset */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* Variáveis CSS - Facilita personalização */
:root {
--primary-color: #d4a574;
--secondary-color: #8b6f47;
--dark-color: #2c2c2c;
--light-color: #f5f5f5;
--white: #ffffff;
--text-dark: #333333;
--text-light: #666666;
--font-primary: 'Playfair Display', serif;
--font-secondary: 'Poppins', sans-serif;
--transition: all 0.3s ease;
}
/* Corpo do site */
body {
font-family: var(--font-secondary);
color: var(--text-dark);
line-height: 1.6;
}Por que variáveis CSS?
- Facilita mudanças de cores em todo o site
- Mantém consistência visual
- Facilita criação de modo escuro/claro
/* Container principal */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 20px;
}
/* Grid para seções */
.sobre-content {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 4rem;
}
/* Flexbox para navegação */
.navbar .container {
display: flex;
justify-content: space-between;
align-items: center;
}/* Tablets e menores */
@media (max-width: 768px) {
.sobre-content {
grid-template-columns: 1fr; /* Uma coluna em mobile */
}
}
/* Smartphones */
@media (max-width: 480px) {
.hero-title {
font-size: 2rem; /* Título menor em mobile */
}
}Veja o arquivo css/style.css completo neste repositório para referência completa.
O JavaScript adiciona interatividade ao site.
// Selecionar elementos
const navToggle = document.getElementById('navToggle');
const navMenu = document.getElementById('navMenu');
// Adicionar evento de clique
navToggle.addEventListener('click', () => {
navMenu.classList.toggle('active');
});// Selecionar todos os links que começam com #
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
target.scrollIntoView({ behavior: 'smooth' });
}
});
});const themeToggle = document.getElementById('themeToggle');
const html = document.documentElement;
// Verificar preferência salva
const currentTheme = localStorage.getItem('theme') || 'light';
html.setAttribute('data-theme', currentTheme);
// Alternar tema
themeToggle.addEventListener('click', () => {
const newTheme = html.getAttribute('data-theme') === 'dark' ? 'light' : 'dark';
html.setAttribute('data-theme', newTheme);
localStorage.setItem('theme', newTheme);
});Veja o arquivo js/main.js completo neste repositório para todas as funcionalidades.
No <head> do HTML:
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700&family=Poppins:wght@300;400;500;600&display=swap" rel="stylesheet">Crie manifest.json na raiz:
{
"name": "Nome do Seu Site",
"short_name": "Seu Site",
"description": "Descrição do seu site",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#d4a574",
"icons": [
{
"src": "images/icon-192.png",
"sizes": "192x192",
"type": "image/png"
}
]
}Crie .gitignore na raiz:
# OS
.DS_Store
Thumbs.db
# Editor
.vscode/
.idea/
# Logs
*.log
- O que é: Estrutura HTML do site
- O que contém: Todas as seções, textos e estrutura
- Como editar: Abra no editor e modifique os textos/conteúdo
- O que é: Estilos visuais do site
- O que contém: Cores, fontes, layouts, animações
- Como editar: Modifique as variáveis CSS para mudar cores, ajuste media queries para responsividade
- O que é: Lógica e interatividade
- O que contém: Eventos, animações, funcionalidades
- Como editar: Adicione novos event listeners ou modifique os existentes
- O que é: Configuração para PWA (Progressive Web App)
- O que contém: Metadados do app
- Como editar: Altere nome, descrição e cores
Edite as variáveis CSS em css/style.css:
:root {
--primary-color: #SUA_COR_AQUI;
--secondary-color: #SUA_COR_AQUI;
/* ... */
}- Escolha fontes no Google Fonts
- Adicione o link no
<head>do HTML - Atualize as variáveis CSS:
:root {
--font-primary: 'Nome da Fonte', serif;
--font-secondary: 'Nome da Fonte', sans-serif;
}- Adicione HTML em
index.html - Adicione estilos em
css/style.css - Adicione interatividade em
js/main.js(se necessário)
- Coloque imagens na pasta
images/ - Use no HTML:
<img src="images/sua-imagem.jpg" alt="Descrição"> - Otimize imagens antes de usar (reduza tamanho)
- Acesse github.com
- Clique em "New repository"
- Nome:
seu-site - Público ou Privado
- NÃO marque "Initialize with README"
- Clique em "Create repository"
No terminal, na pasta do projeto:
# Inicializar Git (se ainda não fez)
git init
# Adicionar arquivos
git add .
# Primeiro commit
git commit -m "Initial commit: Meu site profissional"
# Adicionar remote do GitHub
git remote add origin https://github.com/SEU-USUARIO/seu-site.git
# Renomear branch para main
git branch -M main
# Fazer push
git push -u origin main- No GitHub, vá em Settings
- Role até Pages
- Em Source, selecione main
- Clique em Save
- Aguarde alguns minutos
- Seu site estará em:
https://SEU-USUARIO.github.io/seu-site/
- Acesse netlify.com
- Conecte sua conta GitHub
- Clique em "New site from Git"
- Selecione seu repositório
- Deploy automático a cada push!
- Acesse vercel.com
- Conecte GitHub
- Importe seu repositório
- Deploy automático!
Para facilitar o desenvolvimento, você pode usar o comando "prossiga" que executa automaticamente:
-
Verificação
- Verifica estrutura de pastas
- Verifica arquivos principais
- Verifica estado do Git
-
Otimizações
- Aplica melhorias de SEO
- Verifica acessibilidade
- Otimiza performance
-
Testes
- Valida HTML/CSS/JS
- Testa funcionalidades
- Verifica links
-
Git e Deploy
- Adiciona arquivos modificados
- Cria commit descritivo
- Faz push para GitHub
-
Documentação
- Atualiza README se necessário
- Documenta mudanças
Simplesmente digite "prossiga" quando quiser que o sistema execute todas essas tarefas automaticamente.
Solução:
- Verifique se o repositório é público
- Verifique se a branch está correta (main)
- Aguarde alguns minutos (pode demorar até 10 minutos)
- Verifique se o arquivo
index.htmlestá na raiz
Solução:
- Verifique o caminho:
images/nome-imagem.jpg - Certifique-se que a pasta se chama
images(nãoimage) - Verifique se o arquivo existe na pasta
Solução:
- Verifique o caminho no HTML:
href="css/style.css" - Certifique-se que o arquivo existe
- Limpe o cache do navegador (Ctrl+F5)
Solução:
- Abra o Console do navegador (F12)
- Verifique se há erros
- Verifique o caminho:
src="js/main.js" - Certifique-se que o script está antes de
</body>
Solução:
- Verifique se o JavaScript está carregado
- Verifique se os IDs estão corretos
- Abra o Console e veja se há erros
- Google Fonts - Fontes gratuitas
- Can I Use - Compatibilidade de recursos
- ColorHunt - Paletas de cores
- Unsplash - Imagens gratuitas
- TinyPNG - Compressão de imagens
- CSS-Tricks - Dicas e tutoriais CSS
- JavaScript.info - Tutorial JavaScript moderno
- Web.dev - Melhores práticas web
- W3C HTML Validator - Validar HTML
- W3C CSS Validator - Validar CSS
- Lighthouse - Auditoria de performance
Antes de considerar seu site completo, verifique:
- Todos os textos estão corretos
- Todas as imagens estão otimizadas
- Links funcionam corretamente
- Site é responsivo (teste em mobile)
- Formulário funciona (se tiver)
- SEO está configurado
- Favicon adicionado
- Site testado em diferentes navegadores
- Git configurado e código commitado
- Site publicado (GitHub Pages/Netlify/Vercel)
Depois de dominar este projeto, você pode aprender:
- Frameworks CSS: Bootstrap, Tailwind CSS
- Frameworks JavaScript: React, Vue.js
- Backend: Node.js, PHP, Python
- Banco de Dados: MySQL, MongoDB
- APIs: Como consumir e criar APIs
- Deploy Avançado: Docker, CI/CD
- Pratique regularmente: Crie projetos pequenos para praticar
- Leia código de outros: Aprenda com projetos open source
- Use o Console: Sempre verifique erros no Console do navegador
- Teste em mobile: Sempre teste em dispositivos móveis
- Otimize imagens: Imagens grandes deixam o site lento
- Mantenha código limpo: Comente seu código, organize bem
- Versionamento: Use Git para controlar versões
- Documente: Sempre documente o que você faz
Se tiver dúvidas:
- Consulte a documentação oficial
- Pesquise no Google/Stack Overflow
- Verifique o Console do navegador para erros
- Revise este guia passo a passo
Se você chegou até aqui, você já tem um site profissional funcionando!
Continue praticando, experimentando e aprendendo. O desenvolvimento web é uma jornada contínua de aprendizado.
Boa sorte com seus projetos! 🚀
Última atualização: 29/12/2025
Versão: 1.0
Autor: Criado como guia educativo para iniciantes
Este guia foi criado para ser um recurso educativo completo. Sinta-se livre para compartilhar, modificar e melhorar!