Skip navigation

Components / Surfaces & media

Video

Native video with optional click-to-play enhancement, no autoplay.

div.video-player[data-video-player] > video + button.video-play + p.video-status
Try it

<div class="video-player" data-video-player><video controls playsinline preload="none" poster="/assets/images/pattern-example.svg" aria-label="Sample flower video"><source src="https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4" type="video/mp4"></video><button class="button video-play" type="button" hidden>Play sample video</button><p class="video-status" role="status"></p></div>
Class or attributeWhat it does
native controlsBaseline playback without JavaScript.
data-video-playerCustom play overlay hides only after playback succeeds.
figureWrap ordinary video in Figure when a caption is needed.