Widgets

/

content

Video

A video with native controls and captions.

A video with a poster

Video plays a video with the browser's controls. poster shows an image until it plays, captions adds a subtitles track, and fit sets how the video fills its box. autoplay always starts muted, because browsers only autoplay silent video.

LAYR
Video(
  .config(
    w: fill
    maxW: 480
    aspect: 1.78
    cornerRadius: 14
    fit: cover
    poster: '/og.png'
    src: 'https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4'
  )
)

Config keys

KeyTypeDefaultMeaning
srcsrcVideo URL.
postersrcPoster image.
captionssrcWebVTT captions URL.
autoplayboolAutoplay (implies muted).
loopboolLoop.
mutedboolMuted.
controlsbooltrueShow controls.
fitcover | contain | fillcontainHow the video fills its box.
w (width)len | fill | hugWidth: a length, fill (share the remaining space) or hug (fit content, default).
h (height)len | fill | hugHeight: a length, fill or hug (default).
size (s)sizeWidth and height together: size: 200 or size: (200, 120).
minW (minWidth)lenMinimum width.
maxW (maxWidth)lenMaximum width.
minH (minHeight)lenMinimum height.
maxH (maxHeight)lenMaximum height.
aspect (aspectRatio)numAspect ratio (width / height), e.g. 16/9.
cornerRadiusradiusCorner radius.
margininsetsSpace outside the object: all(8), sym(x: 8, y: 4), only(top: 8).
opacitynumOpacity from 0 to 1.
hide (hidden)boolRemoves the object from layout and the accessibility tree.
shrinknum1Shrink priority when space runs out. Lower shrinks first; 0 never shrinks.
flexnum1Share of remaining space for fill sizes.
cursorauto | pointer | text | grab | grabbing | move | notAllowed | crosshair | nonePointer cursor.
className (class)txtExtra CSS class names: styling hooks for your own stylesheet (hover rules, third-party CSS).

Events

.on(...) accepts tap, press, hover, hoverEnd, focus, blur, key, drag, swipe, mount, unmount, visible.