A React + TypeScript app for browsing Rick and Morty characters with search, filtering, pagination, and favorites.
Visit the deployed app: https://RickMorty.Makiabadi.com
- React 18
- TypeScript
- Vite
- Tailwind CSS
- Axios
- react-hot-toast
- body-scroll-lock
- Heroicons, Lucide React, React Icons
- Search characters by name (debounced requests)
- Filter by status and gender
- Paginated results
- Character details panel with episode information
- Favorites modal with local storage persistence
- Responsive UI for desktop and mobile
index.html
package.json
tailwind.config.ts
vite.config.ts
src/
App.tsx
main.tsx
input.css
components/
CharacterDetails.tsx
CharacterList.tsx
FavoritesModal.tsx
Filters.tsx
Navbar.tsx
Pages.tsx
Context/
SelectedIdProvider.tsx
hooks/
useCharacters.ts
useLocalStorage.ts
useSelectedId.ts
types/
Character.ts
Episode.ts
- Node.js 18+
- npm
npm installnpm run devApp runs at http://localhost:5173
npm run buildnpm run previewnpm run dev— Start Vite dev servernpm run build— Build for productionnpm run preview— Preview production build locallynpm run lint— Run ESLint
Data is fetched from the public Rick and Morty API: https://rickandmortyapi.com/
Contributions are welcome. Open an issue or a pull request with a clear description of what you changed and why.