A modern, responsive video carousel featuring educational content from Google Developers. Built with vanilla JavaScript, optimized for performance and accessibility.
- ๐ฏ Interactive Video Player - Click-to-play with smooth overlay transitions
- ๐ฑ Responsive Design - Seamless experience across desktop, tablet, and mobile
- โก Performance Optimized - DOM caching, lazy loading, and efficient animations
- โฟ Accessibility First - ARIA labels, keyboard navigation, and reduced motion support
- ๐จ Material Design 3 - Modern Google-inspired UI with smooth animations
- ๐ Auto-play Carousel - Optional autoplay with manual navigation controls
- ๐ Real Educational Content - Curated JavaScript, CSS, and web development videos
Experience the carousel with real Google Developer videos covering:
- JavaScript Fundamentals & ES6+ Features
- CSS Grid & Modern Layout Techniques
- Progressive Web Apps (PWAs)
- Web Components & Material Design
- Chrome DevTools Tips & Performance Optimization
- Frontend: Vanilla JavaScript (ES6+), CSS3, HTML5
- Design System: Material Design 3
- Performance: RequestIdleCallback, Intersection Observer, DOM Caching
- Accessibility: ARIA attributes, Keyboard navigation, Reduced motion
- Video Platform: YouTube Embed API
-
Clone the repository
git clone https://github.com/syntaxsidekick/video-carousel.git cd video-carousel -
Serve the files
# Using Python python -m http.server 8000 # Using Node.js npx serve . # Using PHP php -S localhost:8000
-
Open in browser
http://localhost:8000
- Play Video: Click the play button overlay
- Navigate Carousel: Use arrow buttons or keyboard arrows
- Page Navigation: Click pagination dots
- Auto-play: Toggle the autoplay switch
โ/โ- Navigate carousel pagesโ/โ- Select different videosSpace- Toggle autoplay
- Swipe left/right - Navigate carousel on mobile devices
Update the videoData array in script.js:
const videoData = [
{
id: 'YOUTUBE_VIDEO_ID',
title: 'Your Video Title',
channel: 'Channel Name',
views: '1.2M views',
duration: '10:30',
uploadDate: '1 week ago'
},
// ... more videos
];Modify CSS custom properties in styles.css:
:root {
--primary: #4285f4; /* Primary color */
--surface: #fefbff; /* Background color */
--border-radius-lg: 16px; /* Card border radius */
--transition-fast: 150ms; /* Animation speed */
}- DOM Caching - All elements cached for faster access
- Lazy Loading - Images and iframe load when needed
- Passive Event Listeners - Better scroll performance
- RequestIdleCallback - Non-blocking initialization
- Document Fragments - Efficient DOM manipulation
- Resource Preloading - Critical CSS and JS preloaded
- โ Chrome 80+
- โ Firefox 75+
- โ Safari 13+
- โ Edge 80+
- โ Mobile browsers (iOS Safari, Chrome Mobile)
- First Contentful Paint: ~800ms
- Largest Contentful Paint: ~1.2s
- Cumulative Layout Shift: <0.1
- Time to Interactive: ~1.5s
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow ES6+ standards
- Maintain accessibility standards
- Test across devices and browsers
- Keep performance optimizations
- Document new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Developers - For the educational video content
- Material Design Team - For the design system
- YouTube - For the embed API
- Web Platform - For modern web APIs
- Add video search functionality
- Implement playlist creation
- Add video bookmarking
- Dark/Light theme toggle
- Video quality selection
- Subtitles support
- Social sharing features
Built with โค๏ธ by syntaxsidekick
Showcase modern web development techniques with educational video content