Pokédex
About this app
Pokédex - Explore Pokémon data
Pokédex Pokédex Enter Pokémon Number (1-1025): Search
Related apps
Put this on your site
Source
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Pokédex</title>
<meta name="description" content="Pokédex - Explore Pokémon data">
<meta name="keywords" content="Pokédex, Pokémon, National Dex">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<style>
body {
background-color: #f8f9fa;
font-family: 'Roboto', sans-serif;
}
.container {
max-width: 600px;
margin: 0 auto;
padding: 20px;
}
h1 {
text-align: center;
margin-bottom: 30px;
color: #333;
}
.pokemon-container {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 30px;
}
.pokemon-image {
width: 200px;
height: 200px;
object-fit: cover;
margin-bottom: 10px;
}
.pokemon-name {
font-size: 24px;
font-weight: bold;
margin-bottom: 10px;
color: #333;
}
.pokemon-dex-entry {
font-size: 16px;
margin-bottom: 10px;
color: #666;
}
.pokemon-stats {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
margin-bottom: 10px;
}
.stat {
width: calc(50% - 10px);
padding: 10px;
background-color: #fff;
border-radius: 5px;
margin-bottom: 10px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
display: flex;
flex-direction: column;
align-items: center;
}
.stat-label {
font-size: 14px;
font-weight: bold;
margin-bottom: 5px;
color: #333;
}
.stat-value {
font-size: 18px;
color: #666;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>Pokédex</h1>
<div class="pokemon-container">
<img class="pokemon-image" src="" alt="Pokemon Image">
<div class="pokemon-name"></div>
<div class="pokemon-dex-entry"></div>
<div class="pokemon-stats"></div>
</div>
<form id="pokemon-form" class="row g-3">
<div class="col-12">
<label for="pokemon-number" class="form-label">Enter Pokémon Number (1-1025):</label>
<input type="number" class="form-control" id="pokemon-number" min="1" max="1025" required>
</div>
<div class="col-12">
<button type="submit" class="btn btn-primary">Search</button>
</div>
</form>
</div>
<script type="text/javascript">
try {
document.addEventListener("DOMContentLoaded", function() {
const form = document.getElementById("pokemon-form");
const pokemonImage = document.querySelector(".pokemon-image");
const pokemonName = document.querySelector(".pokemon-name");
const pokemonDexEntry = document.querySelector(".pokemon-dex-entry");
const pokemonStats = document.querySelector(".pokemon-stats");
form.addEventListener("submit", function(event) {
event.preventDefault();
const pokemonNumber = document.getElementById("pokemon-number").value;
// Fetch Pokémon data
fetch(`https://pokeapi.co/api/v2/pokemon/${pokemonNumber}`)
.then(response => response.json())
.then(data => {
// Update Pokémon information
pokemonImage.src = data.sprites.front_default;
pokemonName.textContent = data.name;
// Fetch Pokémon species data
fetch(data.species.url)
.then(response => response.json())
.then(speciesData => {
// Get the first English flavor text entry
const dexEntry = speciesData.flavor_text_entries.find(entry => entry.language.name === "en");
pokemonDexEntry.textContent = dexEntry.flavor_text;
});
// Calculate total base stats
const totalStats = data.stats.reduce((total, stat) => total + stat.base_stat, 0);
// Update Pokémon stats
pokemonStats.innerHTML = `
<div class="stat">
<div class="stat-label">HP</div>
<div class="stat-value">${data.stats[0].base_stat}</div>
</div>
<div class="stat">
<div class="stat-label">Attack</div>
<div class="stat-value">${data.stats[1].base_stat}</div>
</div>
<div class="stat">
<div class="stat-label">Defense</div>
<div class="stat-value">${data.stats[2].base_stat}</div>
</div>
<div class="stat">
<div class="stat-label">Special Attack</div>
<div class="stat-value">${data.stats[3].base_stat}</div>
</div>
<div class="stat">
<div class="stat-label">Special Defense</div>
<div class="stat-value">${data.stats[4].base_stat}</div>
</div>
<div class="stat">
<div class="stat-label">Speed</div>
<div class="stat-value">${data.stats[5].base_stat}</div>
</div>
<div class="stat">
<div class="stat-label">Total</div>
<div class="stat-value">${totalStats}</div>
</div>
`;
})
.catch(error => {
console.error(error);
alert("An error occurred while fetching Pokémon data. Please try again.");
});
});
});
} catch (error) {
throw error;
}
</script>
</body>
</html>
NEW APPS
These are apps made by the community!