Portfólio pessoal desenvolvido para apresentar meus projetos, habilidades e formas de contato. A página é dividida em quatro seções principais: apresentação com stack de tecnologias, galeria de projetos com sistema "mostrar mais/menos", serviços oferecidos e links de contato.
- HTML5 — estruturação semântica com
<header>,<main>,<section>e meta tags Open Graph - CSS3 — estilização com animações, CSS Grid, Flexbox, CSS Nesting e variáveis
- JavaScript (vanilla) — animações de scroll e sistema de mostrar/esconder projetos
- Google Fonts — tipografia com as fontes Asap (títulos), Maven Pro (texto) e Inconsolata (subtítulos)
- WebP — formato moderno de imagens para melhor performance
- ✅ Foto de perfil com ícone de código sobreposto
- ✅ Texto de apresentação com animações sequenciais de entrada (fadeIn com delays)
- ✅ Stack de tecnologias em formato de tags (Git Bash, GitHub, HTML, CSS, JavaScript, MySQL, React, Node.js)
- ✅ Tags com animação de entrada deslizante (slide-in) em cascata
- ✅ Botão de seta com animação de bounce indicando scroll para projetos
- ✅ Scroll suave com easing personalizado ao clicar na seta
- ✅ Galeria de 16 projetos com thumbnails coloridos e links externos
- ✅ Sistema "Mostrar mais/menos" que calcula automaticamente quantos cards cabem em 2 linhas
- ✅ Recalculo automático da quantidade visível ao redimensionar a tela (via
ResizeObserver) - ✅ Cards aparecem progressivamente com
IntersectionObserver(animação ao entrar na viewport) - ✅ Efeito hover nos cards com outline colorido
- ✅ Bordas superiores coloridas em cards específicos para destaque visual
- ✅ Botão "Mostrar mais" com animação de pulse para chamar atenção
- ✅ 3 cards apresentando serviços oferecidos (Websites, API/Banco de dados, DevOps)
- ✅ Animação de entrada sequencial nos cards ao entrar na viewport
- ✅ Efeito hover com shine sweep (gradiente passando pelo card)
- ✅ Rotação do ícone no hover
- ✅ 4 links para redes sociais e contato (LinkedIn, Instagram, GitHub, E-mail)
- ✅ Efeito hover com deslocamento horizontal e mudança de cor nos ícones
- ✅ Sublinhado animado na parte inferior do link
Tema dark com 5 cores de destaque para diferenciar elementos:
| Cor | Hex |
|---|---|
| ⬛ Base 100 (bg) | #0D0E11 |
| ⬛ Base 200 | #16181D |
| 🔲 Base 300 | #292C34 |
| 🔘 Base 400 | #878EA1 |
| ⚪ Base 500 | #C0C4CE |
| ⚪ Base 600 | #E2E4E9 |
| 🔴 Principal Red | #E3646E |
| 🟣 Principal Purple | #BB72E9 |
| 🔵 Principal Blue | #3996DB |
| 🟢 Principal Green | #82BC4F |
| 🟡 Principal Yellow | #EABD5F |
📦 rochacode08.github.io
┣ 📂 assets
┃ ┣ 📂 icons → Ícones SVG (tecnologias, redes sociais, UI)
┃ ┗ 📂 images → Backgrounds, thumbnails e foto de perfil (WebP)
┣ 📂 style
┃ ┣ 📜 global.css → Reset, variáveis e estilos globais
┃ ┣ 📜 header.css → Seção de apresentação
┃ ┣ 📜 main.css → Galeria de projetos e botão mostrar mais
┃ ┣ 📜 section-services.css → Seção de serviços
┃ ┣ 📜 section-links.css → Seção de contato
┃ ┣ 📜 animations.css → Animações e keyframes
┃ ┗ 📜 responsive.css → Media queries (6 breakpoints)
┣ 📂 js
┃ ┣ 📜 animations.js → IntersectionObserver + scroll suave
┃ ┗ 📜 viewMore.js → Lógica do "mostrar mais/menos"
┗ 📜 index.html → Página principal
O projeto conta com 6 breakpoints para suporte a múltiplos tamanhos de tela:
| Dispositivo | Largura | Principais ajustes |
|---|---|---|
| 🖥️ Desktop XL | acima de 1680px | Layout em largura máxima |
| 💻 Desktop grande | até 1440px | Ajustes de grid e containers |
| 💻 Desktop / Tablet | até 1024px | Ajustes no container, tags e grid de projetos |
| 📱 Tablet | até 768px | Tipografia reduzida, cards em colunas menores |
| 📱 Mobile | até 425px | Links compactos, tipografia fluida com clamp() |
| 📱 Mobile S | até 375px | Cards em coluna única, avatar menor |
| 📱 Mobile XS | até 320px | Títulos menores, tags compactas |
O projeto foi otimizado com foco em Core Web Vitals e auditado pelo Google Lighthouse:
- ✅ Preload +
fetchpriority="high"na foto de perfil (Largest Contentful Paint) - ✅ Conversão de imagens PNG → WebP (redução significativa no tamanho dos arquivos)
- ✅
widtheheightexplícitos em todas as imagens (evita Cumulative Layout Shift) - ✅
loading="lazy"em imagens abaixo do fold (carregamento sob demanda) - ✅ Scripts com
defer(carregam em paralelo, não bloqueiam o render) - ✅ CSS carregado em paralelo (substituindo
@importem cascata) - ✅ Fontes do Google otimizadas (apenas os pesos realmente utilizados)
- ✅ Contraste WCAG AA em todos os elementos interativos
Clone o repositório:
git clone https://github.com/rochacode08/rochacode08.github.io.gitAcesse a pasta do projeto:
cd rochacode08.github.ioAbra o arquivo index.html no navegador — ou utilize a extensão Live Server do VS Code para recarregamento automático.
- IntersectionObserver API para animar elementos ao entrarem na viewport
- ResizeObserver API para recalcular layouts dinamicamente
- Scroll suave customizado com
requestAnimationFramee easingeaseInOutCubic - Cálculo dinâmico de quantos cards cabem em 2 linhas do grid
- Controle de estado com variável
isExpandedpara toggle - Manipulação avançada do DOM e classes
- CSS Nesting nativo em todos os arquivos
- Uso extensivo de CSS Custom Properties (variáveis) para cores, fontes e typography scale
- Animações complexas com
@keyframes(fadeIn, slideIn, bounce, pulse, shine) - Animações com delays em cascata usando
nth-child - Efeito shine com pseudo-elemento e
background: linear-gradient - Sublinhado animado com
transform: scaleX() - Filtros CSS (
filter: invert sepia saturate hue-rotate) para colorir SVGs dinamicamente - Media queries com múltiplos breakpoints
- Uso de
clamp()para tipografia fluida em mobile - Controle fino de
box-sizingpara compatibilizar atributos HTML com padding CSS
- Estruturação semântica com
<header>,<main>,<section>,<aside> - Meta tags Open Graph para compartilhamento em redes sociais
- Uso de
aria-labelem links sem texto visível (acessibilidade) rel="noopener noreferrer"em links externos (segurança)- Favicon com múltiplos tamanhos (32x32 e Apple Touch Icon)
- Atributos de performance:
preload,fetchpriority,loading="lazy",defer
- Adicionar modo light mode com toggle
- Implementar suporte a múltiplos idiomas (PT-BR / EN)
- Adicionar filtro/categorias na seção de projetos (HTML/CSS, JS, React, etc.)
- Adicionar página individual para cada projeto com case study
- Implementar blog/artigos sobre desenvolvimento
- Integrar formulário de contato funcional (EmailJS ou similar)
- Adicionar
prefers-reduced-motionpara acessibilidade - Alcançar 100/100 no Lighthouse mobile
Este projeto está sob a licença MIT. Sinta-se à vontade para usá-lo como inspiração!
Desenvolvido com 💙 por Gabriel Rocha Lopes


