An educational web application built with React and Tailwind CSS that showcases Disney characters through an interactive, magical user experience. Features dynamic transitions, sound effects, and comprehensive character information from the Disney API.
| Desktop View | Mobile Design | Footer & Links |
|---|---|---|
![]() |
![]() |
![]() |
π click on thumbnails to blow the screenshots up.
- Mobile Navigation Enhancement - Improve Previous/Next button sizing and positioning for mobile devices
- Search Functionality - Add character search by name
- Filters - Filter by films, TV shows, or character type
- Favorites System - Allow users to save favorite characters
- Dark Mode - Toggle between light and dark themes
- Animations Library - Add more transition effects
- Performance - Implement lazy loading for images
- PWA Support - Make the app installable
- Unit Tests - Add Jest/Vitest test coverage
- Accessibility - Improve ARIA labels and keyboard navigation
- π Interactive Character Cards - Browse through 410+ Disney characters
- π¨ Magical Transitions - Random visual effects (slide, curtain) with synchronized sound
- π Sound Effects - Immersive audio feedback on page transitions
- π± Responsive Design - Adaptive layout (6/12/24 characters per page based on device)
- πΌοΈ Smart Placeholder - Custom castle image when character images fail to load
- π Detailed Character View - Full character information with expandable sections
- π― Auto-scroll - Smooth scrolling to content on page changes
- π² Random Start - Loads a random page on initial visit
- Frontend Framework: React 18.3
- Styling: Tailwind CSS 3.4
- Build Tool: Vite 6.0
- API: Disney API
- Version Control: Git & GitHub
- Node.js (v18 or higher)
- npm or yarn
- Clone the repository
git clone https://github.com/gzifoto-spec/apiDisneyReact.git
cd apiDisneyReact- Install dependencies
npm install- Run development server
npm run dev- Open in browser
http://localhost:5173
apiDisneyReact/
βββ public/
β βββ assets/
β βββ images/ # Logos, placeholders, GIFs
β βββ sounds/ # Audio effects
βββ src/
β βββ features/
β β βββ characters/
β β β βββ CharacterCard.jsx
β β β βββ CharacterGrid.jsx
β β β βββ CharacterDetail.jsx
β β βββ navigation/
β β βββ Pagination.jsx
β βββ shared/
β β βββ components/
β β β βββ Header.jsx
β β β βββ Footer.jsx
β β βββ hooks/
β β βββ useResponsive.js
β β βββ useTransitionEffect.js
β βββ services/
β β βββ disneyApi.js
β βββ App.jsx
β βββ main.jsx
β βββ index.css
βββ package.json
βββ vite.config.js
βββ tailwind.config.js
βββ README.md
- Displays character preview with key information
- Handles image loading errors with castle placeholder
- Clickable to open detailed view
- Full-page character information display
- Scrollable content with all character data
- Back navigation with animated GIF
- Custom Disney-themed navigation buttons
- Animated GIFs (previous/next actions)
- Page counter display
- Detects screen size
- Returns adaptive page size (6/12/24)
- Updates on window resize
- Manages random visual effects
- Synchronizes sound with animations
- Provides smooth transitions between pages
- Initial Load: Random page (1-410) loads with fade-in effect
- Navigation: Click Previous/Next buttons to browse pages
- Transitions: Random effect (slide/curtain) plays with sound
- Character Details: Click any card to view full information
- Auto-scroll: Page automatically scrolls to content after transitions
This project consumes the Disney API:
Endpoint: https://api.disneyapi.dev/character
Parameters:
page- Page number (1-410)pageSize- Characters per page (6/12/24)
Response Structure:
{
data: [...], // Array of character objects
info: {
page: 1,
totalPages: 410
}
}- Logos: Custom Dataland branding (blue/white variants)
- Placeholder: Disney castle image for missing character images
- Audio: 3 magical sound effects (.wav format)
- GIFs: Animated navigation buttons (previous/next)
This project was built following professional development practices:
- β Feature-based Git branching
- β Incremental commits with descriptive messages
- β Component-driven architecture
- β Custom hooks for reusable logic
- β Responsive-first design approach
- β Service layer for API calls
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLintThis is an educational project, but suggestions are welcome!
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
Xavier PiΓ±eiro
- GitHub: @gzifoto-spec
- Disney API for providing character data
- Claude AI & Cline for development assistance
- React and Tailwind CSS communities
Built with β€οΈ as an educational React project


