::cue CSS pseudo-elementThe ::cue CSS pseudo-element matches WebVTT cues within a selected element. This can be used to style captions and other cues in media with VTT tracks.
video {
width: 100%;
}
video::cue {
font-size: 1rem;
color: yellow;
}
::cue(u) {
color: red;
}<video controls src="/shared-assets/videos/friday.mp4">
<track
default
kind="captions"
srclang="en"
src="/shared-assets/misc/friday.vtt" />
Sorry, your browser doesn't support embedded videos.
</video>The properties are applied to the entire set of cues as if they were a single unit. The only exception is that background and its longhand properties apply to each cue individually, to avoid creating boxes and obscuring unexpectedly large areas of the media.
In the example above, the ::cue(u) selector selects all the <u> elements inside the cue text.
::cue | ::cue(<selector>) {
/* ... */
}Rules whose selectors include this element may only use the following CSS properties:
backgroundbackground-attachmentbackground-clipbackground-colorbackground-imagebackground-originbackground-positionbackground-repeatbackground-sizecolorfontfont-familyfont-sizefont-stretchfont-stylefont-variantfont-weightline-heightopacityoutlineoutline-coloroutline-styleoutline-widthruby-positiontext-combine-uprighttext-decorationtext-decoration-colortext-decoration-linetext-decoration-styletext-decoration-thicknesstext-shadowvisibilitywhite-spaceThe following CSS sets the cue style so that the text is white and the background is a translucent black box.
::cue {
color: white;
background-color: rgb(0 0 0 / 60%);
}Cue text can include internal node objects as the tags (similar to HTML elements) <c>, <i>, <b>, <u>, <ruby>, <rt>, <v>, and <lang>. The ::cue() selector can be used to apply styles to content inside these tags to customize how the WebVTT track is displayed. Consider the following cue text that uses the <u> tag to underline some text:
00:00:01.500 --> 00:00:02.999 line:80% Tell me, is the <u>lord of the universe</u> in?
The following CSS rule customizes the text inside the <u> tag with a color and a text-decoration:
::cue(u) {
color: red;
text-decoration: wavy overline lime;
}