React Pokédex is a client-side application built as a sandbox for testing modern React libraries. It consumes the PokéAPI and lets users browse Pokémon, view details, and manage a list of favorites.
- Browse Pokémon – list view with basic information.
- Pokémon detail page – stats, types, and additional data pulled from the PokéAPI.
- Favorites – mark Pokémon as favorites; favorites are stored in
localStorage. - Search / Spotlight – quick access to Pokémon using Mantine Spotlight.
- Theme switcher – light/dark theme toggle using Mantine.
- Notifications – feedback on user actions (e.g., adding/removing favorites).
- Responsive UI – layout optimized for both desktop and mobile devices.
Core:
Routing & data:
- TanStack Router – client-side routing
- TanStack Query – data fetching, caching & synchronization
- axios – HTTP client for talking to the PokéAPI
UI & UX:
- Mantine – UI components, notifications, spotlight, and carousel
- Framer Motion – animations and micro-interactions
- Tabler Icons – icon set used across the app
Testing:
- Vitest
- Testing Library for React component testing
Some of the most relevant files in the project:
-
Project configuration
-
Application entry
-
Routing
src/App.tsx- Auto-generated route tree:
src/routeTree.gen.ts
-
API layer
src/api/pokemonApi.ts
Main helpers:fetchAllPokemonfetchPokemonDatafetchMultiplePokemonData
-
Example components
-
Pages
- Home:
src/pages/Home/HomePage.tsx - Pokémon profile:
src/pages/PokemonProfile/PokemonProfilePage.tsx - Favorites:
src/pages/Favorites/FavoritesPage.tsx
- Home:
-
Tests (examples)
Clone the repository and install dependencies:
git clone https://github.com/kaklewski/react-pokedex.git
cd react-pokedex
# Install dependencies
npm installBy default, Vite will start the dev server on http://localhost:5173 (or the next available port).
Run the app in development mode:
npm startBuild for production:
npm run buildPreview the production build:
npm run previewTo run the test suite:
npm run test- Infinite scrolling or pagination for the Pokémon list
- More detailed stats and charts for Pokémon
- Sorting and filtering options for the Pokémon list
- i18n / localization support
- Backend integration / user accounts for syncing favorites across devices



