🚧 Under Construction
This component documentation is currently being developed. Some features may be incomplete.
HTML5 Video Player
View in Pattern LabHTML Markup
<div class="hoo-video-player">
<video controls autoplay class="hoo-video-player" loading="lazy" preload="meta">
<source src="/htwoo-core/images/videos/chemex.mp4" type="video/mp4">
</video>
</div>
HTML5 Video Player
The HTML5 Video Player component provides a native browser-based player for MP4 and other supported video formats.
Overview
The HTML5 Video Player uses the browser’s built-in capabilities to play video content directly without requiring third-party plugins or services. It’s ideal for self-hosted videos and offers the best performance and control over the playback experience.
Features
- Native browser controls for playback
- Support for multiple video formats via
<source>elements - Lazy loading support for performance
- Metadata preloading option
- Optional autoplay functionality
- Consistent 16:9 aspect ratio maintained by default
- Responsive sizing that adapts to container width
- Consistent styling with other video players
Supported Formats
The HTML5 Video Player supports various formats depending on the browser:
- MP4 (H.264) - Widely supported across browsers
- WebM - Supported in Chrome, Firefox, and Opera
- Ogg - Supported in Firefox, Chrome, and Opera
HTML5 Video Attributes
controls- Displays the native browser video controlsautoplay- Automatically starts playback when readyloading="lazy"- Defers loading until the player is near the viewportpreload="meta"- Only preloads video metadata, not the entire filemuted- Starts video with audio muted (often required for autoplay)loop- Continuously loops the video playbackposter- Specifies an image to show while the video is downloading
CSS Classes
.hoo-video- The main container for the video component.hoo-video-player- The container that maintains aspect ratio and styling
Usage Guidelines
- Include multiple source formats for maximum compatibility
- Provide fallback content for browsers that don’t support video
- Consider using the
posterattribute for a preview image - Avoid autoplay with sound for accessibility reasons unless the video is muted
- Use the
.hoo-videocontainer to maintain consistent styling with other media components
Integration with Thumbnails
The HTML5 Video Player can be paired with the Video Thumbnail component for a play-on-click experience:
<div class="hoo-video">
<!-- Thumbnail that disappears when video opens -->
<div class="hoo-thumbnail">
<figure class="hoo-thumbnail-figure">
<img src="path/to/thumbnail.jpg" alt="Video description">
<div class="hoo-thumbnail-overlay">
<span class="hoo-icon-svg"><!-- Play icon SVG --></span>
<div class="hoo-video-duration">1:42</div>
</div>
</figure>
</div>
<!-- Video player that appears when activated -->
<div class="hoo-video-player">
<video controls class="hoo-video-player" loading="lazy" preload="meta">
<source src="path/to/video.mp4" type="video/mp4">
</video>
</div>
</div>
SCSS
Accessibility
- Include captions via the
<track>element - Ensure controls are keyboard accessible
- Avoid autoplay with sound, as it may be disruptive
- Provide a transcript when appropriate
- Use the
<video>element for proper semantic meaning - Include descriptive alt text on any poster or thumbnail images