From 91fc342cb2bbf1ea0725dc5c0c8deffd4bf843f9 Mon Sep 17 00:00:00 2001 From: henrifre Date: Fri, 6 Nov 2026 12:21:43 +0100 Subject: [PATCH] feat: Enhance PokemonDetail component with detailed stats visualization and improved styling issue: #47 --- project2/src/components/PokemonDetail.tsx | 44 +++++++++++++--- project2/src/index.css | 61 ++++++++++++++++++----- 2 files changed, 87 insertions(+), 18 deletions(-) diff --git a/project2/src/components/PokemonDetail.tsx b/project2/src/components/PokemonDetail.tsx index 412ae7c..68ec374 100644 --- a/project2/src/components/PokemonDetail.tsx +++ b/project2/src/components/PokemonDetail.tsx @@ -17,6 +17,15 @@ interface PokemonDetailProps { onBack: () => void; } +function getStatColor(value: number): string { + if (value < 30) return '#ef4444'; + if (value < 60) return '#f97316'; + if (value < 100) return '#eab308'; + if (value < 120) return '#22c55e'; + if (value < 150) return '#166534'; + return '#00d9ff'; +} + export function PokemonDetail({ pokemon, rating, @@ -26,6 +35,14 @@ export function PokemonDetail({ onBack, }: PokemonDetailProps) { const primaryType = pokemon.types[0]?.name.toLowerCase(); + const stats = [ + ['HP', pokemon.hp], + ['Attack', pokemon.attack], + ['Defence', pokemon.defence], + ['Sp. Atk', pokemon.special_attack], + ['Sp. Def', pokemon.special_defence], + ['Speed', pokemon.speed], + ] as const; return (
- Attack: {pokemon.attack} - Special Attack: {pokemon.special_attack} - Defence: {pokemon.defence} - Special Defence: {pokemon.special_defence} - Speed: {pokemon.speed} - HP: {pokemon.hp} + {stats.map(([name, value]) => ( +
+ {name} + {value} +
+ +
+
+ ))}