PortfĂłlio pessoal de Pedro Henrique Graça de Assis Silva â Desenvolvedor Full-Stack. ConstruĂdo do zero em HTML, CSS e JavaScript puro: zero dependĂȘncias, zero build step.
| đ Site | pendente de deploy â serĂĄ publicado na Vercel |
| đ GitHub | @pedrogrca |
| đŒ LinkedIn | /in/pedrogrca |
| âïž Email | pedrograaca@gmail.com |
Interface & movimento
- Preloader com contador
000 â 100e cortina de saĂda - Cursor customizado (ponto rĂĄpido + anel com inĂ©rcia)
- Tema claro/escuro com persistĂȘncia e sem flash no carregamento
- Scroll reveal com stagger automĂĄtico via
IntersectionObserver - Header inteligente: esconde ao descer, reaparece ao subir, com barra de progresso
- BotÔes magnéticos, cards com spotlight e tilt 3D nos projetos
- Contadores animados, timeline que preenche conforme o scroll e parallax discreto
ConteĂșdo
- Stack filtrĂĄvel por categoria (front, back, banco, ferramentas, design, idiomas)
- Timeline de experiĂȘncia profissional
- Projetos com screenshots clicĂĄveis que levam ao deploy
- Terminal interativo de verdade â digite
help,whoami,projects,skills,contact - Conquistas em bento grid assimétrico, relógio local ao vivo e email copiåvel
- đ„ Easter eggs discretos (tente o Konami Code, e olhe o console do navegador)
Um portfĂłlio Ă© a Ășnica pĂĄgina em que a performance faz parte do argumento de venda. NĂŁo hĂĄ estado complexo, rotas nem dados dinĂąmicos aqui â entĂŁo um framework sĂł adicionaria peso.
| Critério | Vanilla (escolhido) | React |
|---|---|---|
| Peso final | ~45 KB | ~180 KB+ |
| Build step | nenhum | obrigatĂłrio |
| Deploy | qualquer host estĂĄtico | precisa de build |
| DependĂȘncias para auditar | 0 | dezenas |
Tudo que normalmente justificaria GSAP ou Framer Motion â scroll reveal, parallax, magnetismo, contadores, tilt 3D â foi resolvido com IntersectionObserver, requestAnimationFrame e CSS custom properties. Nenhuma requisição extra.
- CSS em 5 camadas, carregadas em paralelo via
<link>(nĂŁo@import, que serializaria os downloads):tokensâbaseâlayoutâcomponentsâsections - Design tokens centralizados: cores, tipografia, espaçamento, raios e curvas de animação vivem sĂł em
tokens.css. NĂŁo existe valor "mĂĄgico" espalhado pelo cĂłdigo. - JS modular: 11 mĂłdulos ES independentes, cada um exportando
init(). O orquestrador (main.js) inicializa cada um dentro detry/catchâ se um mĂłdulo falhar, o resto do site continua funcionando. - Ăcones autorais: sprite SVG inline desenhado Ă mĂŁo, sem bibliotecas de Ăcones.
personal-portfolio/
âââ index.html markup semĂąntico + SEO + JSON-LD + sprite de Ăcones
âââ robots.txt diretrizes de indexação
âââ sitemap.xml mapa do site
âââ site.webmanifest metadados PWA
âââ assets/
âââ css/
â âââ tokens.css design tokens + definição dos temas
â âââ base.css reset, tipografia, acessibilidade, textura
â âââ layout.css container, fundo, header, nav, footer
â âââ components.css botĂ”es, cards, chips, cursor, preloader, reveal
â âââ sections.css hero, sobre, stack, timeline, projetos, contatoâŠ
âââ js/
â âââ main.js orquestrador tolerante a falhas
â âââ modules/
â âââ preloader.js contador de carregamento + cortina
â âââ cursor.js cursor customizado com inĂ©rcia
â âââ nav.js header, scroll spy, progresso, menu mobile
â âââ theme.js alternĂąncia claro/escuro persistida
â âââ reveal.js scroll reveal + preenchimento da timeline
â âââ magnetic.js atração magnĂ©tica + spotlight dos cards
â âââ counter.js animação de nĂșmeros
â âââ tilt.js inclinação 3D dos projetos
â âââ parallax.js deslocamento sutil no scroll
â âââ terminal.js console fake interativo
â âââ easter.js easter eggs
âââ img/ screenshots dos projetos (WebP) + og-image
âââ docs/ currĂculo em PDF
O projeto Ă© estĂĄtico â nĂŁo precisa de npm install. SĂł de um servidor local (por causa dos ES Modules, abrir o arquivo direto via file:// nĂŁo funciona).
git clone https://github.com/pedrogrca/personal-portfolio.gitcd personal-portfolioSuba um servidor com qualquer uma das opçÔes abaixo:
python -m http.server 5500npx serve -l 5500Depois abra http://localhost:5500 no navegador.
prefers-reduced-motiontotalmente respeitado â o preloader vira instantĂąneo, o cursor customizado desliga e os elementos aparecem jĂĄ posicionados- HTML semĂąntico, hierarquia de headings correta,
aria-labelnos controles e link "pular para o conteĂșdo" - Foco visĂvel em todos os elementos interativos (nunca removido)
- AnimaçÔes restritas a
transformeopacity, para nĂŁo disparar reflow - Imagens com
width/heightdeclarados (evita layout shift) eloading="lazy" - Screenshots em WebP â ~75% mais leves que os PNGs originais
- Cursor customizado e efeitos de hover desativados em telas touch
- Meta tags descritivas,
canonicaletheme-colorpor esquema de cor - Open Graph + Twitter Card com imagem 1200Ă630 dedicada
- Schema.org (
Person) em JSON-LD, incluindo formação, idiomas e stack robots.txt,sitemap.xmle web manifest
- Deploy na Vercel
- Trocar o domĂnio placeholder pelas URLs reais (
canonical, Open Graph, JSON-LD, sitemap) - Adicionar foto no hero (hoje exibe um placeholder)
- EstatĂsticas do GitHub ao vivo
- Auditoria Lighthouse
Aberto a oportunidades de estĂĄgio e a novos clientes de desenvolvimento.
Projeto pessoal de Pedro Henrique Graça de Assis Silva · Natal, RN â Brasil
