YouTube Clone replicates core features of YouTube—video browsing, search, and playback—in a clean and responsive React.js application. It's perfect for learning and demonstrating modern UI patterns, component architecture, and API handling.
- 📺 Homepage with responsive video grid
- 🔍 Search bar for instant video lookup
- 🗂️ Sidebar navigation (Home, Subscriptions, Trending, etc.)
- 🎥 Single video page (player, details, comments, likes)
- 🌓 Dark/Light mode toggle
- 🖱️ Interactive UI with animated components
- 🔑 Authentication (optional/dummy)
- ⚡ Fast & responsive (mobile-friendly design)
| Technology | Role |
|---|---|
| React.js | UI & routing |
| HTML5 | Structure |
| CSS3 | Styling |
| JavaScript | Logic, state management |
| React Router | Page navigation |
| Material UI/Tailwind | Components |
src/
├── components/
│ ├── Navbar.js
│ ├── Sidebar.js
│ ├── VideoGrid.js
│ ├── VideoPlayer.js
│ ├── CommentSection.js
├── pages/
│ ├── HomePage.js
│ ├── VideoPage.js
├── App.js
├── index.js
public/
│ ├── images/
│ └── favicon.ico
- Node.js (v14.0 or later)
- npm or yarn package manager
-
Clone the repo
git clone https://github.com/LoganthP/YoutubeClone-using-HTML-CSS-JAVASCRIPT-React.js.git cd YoutubeClone-using-HTML-CSS-JAVASCRIPT-React.js -
Install dependencies
npm install
-
Start the local server
npm start
-
Visit http://localhost:3000
npm start— Run development modenpm run build— Build for productionnpm test— Run testsnpm run eject— Eject from Create React App
- Search functionality
- User profile menu
- Notifications
- Upload button
- Navigation menu
- Subscriptions list
- Library sections
- Settings
- Responsive video thumbnails
- Video metadata display
- Infinite scrolling
- Loading states
- HTML5 video player
- Like/dislike functionality
- Subscribe button
- Video description
- Responsive Design: Mobile-first approach
- Dark/Light Theme: Toggle between modes
- Smooth Animations: CSS transitions and animations
- Modern UI: Clean, YouTube-inspired interface
- Accessibility: ARIA labels and keyboard navigation
Create a .env file in the root directory:
REACT_APP_API_KEY=your_youtube_api_key_here
REACT_APP_BASE_URL=https://www.googleapis.com/youtube/v3This project can be configured to use:
- YouTube Data API v3
- Mock JSON data
- Local video files
- Mobile: < 768px
- Tablet: 768px - 1024px
- Desktop: > 1024px
- Build the project:
npm run build - Deploy the
buildfolder to Netlify
- Connect your GitHub repository
- Vercel will automatically build and deploy
- Install gh-pages:
npm install --save-dev gh-pages - Add to package.json:
"homepage": "https://yourusername.github.io/repository-name" - Deploy:
npm run deploy
- Fork the repository
- Create your 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