Este projeto nasceu de um desafio proposto por um parceiro e evoluiu para uma aplicação completa de gerenciamento de times de Pokémon.
A aplicação consome a PokéAPI para renderizar Pokémons e permite ao usuário criar, editar e visualizar seus próprios times.
O objetivo principal é permitir que o usuário:
- Crie seu próprio time de Pokémons
- Modifique e remova membros do time
- Veja detalhes individuais de cada Pokémon
- Defina apelidos customizados para cada Pokémon, exibidos abaixo do nome oficial
Cada card de Pokémon adota um design dinâmico: dependendo do tipo (fogo, água, planta etc.), aparece um estilo visual diferente, tornando a interface mais atrativa e imersiva.
Confira a versão hospedada no Vercel:
👉 menephylpokedex.vercel.app

- Listagem de todos os Pokémons disponíveis na PokéAPI
- Filtro por nome ou tipo
- Visualização detalhada (status, habilidades, estatísticas)
- Cadastro, edição e remoção de membros do time
- Design responsivo e cards estilizados por tipo de Pokémon
- Feedback visual e animações simples para interações
- Paginação: botões Previous e Next para navegar entre páginas da PokéAPI
- Validações inteligentes:
- Impede salvar time sem nome
- Impede salvar time sem Pokémons
- Impede adicionar o mesmo Pokémon duas vezes
- Renomear Pokémons: cada card no time possui input para nome customizado
- Persistência local: times salvos no
localStorage, com redirecionamento automático para destacar o time recém-criado - Modal avançado:
- Exibe sprite oficial, stats, habilidades, altura, peso e até gif animado do Pokémon
- Fecha ao clicar no “X” ou fora da área
- Feedback visual dinâmico:
- Gradientes exclusivos por tipo de Pokémon
- Primeiro card do time com inclinação especial
- Hover em cards e botões com transições suaves
Durante o desenvolvimento, foram aplicados conceitos importantes de:
-
Manipulação de DOM avançada
- Criação dinâmica de elementos (
createElement,cloneNode) - Uso de
datasetpara armazenar metadados - Alternância de classes (
.hidden) para mostrar/esconder seções
- Criação dinâmica de elementos (
-
Integração com API REST
- Consumo da PokéAPI com
fetch - Paginação manual com
limiteoffset - Tratamento de erros com
try/catch
- Consumo da PokéAPI com
-
Persistência no navegador
- Armazenamento e recuperação de dados com
localStorage - Serialização com
JSON.stringifyeJSON.parse
- Armazenamento e recuperação de dados com
-
UX/UI
- Validações com feedback imediato
- Modal interativo para detalhes
- Estilização híbrida (CSS + JS dinâmico)
-
Organização modular
- Separação em múltiplos arquivos JS (
main.js,layout.js,teams.js,createTeams.js) - CSS dividido em
style.css(global) eindex.css(tabela)
- Separação em múltiplos arquivos JS (
- HTML5
- CSS3 (Flexbox, gradientes dinâmicos, responsividade)
- JavaScript (ES6+)
- Manipulação de DOM
fetchAPIlocalStorage
- PokéAPI (fonte de dados)
- Sprites animados externos (Pokémon Showdown)
- Google Fonts (Russo One)
- Vercel (deploy contínuo)
- Clone o repositório:
git clone https://github.com/seu-usuario/poketeam-challenge.git
2 - Acesse a pasta do projeto: cd poketeam-challenge
3 - Abra o index.html ou execute um servidor estático: npx serve
4 - Navegue até http://localhost:3000 e comece a usar!