A beautiful, fully-featured web-based PowerPoint presentation viewer built with pure HTML, JavaScript, and Tailwind CSS. No backend required!
- 📁 Multiple Presentation Support - Manage and view multiple presentations from one central hub
- 📱 Fully Responsive - Works perfectly on desktop, tablet, and mobile devices
- ⌨️ Keyboard Navigation - Full keyboard control for seamless presenting
- 👆 Touch Support - Swipe gestures for mobile and tablet navigation
- 🖼️ Slide Thumbnails - Quick navigation with thumbnail sidebar
- 📊 Progress Tracking - Visual progress bar and slide counter
- 🎯 Fullscreen Mode - Distraction-free presentation mode (auto-hides slide list)
- 👁️ Hide Slides - Mark slides as hidden and filter them during presentation (hidden by default)
- 🔍 Filter Hidden Slides - Toggle between showing all slides or only visible ones
- 🎬 Video Playback - Full support for embedded videos with play/pause controls
- 🎥 Video Controls - Play, pause, seek, volume, speed control, and fullscreen for videos
- 💾 Local Storage - Uploaded presentations and hidden slide settings are saved
- 🎨 Beautiful Animations - Smooth transitions and modern UI effects
- 🎯 Professional Design - Clean, corporate-ready interface
- 🚀 Fast Performance - Instant loading and navigation
- 🔒 Privacy First - All processing happens locally in your browser
- 📖 Demo Presentations - Pre-loaded samples to get you started
- Open
presentation-viewer.htmlin any modern web browser - You'll see the home page with an upload button
- Upload your first .pptx presentation to get started
- Videos embedded in your presentation will be automatically detected and playable
- Click the "Upload Presentation" button in the header
- Select a
.pptxfile from your computer (or drag & drop) - The application will process and extract your slides
- Your presentation will be automatically opened and saved for future use
- Arrow Right / Space / Page Down - Next slide
- Arrow Left / Page Up - Previous slide
- Home - Go to first slide
- End - Go to last slide
- H - Hide/Unhide current slide
- F - Toggle fullscreen mode
- Escape - Exit fullscreen or return to home
- Swipe Left - Next slide
- Swipe Right - Previous slide
- Tap Thumbnails - Jump to specific slide
- Click Left Arrow - Previous slide
- Click Right Arrow - Next slide
- Click Thumbnails - Jump to specific slide
- Click Thumbnail Icon - Toggle sidebar
- Click Fullscreen Icon - Toggle fullscreen
- HTML5 - Modern semantic markup
- Tailwind CSS - Utility-first styling framework
- Vanilla JavaScript - No frameworks, pure JS for maximum performance
- JSZip - PPTX file processing (PPTX files are ZIP archives)
- Font Awesome - Professional icons
- Chrome/Edge (Recommended) - 90+
- Firefox - 88+
- Safari - 14+
- Opera - 76+
The application uses JSZip to extract content from PPTX files:
- Extracts embedded images and videos from
ppt/media/folder - Creates object URLs for local viewing
- Stores data in browser's localStorage for persistence
- Supports video formats: MP4, WebM, OGG, MOV, AVI, WMV, FLV, MKV, M4V
- Supports image formats: JPG, PNG, GIF, BMP, SVG
- LocalStorage - Saves uploaded presentations for future sessions
- Blob URLs - Stores slide images in memory
- No Server - Everything runs client-side
- Hero Section - Beautiful gradient banner with feature highlights
- Presentation Grid - Responsive card layout for all presentations
- Upload Button - Quick access to upload functionality
- Empty State - Helpful message when no presentations exist
- Header Bar - Presentation title, slide counter, and controls
- Progress Bar - Visual indicator of presentation progress
- Main Viewer - Large, centered slide display with hidden slide indicator
- Video Player - Full-featured video player with play/pause, volume, seek, and speed controls
- Thumbnail Sidebar - Quick navigation with hide/unhide buttons (auto-hides in fullscreen)
- Navigation Buttons - Large, accessible arrow buttons
- Control Panel - Hide slide, filter, thumbnails toggle, fullscreen, and reset buttons
- Hidden Slide Management - Visual indicators and filtering system (hidden by default)
- Smart Navigation - Automatically skips hidden slides and pauses videos when navigating
- Drag & Drop Zone - Drop files directly into the modal
- File Browser - Traditional file selection
- Processing Indicator - Shows progress while extracting slides
- Instructions - Clear guidance for users
- Smooth fade-in effects for page elements
- Slide transitions with opacity changes
- Hover effects on interactive elements
- Scale animations for modals
- Primary - Purple gradient (#667eea to #764ba2)
- Accents - Indigo and vibrant gradients
- Backgrounds - Clean whites and subtle grays
- Dark Mode Elements - Semi-transparent black overlays
- Mobile - < 768px (single column, hidden sidebar)
- Tablet - 768px - 1024px (2 columns)
- Desktop - > 1024px (3 columns, full features)
- Use PowerPoint 2007+ format (.pptx, not .ppt)
- Include images - Presentations with embedded images work best
- Optimize file size - Smaller files process faster
- Test locally - Try demo presentations first
- Use fullscreen mode - Press 'F' for distraction-free presenting (auto-hides slide list)
- Practice navigation - Familiarize yourself with keyboard shortcuts
- Check thumbnails - Review all slides before presenting
- Hide unnecessary slides - Click the eye icon on thumbnails or press 'H' to hide slides
- Filter hidden slides - Click "Hide Hidden" button to skip hidden slides during presentation
- Mobile tip - Swipe gestures work great on tablets
Managing Hidden Slides
- Hide a slide - Click the eye icon on any thumbnail or press 'H' while viewing
- Unhide a slide - Click the eye icon again on a hidden slide
- Show all slides - Click "Show All" button in the header
- Hide hidden slides - Default mode - hidden slides are filtered out during presentation
- Navigation - When hiding hidden slides, arrow keys automatically skip them
- Visual indicator - Hidden slides show a red "Hidden Slide" badge when displayed
- Persistent - Hidden slide settings are saved for each presentation
When slides contain embedded videos:
- Automatic detection - Videos are automatically detected and displayed with controls
- Play/Pause - Click the play button overlay or anywhere on the video
- Volume control - Adjust volume with slider or mute button
- Seek - Click on progress bar to jump to any point in the video
- Playback speed - Change speed from 0.5x to 2x
- Video fullscreen - Expand video to fullscreen (separate from presentation fullscreen)
- Auto-pause - Videos automatically pause when navigating to another slide
- Video indicator - Video slides show a "Video Slide" badge and play icon
- Clear old presentations - Remove unused presentations from browser storage
- Use modern browsers - Chrome and Edge offer best performance
- Stable connection - CDN resources load faster with good connection
Edit the loadDemoPresentations() function to change demo content:
const demoPresentations = [
{
id: 'demo-1',
title: 'Your Title',
description: 'Your description',
slideCount: 10,
thumbnail: 'your-image-url',
slides: generateDemoSlides(10, 'Your Title')
}
];Modify Tailwind classes in the HTML:
- Replace
purple-600with your preferred color - Update gradient combinations
- Modify background colors
- Change grid columns:
grid-cols-1 md:grid-cols-2 lg:grid-cols-3 - Modify spacing:
gap-8,p-4,m-2 - Update responsive breakpoints
- Check file format - Must be .pptx (not .ppt)
- File size - Very large files (>50MB) may take time
- Browser support - Use Chrome/Edge for best compatibility
- Check browser console - Look for JavaScript errors
- Verify file - Try opening the PPTX in PowerPoint first
- Image extraction - Some PPTX files don't contain embedded media
- Video support - Ensure your browser supports the video format (MP4 recommended)
- Format support - Not all video formats work in all browsers (MP4 is most compatible)
- Codec issues - Browser may not support the video codec
- File corruption - Try re-embedding the video in PowerPoint
- Browser compatibility - Use Chrome or Edge for best video support
- Clear browser cache - Reset and try again
- Close other tabs - Free up memory
- Reduce file size - Optimize images in PowerPoint before upload
- Clear localStorage - Delete old presentations
- Use private browsing - Temporary sessions don't save
- Export presentations - Save important files externally
- No PowerPoint animations - PowerPoint slide animations are not preserved
- Media extraction only - Only embedded images and videos can be extracted
- Static text - Text is rendered as images (not searchable or editable)
- Browser video support - Video playback depends on browser codec support
- File size - Very large videos may impact performance
- Browser storage limits - ~5-10MB per domain for localStorage
Potential features for future versions:
- PDF export functionality
- Slide notes display
- Presentation sharing via URL
- Cloud storage integration
- Animation support
- Real-time collaboration
- Presentation recording
- Advanced slide editing
This is a demonstration project. Feel free to use and modify for your needs.
Built with:
- Tailwind CSS - https://tailwindcss.com
- Font Awesome - https://fontawesome.com
- JSZip - https://stuk.github.io/jszip
PowerPresent - Present with Confidence, Anywhere, Anytime! 🎯✨